ChatGPTにKlipperを更新してもらった話|SIBOOR VORON Trident 350

SIBOOR VORON Trident 350と「ChatGPTでKlipper更新」「配線そのまま・共振測定まで」の記事サムネイル
  • URLをコピーしました!

どうも、YuTR0Nです。

久しぶりにSIBOORのVORON Trident 350を開いたら、恒例の如くKlipperに古いMCUファームウェアの警告が出ていました。ADXLの設定も気になるし、更新画面を見ると、Klipper以外にもアップデートできそうな項目がいろいろあります。絶対押しちゃダメなUPDATE ALL…。

更新のたびに底板を開けたり、ボードをDFUモードにしたり、USBケーブルをPCにつなぎ直したりするのは面倒。そこでChatGPTに相談し、最終的にはこんな条件で作業をお願いしました。

俺が物理的に配線したりパソコンにつなげたりとかしない範囲でできることをステップずつ実施

結果として、配線変更、PCへのUSB接続、手動のDFU操作なしで、SBC上のソフトとMANTA・EBBのKlipperを更新できました。 再起動後にKlipperのReady復帰と、古いMCUの警告が消えたところまで確認しています。

更新後は、ShakeTuneで共振と速度別の振動を測定し、手元にあったエクシールのゲルダンパーも設置前後で比較しました。今回は更新の過程に加えて、「今のマシンの補正はいい感じなのか」まで実測から確認した記録をまとめます。

※この記事にはアフィリエイトリンクが含まれます。

SIBOOR VORON Trident 350 販売ページ掲載画像
AliExpressSIBOOR VORON Trident 350

ChatGPTはなにをしてくれるのか

今回使ったのは、PC上で動くOpenAIのCodexです。会話で方針を伝え、許可した環境でコマンドを実行してもらい、PCからプリンターのSBCへSSH接続して作業しました。CodexについてはOpenAIの公式紹介も参考になります。

普通のチャット欄にプリンターのIPアドレスを書けば、自動でLAN内に入ってくれるわけではありません。実行元のPCからプリンターに接続できること、SSHのログイン情報が分かること、Codexが必要なコマンドとネットワークを使えることが前提です。

こちらが伝えたのは、症状と「物理的な作業を増やしたくない」という条件。そこから、構成の調査、バックアップ、更新手順の確認、実行、再接続後のチェックを進めてもらいました。

まず、自分のプリンターに何が入っているか調べる

最初の落とし穴は、持ち主の記憶が意外とあてにならないことでした。SBCはRaspberry Pi CM4だった気がしていたのですが、SSHで確認すると、実際にはBTT CB2でした。

今回の実機構成は以下のとおりです。SIBOORのキットすべてがこの構成という意味ではなく、あくまで手元のTrident 350の話です。

役割今回の実機
プリンターSIBOOR VORON Trident 350
SBC:LinuxとKlipperホストを動かす側BTT CB2
メインボードMANTA M8P V2.0
ツールヘッドボードEBB SB2209 RP2040
プローブCartographer V4
ボード間の通信CAN

Klipperは、Linux上のホスト側と、各ボードに書き込まれたMCU側のファームウェアに分かれています。Mainsailの更新画面でKlipperを新しくしても、各MCUの中身まで自動で新しくなるとは限りません。

今回はホストが比較的新しい一方、MANTAとEBBには古いKlipperが残っていました。画面に出ていたSTEPPER_STEP_BOTH_EDGEの警告は、このMCU側の古さに関するものでした。

BIGTREETECH MANTA M8P シリーズ 販売ページ掲載画像
AliExpressBIGTREETECH MANTA M8P シリーズ

今回はM8P V2.0です。BTTのM8P V2.0公式資料も併せて確認すると、世代の取り違えを防ぎやすくなります。

配線を触らず更新するために必要だったもの

今回、特に参考になったのがEsotericalのCANバスガイドです。CAN接続の構成や、メインボードとツールヘッドの更新方法が整理されています。

ただし、手順をそのまま貼り付ける前に、実機がどの条件を満たしているか確認する必要がありました。

  • SSHで入れるSBCと、動作しているKlipper環境。 接続先とログイン権限を把握しておきます。
  • ボードの正確な型番・世代・MCU。 M8Pの世代違い、SB2209のSTM32版とRP2040版は、同じ設定では扱えません。
  • 動作中のCAN設定と、更新対象の識別情報。 通信速度や対象ボードを、実際の設定とログから確認します。
  • 遠隔で書き込める経路。 既存のKatapultなどのブートローダー、またはSBCから届くDFU経路が必要です。
  • 元に戻すための材料。 設定、ソフトのバージョン、元のファームウェアを、更新前に保存します。

