Anycubic KobraNeo の改造
はじめに
最近、研究で3Dプリンターを使うことが多くなりました。 野外になにか観測機器を設置しようと思うと、その場に合わせた微妙な形の治具を作る必要に迫られることが多々有ります。 これまではアルミ板を加工したりホムセンで売ってる既存の治具を組み合わせて頑張っていたのですが、 3Dプリンターで自由に作れるととても便利です。3DCADも最近はかなり使いやすくなってきたらしく、 それほど勉強しないでもある程度のものは作れます。私はLinuxユーザーなのでクラウドで動いてブラウザ上でいじれるOnshape を使っていますが、かなりいい感じです。
研究室にはPrusa i3 MK3S+があるので基本的にはこれを使って印刷をしていました。 しかし、なにかの拍子に印刷がうまくいかなくなるタイミングというのが来ます。設定をいろいろ試し、パーツの位置を調節しても、うまく行かない。やがてもう今日は帰れないんじゃないか、という不安に襲われ、もう自宅に置いて寝食をともにしたほうがいいのではないかという気持ちになってきます。 そうこうしているうちに、Anycubic KobraNeoという3Dプリンターを購入しました。購入時価格で3万円弱でしたが、ダイレクトエクストルーダでオートベッドレベリングまでついてくるのはお得に感じました。(今思えばSovol SV06とかのほうが良かったと反省しています。デュアルZ軸とリニアガイドレールは結構ほしいです。)
以下はKobraNeoを買ってから半年ほどの間に行った改造のメモです。
デュアルZ軸
KobraNeoにはZ軸のリードスクリューが片方にしかついていません。これは(特にZホッピングなどの急激な上下運動をする際に)X軸の水平性を保つ上であまり良くありません。 PrintablesでデュアルZ軸へ改造するためのパーツを見つけたので、試してみることにしました。
プリントパーツ
https://www.printables.com/model/364889-anycubic-kobra-neogo-dual-z-mod 上記リンクのSTLファイルをASAで印刷しました。
その他部品
- ステッピングモーター
ボディ幅が34 mmのNema17ステッピングモータを使います。 - リードスクリュー
8 mm dia. * 2 mm pitch * 8 mm lead acme lead screw (I think the one you need for full Z height is 350 mm long. Mine looks short because I just used one that I had from an old printer.)`
と書いてるので、これに合ったものを選びます。切り口の数が4個あるもの(Tr8x8)を選ぶ必要があるので要注意です。
- モータシャフトカプラー
- ネジ
2 - M540 bolts (you can get away with M535; that was what i had lying around. but the bolt isn’t long enough to engage the nyloc part of the nut.) 6 - M310 bolts (4 of these goes in the lead nut, 2 goes in the stepper motor bracket and into the stepper motor) 2 - M314 bolts (these goes in the motor bracket) 6 - M3 nuts (4 of these goes on the bolts through the lead nut. 2 of these go inside the motor bracket together with the m3*14 bolts exerts pressure on the gantry post to secure the motor bracket.)
を用意します。秋葉原の西川電子部品さんにお世話になりました。
組み立て
KobraGoNeo Insightsによると、KobraNeoのメインボードはTriGorillaV_3.0.6
で、コネクタの配置は下図のようになっています。
Z軸ステッピングモーター用のコネクタは一つしかないので、線を切って二股に分け、追加のモーターに接続しました。
ここで、並列にモーターの数が増えると必要な電圧も上がるため、ステッピングモータードライバーのVrefを上げる必要があります。
Printablesの説明では1.1Vまで上げたということでしたので、これを目指します。上図で右から二番目の赤丸で囲われているポテンショメータと、基板上の任意のGNDにテスターを当てて電圧を測り、ポテンショメータをゆっくり回しながら目標の電圧値になるまで調整します。
あとは、Printablesの写真を参考にしながら組み立てます。 完全に組み立てる前に、左右のモーターが同じ向きに回転しているかを確認しておいたほうが無難です。
これでデュアルZ軸にはなるんですが、X軸の両端が同じ高さになるように手動で調整する必要があるんですよね。これがちょっと面倒です。
ファンシュラウド
オリジナルのファンシュラウドでは造形物の前面にしか風が当たりません。 印刷速度を上げようとすると、以下に素早く造形物を冷却できるかが重要になってきます。 ファンの種類や数を変えるのが最もラディカルですが、ファンの覆いを変えるだけでも一定の効果がありました。
https://www.printables.com/model/470004-anycubic-kobra-neo-fan-duct/comments
上記のモデルをPETGで印刷し、オリジナルのファンシュラウドと交換しました。オーバーハングやブリッジの品質が改善したように思います。
Klipper化
KobraNeoのファームウェアはMarlinですが、最近はKlipperが流行ってきているようです。 KlipperはUIやステッピングモーターの動作の計算など、計算資源の必要な作業をRaspberryPiなどの汎用コンピュータにやらせ、 プリンター搭載のマイコンはモーターの操作等にのみ使うというコンセプトのものです。Klipperの搭載によって、印刷速度の向上や Input Shapingによる印刷品質の向上が期待できるとされています。幸い、KobraNeoに搭載されているHuada HC32F460 MCUはKlipperに公式でサポートされているため、簡単に試すことができます。
- https://1coderookie.github.io/KobraGoNeoInsights/firmware/fw_klipper/
- https://github.com/1coderookie/Klipper4KobraGoNeo
上記のサイトを参考にしながら、作業を進めます。操作用の汎用コンピュータには、RaspberryPi3Bを使いました。 ラズパイの固定には自作のプリントパーツを使っています。
ラズパイ等のSBCでKlipperを使う方法はいくつかあるらしいのですが、今回は一番文献がありそうだったMainsailを用いました。 RaspbianベースのOSで、Klipperのファームウェア、プリンターとの通信モジュール、操作用のWebUIなどがセットになっています。RaspberryPi Imagerから直接インストールすることが可能です。
完成写真。ラズパイ取り付けの液晶のUIには、KlipperScreenを使いました。
設定ファイルも基本的には上記Githubのものを使ったのですが、printer.cfg
のendstop_pin
を^PC14
からendstop_pin: probe:z_virtual_endstop
に変更しました。これはベッドメッシュレベリングの際に、エンドピンを物理ピンにしたままだとプローブがベッドを検出する前に動作が止まってしまうからです。自分の個体では、Z-offsetは+0.15くらいになりました。Z-offsetを保存する際に、エンドピンまでか、プローブまでかを聞かれますが、ここではプローブをエンドピンの代わりに利用しているため、「エンドピンまで」を選択します。
肝心の造形品質ですが、たしかに表面の滑らかさは上がり、積層痕もかなり目立たなくなりました。また、これまでカクカクしていた動作がなめらかになり、それによって動作音も静かになった印象を受けます。加減速がスムーズでスマートに動くので、見ていて気持ちいいですね。
加速度センサーをプリントヘッドに取り付けてプリンターの振動を計測することで、それを打ち消すような制御を行うInput Shapingも実装されているということなので、後日試してみようと思います。