MarlinのLinear Advanceで高速プリントを試す【TRONXY XY-2 PRO】

タイトル

TRONXY XY-2 PROのファームウエアをMarlinにしてみました。
そして新しいアルゴリズムLinear Advanceで高速プリントしてみます。

Marlin

3DプリンタのファームウエアをMarlinにしました。ファームウエアを更新するとTRONXYのファームウエアが上書きされ消えてしまいます。バックアップを取らずに試すのはやめましょう。失敗すると復活できないので詳しい手順は説明しません。
ファームウエアはここにあります。ビルドしてアップデートします。
MarlinFirmware / Marlin | GitHub
Marlin 3D Printer Firmware
設定ファイル "Configuration.h" と "Configuration_adv.h" をXY-2 PRO用の設定に直します。設定ファイルを公開してくれている方がいます。
rhapsodyv / Marlin | GitHub
This repository is just a copy of the official Marlin, with Tronxy X5SA (and variants) pre-configured.
TRONXYの多くの機種の設定があります。自分の機種に合わせて設定ファイルをいじります。

Linear Advance

3Dプリンタのモーターを制御するアルゴリズムが新しくなっています。3Dプリンタの制御ボードのCPUが32bit化されてきて高性能なアルゴリズムを動かすことができるようになって来ました。MarlinではLinear Advanceという新しいアルゴリズムが使えます。使うには設定ファイルでLinear Advanceを有効にします。

Linear Advanceではエクストルーダの動きを緻密にコントロールしながらヘッド移動を行います。エクストルーダがフィラメントを押したり引いたりする動きとノズルからフィラメントが出たり止まったりするタイミングは一致しません。フィラメントが伸び縮みしたり、ボーデンチューブ内で曲がったりしてエクストルーダーの動きから遅れてノズルからフィラメントが出ます。Linear Advanceではその遅れを考慮してエクストルーダを動かし、エクストルーダが正しくフィラメントを吐出できるようヘッドを移動します。

ボーデンチューブを長く伸ばすと遅れも大きくなり綺麗なプリントができません。そこでエクストルーダとノズルの距離を近づけたダイレクトタイプのホットエンドが作られました。それでも遅れは残ります。Linear Advanceによりボーデンチューブタイプでもキレイにプリントできるようになります。ダイレクトタイプの方が良いことには変わりありません。

K factor

遅れを制御する係数がKです。プリンタ毎、フィラメント毎に遅れは異なるのでフィラメントに合わせたK値を設定します。
K値を"0"にするとLinear Advanceは動きません。初期値は"0"にして基本的な調整を済ませましょう。
K値を変えてプリントして最適な値を見つけます。専用のテストパターンで調整できます。G-CODEを作りプリントしてK値を決定します。
Use this form to generate G-code that you can use to calibrate your Linear Advance K-factor.
このテストパターンは一層目をキレイにプリントできなければ使えません。ベッドの水平、Z軸のオフセット、フィラメントの温度設定など基本的な条件出しが終わってからやります。
K値を決定したらスライサのスタートアップスクリプトなどにK値を指定するコードを追加します。
Ultimaker CuraではK値を指定するプラグインがあります。
Linear Advance Settings By fieldOfView | Ultimaker Marketplace
Adds a Linear Advance Ratio setting for firmware that supports the LIN_ADVANCE feature
フィラメント毎にK値は異なりますがABSとPLAでは大きく変わらないでしょう。TPUなど柔らかいフィラメントは別にK値を決めましょう。

モータードライバの問題

一部のモータードライバではLinear Advanceを有効にすると正しくプリントできなくなります。プリントが途中で止まったり、エクストルーダが回転しなくなります。
問題のあるモータドライバはTrinamic社製のTMC2208など静音を謳い文句にしているモータードライバです。マイクロステップというステッピングモータをより細かいステップで動かすモータードライバです。モータの動きが細かくなるので振動や騒音が減ります。静かになるので制御ボードを取り替えた人もいるでしょう。Trinamic社ではStealthChopという商標で呼んでいます。