ここで大事なのが、SBCにKatapultのフォルダーがあることと、ボードにKatapultが書き込まれていることは別という点です。今回はファイルの存在だけで判断せず、実機の内容とブートローダーへの接続を確認しました。

Katapultは、対応するボードのファームウェアをCANなどから書き換えるためのブートローダーです。遠隔更新には便利ですが、CANを動かすための必須ソフトというわけではありません。詳しくはKatapult公式GitHubにまとまっています。

実際に進めた更新の流れ

1.先にバックアップを作る

まず、印刷が動いていないこととヒーターがOFFであることを確認。設定ファイルやアプリなど、元に戻すために必要なものをバックアップしてもらいました。

バックアップはSBCとPCの両方に保存し、内容を確認。ボードを書き換える前には、元のファームウェアも残しました。(進めましたというかチャッピーが勝手にやってくれました)

2.古いOSの更新先を直す

SBCの更新は、単純な一括アップデートでは終わりませんでした。古いOSの更新先が使えなくなっていたり、配布元の確認でエラーが出たりしたためです。

公式の配布元を確認し、原因ごとに修正してから更新しました。このあたりは環境によって対処が変わるので、同じコマンドを別のプリンターにそのまま使えるわけではありません。

とまぁそれらしいことを書きましたが私はあまりわかっておらずここら辺も全部勝手にやってもらいました。一昔前ならエラーコードを投げたり質問してどうすればいい?と聞いていたのに今じゃ直接操作させて勝手にやってくれるなんて…。もちろん3Dプリンターの遠隔操作なので事故リスクは自己責任にて。

3.Klipper周辺のアプリも更新する

Klipperだけでなく、Mainsail、Moonraker、KlipperScreen、Cartographerプラグイン、ShakeTuneなども段階的に更新しました。

アプリ本体だけでなく、動作に必要な関連ソフトの組み合わせも確認し、食い違いを直してもらいました。

カメラ関係もCrowsnestに加え、映像配信に使うuStreamerを更新しました。ただし、この時点ではカメラを外していたため、更新後の映像確認はしていません。

4.EBBは導入済みのKatapultから更新

ツールヘッドのEBB SB2209 RP2040には、CAN版Katapultが既に入っていました。 そのため、CAN経由でブートローダーへ移行し、ホストと同じKlipperのソースからビルドしたファームを書き込めました。

書き込みツールの検証が成功し、Klipperに再接続できるところまで確認しました。流れを理解するにはEsotericalのツールヘッド更新手順が参考になります。

BIGTREETECH EBB SB2209 CAN シリーズ 販売ページ掲載画像
AliExpressBIGTREETECH EBB SB2209 CAN シリーズ

EBBのカードも販売ページの代表画像です。今回更新した実機はSB2209 RP2040版。STM32版とは設定が異なるので、写真だけで判断せず、商品選択肢と基板の表記を確認してください。BTTのRP2040版公式資料はこちらです。

5.MANTAは既存USB経路から、ソフトウェアでDFUへ

いちばん面白かったのはMANTA側です。こちらにはKatapultが入っていませんでした。それでも、調べるとSBCとMANTAの間に既存のUSB経路があり、ソフトウェアからSTM32のROM DFUへ移行できることが分かりました。配線したのは自分ですが何がどうつながってどう動いているか、深く理解はしてなかったのでここは全部調査してもらいました。

まず更新モードから通常動作へ戻れることを確かめてから、Klipper本体を書き換えました。書き込んだ内容と、再接続できることも確認しています。

つまり、今回は「DFUを使わなかった」のではなく、「手でDFUに入れる必要がなかった」ということです。PCへのつなぎ替えも不要でした。MANTAへKatapultを新規導入したわけでもありません。

これは今回の配線・ファーム・ボード構成で確認できた方法です。一般的な仕組みはKlipperのBootloader Entryで確認できます。

6.Wi-Fi周辺は最後にして、再起動を確認

遠隔作業なので、通信に関わるWi-Fi関連の更新は最後に回しました。SBCを再起動したあと、SSHとWeb画面に再接続できることを確認しています。

Wi-Fi周辺も更新できましたが、通信速度や安定性が向上したかは測っていません。でもまぁアップデートしておくに越したことはないですね。

どこまで新しくなった?

主な更新結果は以下のとおりです。バージョン末尾の数字は、各プロジェクトのGit上の版表記を含みます。

