Anycubic Mega-S(i3 Mega)をダイレクトエクストルーダ化したりKlipper入れたりした

PLAは熱に弱すぎるしABSは臭すぎて印刷がつらいのでPETGを使いたいがヒゲや糸引きに悩まされることになりここ最近はあまり3Dプリンタを使っていなかった。
しかしAliExpressからのアフィリエイト報酬がそこそこありこれでパーツ類を揃えられそうだったのでダイレクトエクストルーダ化を試してみることに。
今回は以下を参考に改造をまとめていくつか施した。

Mellow NF-DDG-WIND

前述の記事でおすすめされているエクストルーダやホットエンドと周辺部品のセット。
Mellowのバイメタルヒートブレイクは良くないみたいなのを見かけるのと、説明書の類が一切無いので商品ページ以上のことは手探りになるのが良くないところ。
でも安くで必要なものが揃うというのは強い。
3Dプリンタが一台しかなく主要部品の印刷が必要なやつは避けたかったのでちょうど良かった。
マウンタ類の印刷は必要だが難易度は低めだったのでよし。

参考

マウンタなど

マウンタやパーツクーラーは下記のものを使った。
サポート無しで印刷できると書いてあるが手元の環境では不安があったのでサポート有り+サポートブロッカーで対応した。

組み立て

ヒートブレイクの上側の穴に短く切ったPTFEチューブを入れることを忘れないようにする。これがないとフィラメントが詰まる。
マウンタのナットを入れる横穴が乱れている場合は削ったりしてナットが入るようにしておく必要がある。
M3ナット(13個)とM3x20(4個)、M3x10(3個)、M3x12(2個)が足りずに手持ちのボルトから使ったがMega-S純正からの変更では無い上にセットのボルトが揃っていたかも不明なので参考にはなら無さそう。
セットに付いてきたネジはM3x38(2個)、M3x35(3個)とあと短いのがいくつか余った。
ベルトテンショナはAnycubic i3 mega belt X tensioner by slaine013 - Thingiverseと同型でM3x20のボルトを使って左右1cmずつの調節ができるタイプ。
cable_fixの穴がキツいと締めるのがしんどいので3mmのドリルで穴を広げておくと良い感じになった。
PC用の放熱グリスがあることを思い出したのでヒートブレイクの上側のネジに塗っておいた。

配線

BLTouchやそのクローンを使う場合の配線はBLTouch Installation (english) · knutwurst/Marlin-2-0-x-Anycubic-i3-MEGA-S Wikiを参考に15K表記のところ(H3, H4)をブリッジするとG1とG3がBLTouch用に使えるようになりすごく楽。
ステッピングモータの配線はもとからあるやつを切断してQIコネクタを付けたので本体の裏蓋を開けずに済んだ。

Klipper, Moonraker, Mainsail

  • Klipper: 印刷に必要な計算をPCでしてプリンタには指示だけを送る仕組みのファームウェア
  • Moonraker: KlipperとMainsailの間を受け持つAPIサーバ
  • Mainsail: Klipperをブラウザから操作するためのインターフェイス

セットアップ

Raspberry Pi ImagerでMainsail OSを選び、sshwifiの設定済みSDカードを用意した。
Update Managerから全部アップデートしたあとInstallation - Klipper documentationを見てfirmwareのビルドと書き込みをした。
printer.cfgはKlipper printer.cfg file for Anycubic i3 Mega w/ BLTouch bed mesh leveling, input shaper (resonance compensation), pressure advance and skew correction.をもとにエラーを潰していって削除された設定であるpin_mapの部分を書き換えたりPIDチューニングをしたりした。

トラブル

BLTouch周りではBLTouch failed to verify sensor stateとかNo trigger on probe after full movementなどのエラーが出て詰まったが[stepper_z]のposition_minを-10にしたら通りその後やはりだめになりpin_up_touch_mode_reports_triggered: Falseの追加で安定した。
Unable to open fileなどのファイルのアップロード周りでエラーを吐くやつは~/moonraker/scripts/data-path-fix.shを実行すると直った。

チューニング

BED_MESH_CALIBRATEによるHeightmapが便利でこれを繰り返しつつZ軸調節ネジで左右の高さを整えた。
How to Calibrate Steps ? · Issue #934 · Klipper3d/klipperを参考にエクストルーダのキャリブレーションをした。
Measuring Resonances - Klipper documentation加速度センサーを使ったKlipperの調整 – KINGROON KP3S情報を参考にinput shaperの設定をしたり、
Skew correction - Klipper documentationを読んでskew correctionの設定をした。
マクロでのpressure advanceの計測を試みたがなんだかうまく行かずXYZ 20mm Calibration Cube by iDig3Dprinting - Thingiverseで雑に決めた。

Cura

加速度制御とジャーク制御を無効にした。
プリンタの設定のG-Codeをklipperに移してSTART_PRINTとEND_PRINTで呼び出すようにした。
プラグインのAutoTowersGeneratorを使って引き戻し距離を2.5mm、引き戻し速度を40mm/sに決めた。

雑感

MellowのNF-DDG-WINDは注文したWINDでは無い通常のモデルが届き、足りないパーツを請求したが通常版からパーツを剥がして使う前提で本当に足りないパーツだけが届いたりもしたため大変だった。
結果としては狙い通りPETGがなんの憂いも無く出力できるようになって嬉しい。
オートレベリングも印刷前の準備が大幅に減ってとにかく手軽に3Dプリンタを使えるようになる。
ベッドの歪みも簡単に可視化できるので左右のZ軸の調節なんかもやりやすくなる利点もあり思っていたよりも更に良かった。

Klipperは設定がテキストファイルで完結していて良い。
Mainsail OSならklipper_configディレクトリに集約されているので更に管理が楽。
VSCodeのリモートエクスプローラで効率よく編集できるので最高。

Y軸のベルトテンショナを導入していないが計測してみたところ88Hzあったのでもっと緩んでからでいいやとなった。

悪く書かれていることも多いMellowのバイメタルヒートブレイクだがBi-Metal Heat Break Purchase Guide: Which One To Get? | 3D Print Beginnerではおすすめされている。
V6 Crazyが駄目なのであってV6 TCrazyは大丈夫なのか?よくわからん。

買い物リスト

おまけ

Mainsail OSのklipper_configをまるごとGitHubにあげておいた。
ebith/klipper_config: Klipper, Moonraker, and Mainsail configration for Anycubic Mega-S with NF-DDG-WIND and BLTouch clone

以前の改造とか。
Anycubic Mega-S(i3 Mega) 改造まとめ - おいら屋ファクトリー