【全公開】3Dプリンタをデュアルホットエンド化

ホットエンド周り 3Dプリンタ
ホットエンド周り

一般的なシングルホットエンドの3Dプリンタをマルチフィラメント可能なデュアルホットエンドに改造します。

今回の私の方法による改造にはKlipper導入が必須ですので、
別記事の誰でもKlipperを確実にインストール(Creality製Ender6)を参考に導入いただくと良いかなと思います。

まず初めに

改造に伴う破損、故障は自己責任となりますので、作業は慎重に行いましょう

事の始まりは、水溶性サポートで印刷してみたいなと思い立ちまして、どうしたものかと考えました。
デュアルタイプの3Dプリンタを購入しなおすのも、金銭面が厳しいですし、
2台置くというわけにも、なかなかいきません。

そうならば、改造して2色印刷可能なようにするしかない、と。
調べた結果いくつかパターンがありました。

  • 通常のまま、手動でフィラメントを差し替えてやる。手間だが確実
  • シングルノズルのままマルチフィラメント対応のフィラメント切り替え機を後付けする。
    (こんなやつ⇒3D Chameleon- Automatic Color Changer
    3Dプリンタ側の改造は小規模。ただノズルは一個なので、ノズル内の材料を押し出し切る必要がありゴミがすごいでる。
  • 2in1outのホットエンドに変え、もう一個エクストルーダーを後付けする
    こんなやつとか
  • ホットエンド、エクストルーダー共に、もう1セットを後付けする。
    今回の記事は、この方法です。
    材料の切り替えがなくスマート。

もう一個を付けるといっても

もう一個ノズルがあるので、いかんせん待機中のノズルから少し材料が垂れます。
その垂れを極力排除しようと改造してる方もいますが設計が大変そうなので、いったん却下。

多少の垂れは、目をつむって、完成を目指す!
こちらが完成形

デュアルノズル完成形
デュアルノズル完成形
追加エクストルーダー
追加エクストルーダー

追加購入品(合計31400円)

BIQU(BIGTREETECH)はAmazonなかったので、オンラインストアで注文です。
EBB42は、CAN通信(通信線2本)もでき、配線を減らす。ノイズに強いといった特徴もありますが、
別途CAN通信モジュールも追加で買わないといけないので、まあ不要かなと思います。

ホットエンドを別の物にしたり、エクストルーダーのステッピングモータを60㎜じゃなくて40㎜あたりの小さいかつ入手性の良いものにしても、もう少し価格は押さえれるかと思います。

大まかな流れ

  • パーツ類(ホットエンド、ファン、エクストルーダー)の固定方法を設計する
  • 実装(配線や実際に取付)
  • Klipperに追加パーツの設定をする
  • テスト印刷

固定方法を設計

パーツの3Dデータ拾ってきて設計。
ホットエンドは、元の固定穴2個を使って、ホットエンド周りのブラケットとホットエンド自体を共締めして固定。
ホットエンドの残りの2個の穴はブラケット側にねじ止めする形で設計しました。
材料は、ポリカーボネートのカーボンファイバー入りで造形。セールか何かで3500円/1㎏

ホットエンド周り
ホットエンド周り
ホットエンド周り2
ホットエンド周り2
ホットエンド固定
ホットエンド固定
追加エクストルーダー固定
追加エクストルーダー固定

klipper設定

私の設定ファイル
Printer.cfgとBiqu_Microprobe.cfgの2ファイルです。

Biqu_Microprobeと造形サイズ

Biqu_Microprobeは、別ファイルにして読み込むようにしています。
stepper_x,stepper_yのposition(造形サイズ)は、設計したホットエンド周りのサイズ次第ですが、元の1ノズルだった時より、小さくなります。

元のextruder周り

sensor_type: ATC Semitec 104NT-4-R025H42G
SpiderSpeedyは104NT‐4という型式の温度センサ(サーミスタ)なので変更。

min_extrude_temp: 10
フィラメントの押し出し、引き戻しが常温でもできるように下限値を室温以下に。

max_temp: 310
SpiderSpeedyが最高300℃まで行けるそうなので、そのちょっと上まで。そこまで使うかは不明ですが

海外のサイトの方のを参考に、エクストルーダーの切り替えマクロを記述。Z方向(高さ)は、ノズルの差し込み具合しっかりやって0㎜にしておきましょう。簡易デュアルノズルって感じなので、待機中のノズルがどうしてもついて回りますので、片方が低いと造形物に衝突するリスクがあります。
X方向は、ホットエンド次第ですが、私の場合は28.3がベストでした。
海外の方は、モータを使って振り子?みたいな感じで位置をすげかえる仕組みを作ってました。すごいですね・・・それようのサーボのコマンドはコメントアウトしてます。挑戦したい方は設計してみましょう。

追加側のエクストルーダー関係

EBB42のポート(入出力端子)は、マニュアル通りに。バージョン違いで少し配置が違うそうなので、購入したVerを確認ください

ファン関係

max_power: 0.7
ブリッジやオーバーハングの改善用に少しブロアが強めの物に変えましたが思ったより強いなと、弱めてますw本末転倒ですね

fan_speed: 0.7
ヒートブレイクの冷却ファンも少し抑えめに。

heater_temp: 10.0
常時回るように、室温以下に設定

フィラメントセンサ

ここら面はマニュアル通りに。
追加のセンサは、フィラメントの断線以外にも、巻き取りがしなくなってセンサが回転しなくなっても検出できるセンサです。
買ったはいいけど、断線が分かれば十分だったかもですね

テスト印刷

PID_CALIBRATE HEATER=extruder TARGET=260
PID_CALIBRATE HEATER=extruder1 TARGET=200

環境も変わったことなので、それぞれをPID_CALIBRATEで制御値を取得しなおします。
6回ほど、設定値まで上げて下げてを自動で繰り返します。
終わったらメッセージがでるので、その指示に従いSAVE_CONFIGで設定値を保存します。

SAVE_CONFIG

ネットで転がっていたプレートや
自分で適当に重ねたモデルを印刷してみて確認します。

設計上はノズル間のオフセットは28㎜でしたが
実際良いところは27㎜あたりでした。
ネジの取付具合によっても、角度が垂直向かずにバラバラするので
それらの誤差かなと思います。

手元にあった、PC-CFとPLAどちらも黒で印刷結果が
判別しにくく申し訳ありません。

1段目の画像だと、ズレが見にくかったので、
2段目の画像の高さでズレを見てみようと印刷して、造形結果から修正。
各面段差付かず、ばっちりとなりました。

ノズルの吐出安定用のプライムタワーも、2色中心があっています。

デュアルエクストルーダーキャルプレート
デュアルエクストルーダーキャルプレート
印刷結果
印刷結果(ちょっと寄ってる)
印刷結果
印刷結果
プライムタワー
プライムタワー

ちなみに、プライムタワーの設定ですが
プライムタワーのサイズはや位置は共有ですが、
プライムタワー最小容積は、ノズル毎の設定でした。

片っぽのノズルだけ、やたら押し出しすくないなーと思いつつ、
内部で処理されてるのかなと思ったら、連動してませんでした・・・

おまけ 2色印刷のCuraの設定

プリンターの設定
プリンターの設定
プリントヘッドX軸
プリントヘッドX軸(左がmin)
プリントヘッドY軸
プリントヘッドY軸( 手前がmin)
Extruder 1
Extruder 1
Extruder 2
Extruder 2

プリンターの設定のプリントヘッド設定を変更。
このXとYのサイズですが、造形物を何個も印刷するときに、一個造形し終わって、次の造形をさせるようなときに干渉を防ぐ設定です。(全部を1層目から順番に印刷するときは関係ない)

X分(誤訳でXmin):プライマリーのノズルから、造形物に当たってほしくないものが左側に何㎜あるか。私の場合は左のパーツファンのモータ側面あたり
Y分(Ymin):今度はプライマリノズルの奥側。
最大X(Xmax):プライマリノズルの右側。
最大Y(Ymax):プライマリノズルの手前側。
エクストルーダーの数:2
エクストルーダーのオフセットを~:これはオフ。私はKlipper側で設定しています。

Extruder 1と2の設定は、画像の通り。ノズル間の27㎜の設定はKlipper側です。
Curaとしては0のまま。
G-Codeのところ。
冷却ファンの切り替えタイミングがいまいちだったので、指定してあります。

Extruder 2側のノズル吐出を最初にするように追加してあります。


G28 ;Home

M104 S{material_print_temperature};Nowait Untill hot
M104 T1 S{material_standby_temperature,1}

M109 S{material_print_temperature};wait Untill hot
M109 T1 S{material_standby_temperature,1}

G92 E0 ;Reset Extruder
G1 Z3.0 F3000 ;Move Z Axis up
G1 X5.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X5.1 Y220.0 Z0.28 F1500.0 E20 ;Draw the first line
G1 X5.4 Y220.0 Z0.28 F5000.0 ;Move to side a little
G1 X5.4 Y20 Z0.28 F1500.0 E40 ;Draw the second line
G92 E0 ;Reset Extruder
M104 S{material_standby_temperature}

T1 ;ToolChange
M109 S{material_print_temperature,1}
G1 Z2.0 F3000 ;Move Z Axis up
G1 X2.1 Y20 Z0.28 F5000.0 ;Move to start position
G1 X2.1 Y220.0 Z0.28 F1500.0 E20 ;Draw the first line
G1 X2.4 Y220.0 Z0.28 F5000.0 ;Move to side a little
G1 X2.4 Y20 Z0.28 F1500.0 E40 ;Draw the second line
G92 E0 ;Reset Extruder
M104 S{material_standby_temperature,1}

T0
M109 S{material_print_temperature}

G1 Z3.0 F3000 ;Move Z Axis up

おまけ2 cura G-Codeの変数名調べ方とノズル2の指定方法

パス:C:\Program Files\UltiMaker Cura 5.4.0\share\cura\resources\definitions
ファイル名:fdmprinter.def.json
メモ帳かなんかで開いてもらって、欲しい設定の英語名で検索します。
(Curaを英語で立ち上げるか、翻訳使ってください)

私は、パーツ冷却の強さを変更したくcool_fan_speedを調べました。

変数指定方法(変数名の後に,1を付けるとノズル2の設定値がもってこれます)
ノズル1:M106 S{cool_fan_speed}
ノズル2:M106 S{cool_fan_speed,1}

Gcode自体は、英語ですが、翻訳機能使えば十分に読めるかなと思います。
Marlin-Gcode

おわりに

また加筆修正するかもしれませんが、
今回の記事は以上になります。

あんまり情報がなかったり、英語の記事だったりの情報を集めてきて完成しました。
PVA(水溶性サポート)買って、試してみたいですし、
これで2色印刷も可能となりました。

色々と楽しみが増えましたので、何か作った際にはサンプルでこちらにもアップしておきたいと思います。

それでは、3Dプリンタを活用した楽しい生活を!

コメント