対象更新前更新後
Klipperホスト0.13.0-6880.13.0-770
MANTA M8P V2.0のKlipper0.12.0-2560.13.0-770
EBB SB2209 RP2040のKlipper0.12.0-1140.13.0-770
Mainsail2.17.02.19.0
Moonraker0.10.0-200.11.0-1
KlipperScreen0.4.7-390.4.7-190
Cartographerプラグイン1.7.01.9.0
Klippain ShakeTune5.0.0-76.0.0
Crowsnest / uStreamer4.1.11-1 / 6.104.2.0-1 / 6.36
Sonar0.2.0-00.2.0-1
Armbianの表示25.2.226.8.3
OSパッケージ更新未適用194種類を更新

ホスト、MANTA、EBBのKlipperは同じ版に揃いました。再起動後は更新管理の残りが0件、設定警告も0件。最初に出ていた古いMCUの警告は解消しています。

一方で、OSの土台となるDebian 11とLinuxカーネルは据え置きです。OS全体を新世代へ入れ替えたわけではなく、Cartographer本体のファームウェアも維持しました。ここはまたそのうち気が向けば更新しようかと思います。

途中で引っかかりやすいポイント

警告と、プリンターが止まった原因を分ける

今回、別途ログにはY1モータードライバーのShortToSupply_Aも。

更新直後の確認は、Readyへの復帰、MCUとの通信、温度の読み取り、ヒーターOFFの状態までに区切り、その後、後述するホーミング・軸移動・共振測定まで実施し、その範囲でY1のドライバー異常は再発していません。ただし、長時間の印刷まで確認したわけではなく、元の停止原因が解消したとは断定していません。

これは原因わからなかったのでまぁぼちぼちしばいてみます。

ADXLは、ファーム更新より前に設定を修正

ADXLの件では、Cartographer V4に旧世代の設定が入っていました。更新作業より前にV4用へ修正し、センサーを読み取れることを確認しています。Cartographer公式のKlipper設定にも、世代ごとの違いが載っています。

JRRFのときにCartographerのRichardが交換してくれてたみたいです。

Cartographerといえばオーナーであり友達のRichardのインタビューを昔したので興味があればチェックしてみてください!なんやかんやで怠惰に投稿してたYouTubeも1,000人いきそうなのでぜひ登録もお忘れなく!

ブートローダーに入れたら、更新成功とは限らない

Katapultのツールでブートローダーへの移行に成功しても、それだけでは新しいファームを書き込んだことにはなりません。ビルド、書き込み、検証、通常動作への復帰をそれぞれ確認する必要があります。

また、USB–CANブリッジになっているメインボードを再起動すると、SBC側のCANインターフェースが一時的に消えます。途中で通信が途切れること自体と、更新失敗は分けて考える必要がありました。Klipper公式CANBUS資料にも、ブリッジ再起動時の挙動が説明されています。そういった意味でも事前に関連資料を渡しておくと誤判定されずGood。

更新後はShakeTuneで、マシンの共振まで見てもらった

更新が済んだので、今度は「Input Shaperのグラフはどうなのか、うちのTridentを評価してほしい」と依頼しました。Input Shaperは、動作による振動を抑えるKlipperの機能です。今回の実機はXYモーターが4個あるAWD構成。室温での結果に加え、普段のABS/ASA印刷に合わせてベッドを100℃にし、共振や速度別の振動を調べました。

最初の連続測定ではTimer too closeで停止する場面もありました。ログからSBC側の処理遅延が疑われたため、測定を分けて解析をPC側へ移したところ、その後の計測は完了。機械の限界と決めつける前に、ソフト側も確認する必要がありました。ただし、停止原因を根本的に直したわけではありません。

共振補正のグラフ自体は、悪くなかった

先に結論を書くと、現在のInput Shaperでも振動をうまく抑えられそうな、悪くないグラフでした。Xは主な山が一つにまとまり、Yには大きな山と小さな山があります。二つの山があるだけで、組み立てが悪いというほどではないらしいですが今後ここは時間あるときに詰めたいですね。何カ月先になるやら…。ここから先の解説は我が盟友Astra君によるものです。

ベッド100℃・ゲル設置後の実測

X軸:ベッド100℃・緑ゲル4個で測定。主な共振の山は一つにまとまっている。
X軸:ベッド100℃・緑ゲル4個で測定。主な共振の山は一つにまとまっている。
Y軸:同条件で測定。大小二つの山がある。グラフの推奨設定は、まだ適用していない。
Y軸:同条件で測定。大小二つの山がある。グラフの推奨設定は、まだ適用していない。

今のY設定でも二つの山を予測上よく抑えており、すぐ変更しなければダメという結果ではありませんでした。

ただし、グラフがよさそうでも、今の加速度設定で細部まできれいに印刷できると確認できたわけではありません。振動を抑える補正には、角が丸まりやすくなる面もあるので、速さと仕上がりのバランスは実物で見る必要があります。

