記事一覧
何があったか?
前回構築した3Dプリンタ環境で課題であった、SmartFilamentSensorの導入であったが、なんやかんやうまくいかなかったので、ゴソっと環境を作り直すことにした。
DL;TR
- Klipperはボードメーカーがビルドしたファームをそのまま使ってしまおう
- Octoprint + Klipperの環境はRaspberryPiImagerで"Octoprint"を導入し、Klipperはgitからダウンロードしよう。
- 間違ってもpython3に乗り換えようとしたり、ユーザー名をpiから変えたり、homeディレクトリが気持ち悪いから/usr/local/share配下にしたりしないこと。
Klipper + SKR3の導入を決めた理由
- SKR2のファームの修正
- コンパイルはOK。だが、フィラメントが動いているのにもかかわらずフィラメント切れを検出。
(こちらを参照して設定したのだが失敗) - SKR2にKlipperを導入
- ファームを書き込みできたものの、octoprintとの通信に失敗。
- コンパイルはOK。だが、フィラメントが動いているのにもかかわらずフィラメント切れを検出。
Klipperとは
klipperとは、Marlinと異なりPC(含むRaspberryPiなどのシングルボードコンピュータ)による演算支援を前提とした3Dプリンタ用ファームウェア。
ベルトの緩みやヘッドの慣性により生じる振動を打ち消すなど、従来のマイコンのみで完結するファームでは不可能な高速&高品質な印刷が可能。
Octoprintのインストール
昔からRaspberryPiを使っている人はご存知ないかもしれないが、最近はRaspberryPIImagerというGUIツールによりSDカードへOSイメージ書き込みが可能。OSの種類も様々選ぶことができる。このツールの素晴らしいことは、イメージ書き込み時点でホスト名やWifi設定、SSH設定などが可能。ディスプレイ無しでのセットアップができるので便利。
今回は"Other specific-purpose OS" ⇨ "3D printing" ⇨ "OctoPi" ⇨ "OctoPi(stable)"を選択。
Klipperのインストール
OSのセットアップ後、klipperを入手しインストール。
(インストールディレクトリはHome以外はやめたほうがよい)
cd ~/
git clone https://github.com/Klipper3d/klipper.git
~/klipper/scripts/install-octopi.sh
Octoprintのセットアップ
Octoprintを通常どおりセットアップ後、plugin managerから"OctoKlipper"を導入。
Klipperファームの書き込み
klipper公式のマニュアルではウィザードに従ってファームを作成し、USB経由で書き込みを行うように記載されているが、今回は限りなくサボることで確実に動作させたいのでbiggtreetechのgithubから落としたファームをSDカードにリネーム(firmware.bin)し書き込む。
Klipper用設定ファイルの作成
Klipperでは3Dプリンタごとの設定はファームでは行わず、cfgファイルを送信することで設定する。biggtreetechのgithubには汎用的に使えるcfgファイルがあるのでHomeディレクトリにコピー&リネーム(printer.cfg)。
[mcu]タグの下にあるserial:の後ろを以下のコマンドで調べたデバイスIDに書き換える。
ls /dev/serial/by-id/*
まとめ&今後
この段階でうまく設定できていれば、Octoprintの画面上で接続ができる。
(おそらく温度センサーが接続されていないことでエラーが出るが通信自体は可能なはず。)
次回はEnder5Proに合わせてcfgファイルの編集を行う。