Linear Advanceではエクストルーダの制御信号がとても複雑になります。原因ははっきりしていないようですが、ある特定の制御信号が来た時にモータードライバが止まってしまうようです。
エクストルーダのモーターはより俊敏に回転方向を変えるようなるのでトルクが弱い静音モードは使わない方が良いです。不具合を避けるためにもTrinamic社でSpreadCycleという商標の動作モードでモータードライバーを動かします。
この変更が難しいモータードライバもあります。TMC2208では何もしなければ静音モードで動きます。静音モードを無効にするにはモータードライバとコンピュータをUART(シリアル通信)でつないで命令を送り動作モードを変更しなくてはなりません。この配線がしてある制御ボードは多くないようです。できなければTMC2208を使っていない制御ボードへの買い替えを検討しなくてはなりません。

私のTRONXY XY-2 PROの制御ボードはCXY-V6-191017でした。この制御ボードにはTMC2225というモータードライバが載っています。基本的にTMC2208と同じです。そのため、Linear Advanceを使うことができません。ですがTMC2225は比較的簡単に静音モードを無効にできます。
無効にする方法は説明しません。ハンダ付けの難易度が高いからです。よほど慣れていなければモータードライバを壊してしまうでしょう。
この文章で何をすればいいか分かる方は自己責任で改造してください。

Linear Advanceの効果

プリントの様子を見てもらうのが一番解りやすいでしょう。


糸引きや垂れはほぼ無くなります。
ヘッドの移動速度が変わる部分でフィラメントが出過ぎたり足りなかったりが無くなるので凸凹やダマになったような部分が無くなります。
プリント速度を速くしてもそれに合わせてフィラメントの吐出量が調整されるのでフィラメント不足になりにくいです。
ただし、ホットエンドが十分にフィラメントを溶かせなければ速度を上げることは当然できません。Linear Advanceはフィラメントが溶けている事を前提に動きます。

糸引きが改善しないならリトラクションの設定がおかしいです。K値をゼロにして最適なリトラクション条件を見つけます。そもそもホットエンドが正しく組み立てられていなければなりません。

XY-2 PROやEnder 3でも100mm/s程度なら普通に使えるプリントができるでしょう。フィラメントによっては140mm/sでも常用できそうです。

最近のFDM 3Dプリンタの流行り

MarlinのLinear Advanceのようにコンピューターの計算パワーを使ってモーターを緻密に動かすようになって来ました。外付けのもっと高性能なコンピューターで計算して本体の制御ボードはモーターを動かすだけみたいなKlipperというファームウエアもあります。Klipperではメカが共振を起こすような動きを避けるような制御も行い、より綺麗なプリントができるようです。今度試してみたいと思い、まずはLinear Advanceを動かしました。
ですが安価な構造のXY-2 PROやEnder 3のような3Dプリンタでその能力を発揮させるのは難しそうです。

ヘッドのスピードの限界はホットエンドがフィラメントを溶かせる量で決まります。フィラメントが溶けなければプリントできるはずがありません。フィラメントを大量に速く溶かすためヒーターカートリッジを2つ搭載したホットエンドも出てきました。
フィラメントが溶ければもっと速くヘッドを動かせます。スライダにより高価な部品を使い高速で高精度なヘッド移動ができるようにします。
速度制御の性能を上げ無用な振動を発せさせないブラシレスモーターを使うプリンタも出てきました。

XY-2 PROやEnder 3はいかに安い部品でそこそこのプリントをするかという時代のプリンタです。価格も安く扱いやすい優れた3Dプリンタです。考え方が違うので今のトレンドを追いかけるには無理があります。でも、3Dプリンタで綺麗なプリントをするにはどうしたら良いか考えるヒントになります。
ホットエンドが命です。


コメント

最近のコメント

Threaded Recent Comments will be here.