Klipper の導入 #3 構成ファイルの編集

前回、3D プリンタへ Klipper のインストール、ファームウェアの作成と書き込み、octopi の調整が終わりました。 今回は最後に Klipper の構成ファイルを編集して実際に印刷出来る状態にしていきます。

rn.nyaomin.info

rn.nyaomin.info

構成ファイルの細かい内容は Klipper の公式ドキュメントを参照してください。

octopi への接続は前回行った通り、「Tera Term」やターミナルアプリで接続している状態を想定しています。

はじめに

Klipper の構成ファイルは octopi の home ディレクトリに 「printer.cfg」 というファイル形式で用意します。 home ディレクトリというのは ssh で接続した際に一番最初に接続される場所となります。 「〜」で表されます。

octopi のディレクトリ構成

このファイルを作成し、編集していく必要があります。

編集に関しては「~/klipper/config/」ディレクトリに各 3D プリンタやメーカーのボードに対応したサンプルファイルが入っています。 これらのファイルをコピーして編集するのが楽です。

cp ~/klipper/config/対象サンプルファイル.cfg ~/printer.cfg      # サンプルファイルを printer.cfg という名前で home ディレクトリにコピーする
nano ~/printer.cfg

しかし、一般的にこのやり方は編集し辛いです。 上のコマンドを実行すると「nano」というエディタが起動してファイルを編集できるようになりますが、初めての人が使いやすいものではないと思います。 特に Windows を使っている人はターミナルソフトに触れる機会も少ないため、余計に使いづらいと感じると思います。

Windows を使っている人への個人的なおすすめは前回のファームウェアの書き込みで書いたように「WinSCP」を使用する方法です。 この方法で octopi にアクセスすると通常のエクスプローラのようにファイルのコピーや編集が可能となります。 WinSCP を使用すれば printer.cfg ファイルも好きなエディタで編集出来るため、捗ります。

Mac は使ったことが無いため、よく知らないですが、finder のアドレスバーにアクセス先を入力すると ssh 接続できると思います。 使ったことが無いため、たぶんです。

printer.cfg の編集

コピーしてきたサンプルファイル printer.cfg の編集を行っていきます。 はじめに、3D プリンタとの接続をアップデートしていきます。 下記コマンドを入力して出力結果を確認します。

ls /dev/serial/by-id/*

printer.cfg ファイルをテキストエディタで開き [mcu] という項目を探します。 もしない場合は最終行などに [mcu] という項目を作ってください。 対象箇所を下のように書き換えます。

[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

# /dev/serial/by-id/以降を上で取得した結果に変更してください。

実は主な変更はこれだけです。 後は個々の 3D プリンタの状態によって変わってきます。 概要記事で書いた私の構成の場合を書きますが、細かなところは自分で変更する必要があります。

[virtual_sdcard]
path: ~/gcode_files

# SD カードを使う場合は書いておきます。
# Klipper を使う場合は、ほぼ意味がないと思います。
[stepper_z]
# position_endstop: 0.0     # 「#」を付けてコメントアウト
endstop_pin: probe:z_virtual_endstop    # BL-touch を使う場合、追加
[bltouch]
sensor_pin: ^PB1
control_pin: PB0
speed: 50
x_offset: -42       # BL-touch プローブの位置
y_offset: -10       # BL-touch プローブの位置
z_offset = 1.00     # BL-touch 停止位置と Z 0.0 までのオフセット
                    # マイナスではなく、プラスの値となる

# BL-touch を使う場合、[bltouch] 項目を追加します。
# x_offset と y_offset のプラマイ設定は marlin と同じです。

# *     +-- BACK ---+
# *     |    [+]    |
# *   L |        1  | R <-- Example "1" (right+,  back+)
# *   E |  2        | I <-- Example "2" ( left-,  back+)
# *   F |[-]  N  [+]| N が Nozzle の位置
# *   T |       3   | H <-- Example "3" (right+, front-)
# *     | 4         | T <-- Example "4" ( left-, front-)
# *     |    [-]    |
# *     O-- FRONT --+
[bed_mesh]
speed = 120
horizontal_move_z = 5
mesh_min = 10, 10
mesh_max = 180, 200
probe_count = 3, 3

# ベッドのレベリング設定です。
# 適当に設定していますが、まぁ、こんなものです。
[safe_z_home]
home_xy_position: 115,115
speed: 120
z_hop: 10

# marlin でもあった、BL-touch を使う上での z 軸を安全に保つ設定です。
# ここも、まぁ、こんなものです。

今の所、私が行っている変更はこんなものです。 もっと詰めることができる場所は多々ありますが、それは動かしながら行っていきます。

ステッピングモータのステップ数について

marlin ファームウェアはステッピングモータのステップ数と移動距離について 「step/mm」 で設定しました。 しかし、Klipper の場合は 1 回転で何 mm 動くか設定する必要があります。 各 stepper と extruder の設定項目にある「rotation_distance」というところです。

簡単な計算式として、

rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>

で求めることができます。

ここで、 各数値は次のように決まります。

# <full_steps_per_ratation> : ステッピングモータの 1 回転あたり step 数、ほとんどの場合、200
# <microsteps> : モータドライバの設定で決まる値、ほとんどの場合、16
# <steps_per_mm> : 1 mm 進む為に必要な step 数、marlin ファームウェアで使われている値

特にエクストルーダのキャリブレーションを行う際は注意してください。 正直、これについては marlin の方が調整しやすいと思います。

構成ファイルの編集終了

以上で、構成ファイルの編集は終わりです。 octopi で 3D プリンタに接続してエラーが発生しないか確認します。

terminal タブから 「status」 と命令を送ります。 もし、「mcu」関係のエラーが出た場合、「RESTART」と命令を送り、再接続を試して見てください。 「// Klipper state: Ready」と表示されると正常な接続が出来ています。

構成ファイルに問題があると適切なエラーが表示されるのでコメントに沿って、構成ファイルの修正をしてみてください。

おわり

Klipper の導入は以上となります。 これ以降は octopi の通常操作となります。 gcode ファイルをアップロードして印刷してみてください。

構成ファイルの accel (加速度) を大きくして、gcode 生成時の印刷速度を速くすると印刷時間を低減できます。 ただし、造形物の出来は崩れる可能性がある為、適切な設定を探す必要があります。