Anycubic i3 mega-s+Raspberry Pi 3BでKlipperを導入
タイトルの通り、Klipperを導入したときの覚書メモ。
まだインストールしながら設定しているときのメモのため、結果動くかどうかはまだ未定。
動いたので、メモレベルであるが参考になるはず。
参考1.
【3Dプリンタ】Ender-3 ProにKlipperファームウェアを導入した – OctoPi+Klipper編 | あること・ないこと日記
参考2.
Klipper をAnycubic MEGA Proに導入メモ|tomy_cn|note
参考1のあることないこと日記さんの奴が詳しいので、それに沿って導入していく。
そちらはEnder3で自分の環境と違うので、tomyさんのやつAnycubic mega pro導入のほうも参考にしていく。
自分の環境
・Anycubic i3 mega-s
・Raspberry Pi 3B
Klipper導入前状況として、
モータードライバはTMC2208に変更済み、ファームはカスタムMarlinに変更済み。Octopi導入済み。
RaspberryPi導入の手引きは上記参考URLを参照ください。
1.TeraTermをインストール
「Tera Term」定番のターミナルエミュレーター - 窓の杜
Google検索して、窓の杜リンクがあったのでそちらにした。公式でもよいけど、慣れてるほうからインストールとした。
2.TeraTermを設定
接続対象のアドレス「octopi.local」だとなぜかつながらなかったので、IPアドレスを入力した。192.168.x.xという奴。
3.Klipper入手
$ git clone https://github.com/KevinOConnor/klipper
フォルダが作られてgithubから入手してくる。自動で。
注)ドハマりポイント
ここで普通にクリッパーインストールしたら、
avr-gcc command not found
と出て進めなかった。
4.まず、avr-gccを入手
コマンド
$ sudo apt-get install avr-gcc
$ sudo apt-get install gcc-avr
似たようなコマンドを打つ。最後だけちょっと違う。
avr-gccをapt-getしても、やっぱりNot foundとなった。どうやらgcc-avrとするのが正しいらしい。わかんないので両方実施。
5.Klipperインストール
$ ./klipper/scripts/install-octopi.sh
コマンドを打ったらインストールされるはず
6.Klipper設定
$make menuconfig
ここからプリンタによって設定が違う。各自所有している3Dプリンタに合わせた設定にする。
Klipper をAnycubic MEGA Proに導入メモ|tomy_cn|note
こちらですね。
i3 mega-sだとデフォルトでよいらしい。
Qを押して、「セーブして終了しますか?」にYesを選択。
7. make
公式のドキュメントでもやれって言ってるからmakeする
$ make
つらつらーっと出てきて完了するらしい。
※ドハマりポイントで、avr-gccをインストールしてなかったときは、ここでコマンドが見つかりませんcommand not foundと出て進まなかった。
8.ポート番号を調べる
呪文を書いて調べる。ラズベリーパイとプリンタをUSBでつないだ状態、プリンタ電源ONにする。
cd ~/klipper/
ls /dev/serial/by-id/*
ポート番号というか、ポートIDが出る。
自分の環境だと下記が出た。
/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
9.ファームウエア書き込み
調べたポート番号を使って、ファームウエアを書き込む。
cd ~/klipper/
sudo service klipper stop
make flash FLASH_DEVICE=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
通信もできて、書き込みもできた様子。
ベリファイもできてるから大丈夫だと思う。
10.Klipper各種設定を変更
Githubから自分のプリンタの設定ファイルを入手。
>プリンタの設定ファイルをテキストエディタなどで開き、[MCU]の「serial:」以降の部分を手順8.で調べたシリアルポートの名前に変更する。
設定内容を書き換え、WinSCPでアップロードする
えーと、つながらない。。。
Connectingのまま。ポートとボーレートの組み合わせが存在しないって。
また調べよう。
翌日
再度 make menuconfig から再開
make でファームウエアを作り、書き込み
そのあとラズパイ再起動しつつ、プリンタ本体も電源再投入したところ無事つながるようになりました。
温度が上がることまで確認して今日はもうおやすみなさい。
また翌日
Octopiのポート設定は下記
シリアルポート /tmp/printer
ボーレート 250000
さらに翌日。
原点復帰するも、モーターが逆側(原点センサのないほう)へ動いてしまう。
モータードライバを交換して反転してるので、Printer.cfgファイルを変える必要があるらしい。
Klipperのエディタから編集してみる。お試しで。
変更点XYZ軸全部反転。
[stepper_x]
dir_pin: !PF1となっていたのをdir_pin:PF1とする(!を取る)
[stepper_y]
dir_pin: !PF7 → PF7
[stepper_z]
dir_pin: PL1 → !PL1
[stepper_z1] Z軸はモーターが2個ある
dir_pin: PC3 → !PC3
おそらく、エクストルーダも何か変更が必要。
動作見て、反転は必要そうなので、反転させる。
[extruder]
dir_pin: PA6 → !PA6
また翌日。
Anycubic i3 mega-sだとTitanエクストルーダを使っており、ギアでトルク3倍に増幅されている。もとにしている設定ファイルprinter.cfgは、無印のmega用のため、エクストルーダの動作がおかしくなるはず。
モーター1回転で〇〇mmフィラメント押し出すよ(1パルスで△mm出るよ)というのを設定すればよいはず。
で、公式サイトに丁寧に説明があった。
Rotation distance - Klipper documentation
ブラウザの翻訳機能を駆使して確認。
エクストルーダの「rotation_distance」というのは、ステップモータ1回転でフィラメントが押し出される量を設定します。
ほら当たった。
プリンタのメカを確認せいとか書いてあるけど、すっ飛ばして。設定手順。
公式サイトのではなく、自分のやり方は下記。
- ホットエンドを180度に昇温する。
- 温度上がる間に、エクストルーダからボーデンチューブを抜く。(ホットエンド側は触らない)
- フィラメントを差し込んで、ボーデンチューブが入る継手からちょびっと顔出すようにしておく
- ホットエンド温度が上がったら、Octopiターミナルから下記コマンドを入れる
G91
コマンドの意味は、G91=相対座標に変える
G1 E50 F60
G1=動け
E50=50mm分
F60=速度60mm/min(もしかしたら60cm/min. 60inch/s?) - エクストルーダが動くことを確認し、止まるまで待つ
- 出てきたフィラメント長さを測定。この時は104mmだった
- 計算する
現在の設定値rotation_distance=7.710
指令は50mm(G1 E50)
出てきた量 104mm
倍率ドン、104/50=2.08倍
新しい設定値=旧設定値7.710×2.08≒16.037 - OctopiのOpenEditorから、エディタを開く
- 該当箇所 [extruder]のrotation_distanceの数字を書き換える(16.037)
- Save & Close
- Klipper Restart
- またコマンドを打って、正しく出るか確認する
G91
G1 E50 F60 - 長さを測って、正しければ完了、だめなら7.計算を再実行
明らかにおかしいぞ、という場合は分母と分子がひっくり返ってたりするのでご注意ください。
なにか簡単なモデルを出力してみて、動作がイケてるか確認する。
自分は上記で狙った通り動作できました。
今日はここまで。