今の補正を活かしつつ、加速度や角を曲がるときの速度を調整する余地はありそうです。次はテスト造形で、表面の波模様や角の丸まりを見たいところ。詳しい考え方はKlipper公式の加速度の選定が参考になります。

緑のエクシール50×50 mmを4個、設置前後で比較

手元にエクシールのゲルダンパーがあったので、基準測定が終わってから自分で設置しました。緑の50×50 mmを4個、重い石板などは載せず、プリンター本体だけを支える構成です。ここはやはりフィジカルヒューマンの出番。結局なんか大変なところは人間が必要。

ベッド100℃と補正設定を揃え、斜め2方向へいろいろな速度で動かして、設置前後の振動を比べました。

速度ごとの振動を比較。青がゲルなし、橙がゲルあり。下段は1より低ければ減少、高ければ増加。
速度ごとの振動を比較。青がゲルなし、橙がゲルあり。下段は1より低ければ減少、高ければ増加。
測ったことゲル設置後の結果
静止中のセンサー値ノイズの値は低下
動作中の振動方向や速度によって、減る場合も増える場合もあった
音・床や台への振動今回は測定していない

U1の時改善したしとりあえずなんて敷いてみましたが、どの条件でも振動が減るという結果ではありませんでした。 動作中に大きく振動する速度帯は残り、逆に増える条件もありました。置いてる机自体がっしりしてないというのもありそうですが。

ベッド100℃でも、マシン全体が同じ温度とは限らない

前後でベッドは100℃を保っていましたが、センサーやツールヘッド周辺の温度は、その後も上がっていました。つまり、ベッドの表示が同じでも、マシン全体の温まり方は揃っていなかったということです。

測定中の温度履歴。ベッドが100℃に安定したあとも、コイルやEBB側の温度は上がっている。
測定中の温度履歴。ベッドが100℃に安定したあとも、コイルやEBB側の温度は上がっている。

温度の違いもあり、各条件1回ずつの比較なので、差をすべてゲルの効果とは言い切れません。ゲルは支える重さに合った種類を選ぶ必要がありますが、今回は機体の重さとの適合までは確認していません。購入時はエクシール公式製品表も確認したいところです。

測定後は元の設定へ戻し、ヒーターOFFと正常起動を確認しました。実際の造形品質や長時間印刷の安定性は、これからテストしていきます。

AIに頼むなら、まず「更新できる条件の調査」から

Astra Ultraふんだんに使ってるからかもしれませんが実機の情報を調べ、古い設定や依存関係の食い違いを追いながら進めてくれたのはよかったですね。突発的になんかやってあとでダメでした~みたいなことがなくて良かったです特に。

同じように依頼するなら、最初はこんな条件を伝えておくと、作業の範囲がはっきりします。

まずSSHで構成と現在のバージョン、ブートローダー、更新経路を調査してください。バックアップを作り、配線変更や手動のボタン操作なしで更新できるものを、依存関係を確認しながら一つずつ進めてください。Wi-Fi関連は最後にし、各段階で再接続と正常起動を確認してください。ヒーターやモーターの動作確認は別にしてください。

SIBOOR VORON Trident 350の今回の構成では、その条件でSBC側からMCU側まで更新でき、その後は実駆動と共振測定まで進められました。印刷品質の確認は残っていますが、更新できる条件を調べ、実測し、数字の意味まで確認するところを一緒に進められたのが、今回の収穫でした。

とまぁここまで書くと如何にも一部は私が操作した風に見えますよね。違うんですよ!!!この作業を全部ChatGPTがやってくれたわけです。もちろん自分で調べて試行錯誤しながら時にはボードを焼いてしまったりとかもある意味醍醐味かなと思うのですが最近は箱出しでぱっと動くマシンばかり…。しばらく自作プリンターから離れている人も多いんじゃないでしょうか?そんな方はちょっと重い腰を開けて誇りを被ったマシンのスイッチをいれて最新環境でまた楽しんでみてください!

Katapultとかその前身もなんもないとかだとある程度物理的に作業も必要ですがそうはいっても圧倒的に作業量少なくて済むと思います。AIと一緒にイージーな自作3Dプリンターライフを。

参考リンク・GitHub

本文で紹介した資料に加えて、更新前に差分や変更点を確認するときの入口もまとめておきます。


Psych0h3adをもっと見る

購読すると最新の投稿がメールで送信されます。

SIBOOR VORON Trident 350と「ChatGPTでKlipper更新」「配線そのまま・共振測定まで」の記事サムネイル

この記事が気に入ったら
フォローしてね!

シェアしてくださると嬉しいです!!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする