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回転でフィラメントが押し出される量を設定します。

ほら当たった。

プリンタのメカを確認せいとか書いてあるけど、すっ飛ばして。設定手順。

公式サイトのではなく、自分のやり方は下記。

  1. ホットエンドを180度に昇温する。
  2. 温度上がる間に、エクストルーダからボーデンチューブを抜く。(ホットエンド側は触らない)
  3. フィラメントを差し込んで、ボーデンチューブが入る継手からちょびっと顔出すようにしておく
  4. ホットエンド温度が上がったら、Octopiターミナルから下記コマンドを入れる
    G91
    G1 E50 F60
    コマンドの意味は、G91=相対座標に変える
    G1=動け
    E50=50mm分
    F60=速度60mm/min(もしかしたら60cm/min. 60inch/s?)
  5. エクストルーダが動くことを確認し、止まるまで待つ
  6. 出てきたフィラメント長さを測定。この時は104mmだった
  7. 計算する
    現在の設定値rotation_distance=7.710
    指令は50mm(G1 E50)
    出てきた量 104mm
    倍率ドン、104/50=2.08倍
    新しい設定値=旧設定値7.710×2.08≒16.037
  8. OctopiのOpenEditorから、エディタを開く
  9. 該当箇所 [extruder]のrotation_distanceの数字を書き換える(16.037)
  10. Save & Close
  11. Klipper Restart
  12. またコマンドを打って、正しく出るか確認する
    G91
    G1 E50 F60
  13. 長さを測って、正しければ完了、だめなら7.計算を再実行
    明らかにおかしいぞ、という場合は分母と分子がひっくり返ってたりするのでご注意ください。

なにか簡単なモデルを出力してみて、動作がイケてるか確認する。

自分は上記で狙った通り動作できました。

今日はここまで。