![見出し画像](https://assets.st-note.com/production/uploads/images/140603970/rectangle_large_type_2_a704d311fde842c7c0d294ab37f03f45.jpeg?width=1200)
ERCFで多色3Dプリントやろうぜ!
Trianglelabで販売しているERCFのキットとERCF Happy-Hare
でERCFを導入をしております。
ERCF Happy-Hare(ERCF純正では無いソフト部 ただしERCF V2.0のソフト部はHappy-Hareのみ)のおかげで導入自体は比較的簡単だったのですが、運用する上で少し躓いたところをあげておきます。
klipperが導入済みなのが前提になりますが、少しでも導入の参考になれば幸いです。
私が導入しているのはV1.1ですが、現在はV2.0のキットが主流です。
大まかな流れは一緒ですが、色々違いがあるかもしれませんのでご了承ください。
分かる範囲では質問にもお答えしますので、コメントやXにてお願いします。
組み立て自体はそれほど難しくない
マニュアルがしっかりしているので、読みながら組み立てればそれほど難しくは無いと思います。
ただ、プリントパーツの精度はなかなかのものを求めてきますので、そのあたりはネックになるかもしれません。
V1.1のワッシャーをゲートに入れる時はERCF側をワッシャーのエッジが立っている方の向きで入れておいた方が良いです。
反対にするとフィラメントがワッシャーを押し分けて飛び出しやすくなってしまいます。
Happy-Hareインストール
インストールに関してはERCFの組み立てマニュアルに記入されている方法でキット付属のボードにファームを導入後、ラズベリーパイ(もしくはそれに準ずるボード等)に接続して、happy hareのgithubにある通り
https://github.com/moggieuk/Happy-Hare
cd ~
git clone https://github.com/moggieuk/Happy-Hare.git
cd Happy-Hare
./install.sh -i
を入力すると、その後問診形式(接続しているボードは何?繋がっているこのボードのアドレスでOK?ERCFのバージョンはいくつ?導入してるMODは何?等)でインストールが進みます。
動かしてみるとお分かりになるかもしれませんが、
Trianglelabのキットだと、問診形式での導入後のcfgの設定のままだとモーターが逆回転になっているので
mmu_hardware.cfg
の下記部分を書きかえています。
[stepper_mmu_gear]
dir_pin: mmu:MMU_GEAR_DIR
[stepper_mmu_selector]
dir_pin: mmu:MMU_SEL_DIR
組み立て後の初期キャリブレーションに関してはここ
https://github.com/moggieuk/Happy-Hare/wiki/MMU-Calibration
を順序通りに行っていけば基本的には良いと思います。
この辺りもキャリブレーションに関しては結構参考になるかもしれません
https://sakitume.github.io/Custom-ERCF-Build-Sakitume-Edition/sidebar/happy-hare.html
ウチだとツールヘッドにフィラメント検出のセンサーを入れていないので、フィラメントのホーミング時にモーターの脱調をしやすくして、これ以上挿入できないことを早めにエンコーダーで検出しやすいように電流を初期値より少し下げてます
mmu_parameters.cfgの下記の値を変更
extruder_homing_current: 40
ギア塗装とギア位置の調整によるエンコーダーの精度改善
V2だとBinkyを採用しているので問題無いようなのですが、V1.1でマニュアルのままだとエンコーダーの読み取り精度はあまり良くないようなので、こちらを参考に油性マジックでギアに塗装をしています。
https://github.com/moggieuk/ERCF-Software-V3/blob/master/doc/ENCODER.md
チューブの長さ
ERCFはフィラメントパスのチューブの抵抗等が大きいとギアがすべって送り出しが上手くいかないことが多いので、できるだけスプールホルダーからエクストルーダーまでの距離は短くしておいた方が良いです。
特にERCFからエクストルーダーまでのチューブの長さはバッファ量にも直結しますので、無理の無い程度できるだけ短くしましょう。
Springy
サーボーが過負荷になりすぎて壊れてしまうことを何度か繰り返しました。
現在はSpringyを導入してサーボに負荷がかかりすぎないようにしているのと、サーボ自体もデジタルのサーボに交換をしています。
V2.0は最初からSpringyがデフォルトで適応されていますので追加する必要は有りません。
https://github.com/moggieuk/ERCF-Springy
PrusaSlicerを多色プリント仕様に
プリンター設定→全般でエクストルーダーの数を増やしてシングルエクストルーダー・マルチマテリアルにチェックを入れましょう。
![](https://assets.st-note.com/img/1715665649363-tBEgGdNbDG.png)
次にカスタムGコードの設定でツールチェンジ用のGコードに下記を追加します。
T[next_extruder]
![](https://assets.st-note.com/img/1715665788553-aaZDxsInsv.png)
ERCFのマニュアルを参考にシングルエクストルーダーのMM設定に数値を入れましょう。
例として画像の数値はBMGエクストルーダーとDragon Hotend SFの組み合わせた時の数値です。
![](https://assets.st-note.com/img/1715666094226-zHNB0sylCB.png)
ラミング
通常シングルエクストルーダー・マルチマテリアルではフィラメントをエクストルーダーでロードしやすくするために先端の処理が必要なのですが、
単一のマテリアルやノズル径しか使用しない場合はラミングをスライサーではなくHappy-Hareに任せてしまう方が安定するかもしれません。
https://github.com/moggieuk/Happy-Hare/wiki/Tip-Forming-and-Purging
フィラメントをナイフでカットするMODもありますので、導入が可能そうであればそちらも検討した方が良いでしょう。
採用した先端処理によってツールヘッドの動き方を制御する必要があるので下記を参照しましょう。
https://github.com/moggieuk/Happy-Hare/wiki/Toolchange-Movement
ウチはノズル径や使用するフィラメントの種類をコロコロ変更するのでスライサーに任せています。
PrusaSlicerの場合はプリンターの設定にMK3S + MMU3等のPrusaの多色プリンターを追加して、そのフィラメント用のラミングの設定をそのままコピーして使えば割とうまくいきます。
![](https://assets.st-note.com/img/1715666402843-GMTIm5YnEZ.png)
![](https://assets.st-note.com/img/1715670642665-ZJdTipyfLU.png?width=1200)
![](https://assets.st-note.com/img/1715666437820-2l0CUEJNi4.png?width=1200)
スタートGcode
PrusaSlicerだとスタートGcodeのどこかに最初に使うフィラメントをエクストルーダーに読み込む
T{initial_tool}
を入れておいた方が良いです。
入れておかないとスタートGcodeが終わった後に最初のフィラメントをエクストルーダーに読み込むので、スタートGcodeに含まれるイントロライン(プライムライン)等のGcodeが無駄になります。
Happy-Hareは現在の読み込まれているフィラメントを把握しているので、先に最初に使うフィラメントを読み込んでおくと、スタートGcodeが終わった後にもう一度フィラメントを戻して最初のフィラメントを読み込むような事は無くなります。
できればT{initial_tool}の前にホットエンドを加熱するGcodeは入れておいた方が良いと思われます。
下記のGcodeはPrusaSlicerにて私が使用している0.4mmノズル用の開始Gcodeになります。参考までに
G90 ; use absolute coordinates
M83 ; extruder relative mode
M140 S[first_layer_bed_temperature] ; set bed temp
G28
{if filament_type[initial_tool]=="PC" or filament_type[initial_tool]=="NYLON"}
M104 S{first_layer_temperature[initial_tool]-25} ; set extruder temp for bed leveling
M109 S{first_layer_temperature[initial_tool]-25} ; wait for temp
{elsif filament_type[initial_tool]=="FLEX"}
M104 S210 ; set extruder temp for bed leveling
M109 S210 ; wait for temp
{else}
M104 S170 ; set extruder temp for bed leveling
M109 S170 ; wait for temp
{endif}
G0 X0 Z15 F4800
M190 S[first_layer_bed_temperature] ; wait for bed temp
G0 X-7 F3000
G0 Z1 F720
G0 X0 F3000
G0 X-7 F3000
G0 X0 F3000
;
; MBL
;
G28 ; home all without mesh bed level
BED_MESH_CALIBRATE AREA_START={first_layer_print_min[0]},{first_layer_print_min[1]} AREA_END={first_layer_print_max[0]},{first_layer_print_max[1]}
BED_MESH_PROFILE LOAD=default
G0 X20 Z4 F720
M104 S[first_layer_temperature] ; set extruder temp
M109 S[first_layer_temperature] ; wait for extruder temp
T{initial_tool}
G0 X-8 F3000
G0 Z1 F720
FILAMENT_PURGE
G1 E-0.9 F1000
G92 E0
;
; Extrude purge line
;
G0 X0 F3000
G0 X-7 F3000
G0 X0 F3000
G0 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32 - 4.5) + 32} Y{(max(0, first_layer_print_min[1]) - 4) + 4 - 6} Z{30} F4800
G0 Z0.2 F720
G1 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32 - 4.5 - 1.5)} E{33.5 * 0.15} F1000
G1 Y{(max(0, first_layer_print_min[1]) - 4) + 4 - 6 + 32} E{33.5 * 0.15} F1000
G1 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32) - 4.5} E{1.5 * 0.15} F1000
G1 Y{(max(0, first_layer_print_min[1]) - 4) + 4 - 4.5} E{32 * 0.30} F800
G1 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32 - 4.5) + 32} E{32 * 0.30} F800
G0 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32) + 32 - 4.5 + 3} Z{0.05} F{8000}
; wipe, move close to the bed
G0 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32) + 32 - 4.5 + 3 * 2} Z0.2 F{8000} ; wipe, move quickly away from the bed
G92 E0
M221 S95 ; set flow to 95%
フラッシュ量
ホットエンドやノズルの性質によるところが大きいのでフラッシュ量はご自身で調節する必要がありますが、
Banbu studioやOrcaSlicerにはフラッシュ量を前後の色によって自動調節する機能がありますので、PrusaSlicerを使う場合もその値を参考にするのが設定の近道ではあると思います。
![](https://assets.st-note.com/img/1715673415737-srwa9kEq0T.png)
![](https://assets.st-note.com/img/1715673631349-D53v8rFu8B.png)
![](https://assets.st-note.com/img/1715673770524-fUokNPWvbf.png)
![](https://assets.st-note.com/img/1716050386928-pTnIE3plsV.png?width=1200)
スパースレイヤーなし
ワイプタワーの設定でスパースレイヤーなしにチェックを付けるとツールチェンジが必要なタイミングのみワイプタワーで印刷をしますので、余計なフィラメントの消費が抑えられます。
ただし、ワイプタワーとモデルを離さないとワイプタワープリント時にヘッドがモデルに激突して大惨事が起こってしまいます。
ワイプタワーのスピードアップ
PrusaSlicerはワイプタワーの速度のみを直接編集することができないですが、少し工夫をするとワイプタワーの速度を変更することもできます。
ワイプタワーは速度のパラメーターとして境界線とインフィルの値を使っているようなので、設定をワイプタワーで使いたい速度にして一度スライスしてから、モデルの方に本来の適応したい境界線とインフィルの速度の設定を追加して再度スライスするとワイプタワー、モデルにそれぞれ別の速度が設定できるようになります。
注意点としては途中で一度もスライスをかけないで設定をしてしまうとワイプタワーも追加した速度設定と同じ速度に合わさってしまいます。
![](https://assets.st-note.com/img/1715678694852-MyFbaypKYW.jpg?width=1200)
![](https://assets.st-note.com/img/1715678717526-wbGLEW0Pm5.jpg)
![](https://assets.st-note.com/img/1715678717480-sHA4r4YGrc.jpg?width=1200)
フィラメントのプリント順序
PrusaSlicerではツールの若い数字順からプリントされますので、ファーストレイヤーを利用した多色プリントとして使用をする場合は、濃い色から順に数字の若いツールにセットすると綺麗にプリントがでできるようです。
Happy-HareのGate map機能を使うと無理矢理プリント順を変更することも可能です。
OrcaSlicerではプリント順は編集できるようです。
フィラメントERCFに装填する
Happy-Hareにはフィラメントを簡単にERCFに装填するマクロがあります。
フィラメントをERCFのギアまで挿入して
MMU__PRELOAD GATE=0 ;数字は任意のゲート番号
をコンソールに入力するとフィラメントを適切な位置に装填してくれます。
フィラメントを挿入しすぎてERCFから飛び出してしまった状態も、このマクロで引き戻して丁度良い位置にしてくれます。
中断時の復帰
何らかの異常が有り、次のツールにフィラメントをチェンジできなかったり、エンコーダーが詰まりを検知した場合にHappy-Hareはプリンターを一時停止状態にします。
一時停止状態が設定した時間以上に続くと、ベッドの加熱はそのままで、ホットエンドのヒーターは加熱を中断します。
その状態から復帰する場合はマクロの
MMU_UNLOCK
をコンソールに入力するとホットエンドの加熱が元の温度で再開し、プリントを再開することができます。
異常を取り除き、その後
RESUME
で復帰します。
empty状態からの復帰
フィラメントが切れてそのゲートの状態がエンプティになってしまった場合は新しいフィラメントを物理的にセットした状態でもエンプティ状態は続きますので、
MMU_CHECK_GATES
でゲートの状態をチェックすると通常状態に戻ります。
多色用モデルのスライサーへの読み込み方
ちょっと待ってね….
多色用モデルの作成方法
ちょっと待ってね….