Marlinのノズル温度を自動調整
3DPrintをしていると印刷速度の変化でフィラメントの吐出量が多くなる場面で、「ノズルの温度下がるよな?」とか「ノズルからセンサーまでの距離が遠いな」とか、ノズルの温度の変動の事を考えた事があるかと思います。
先人は当然考えて対処しているようで、Marlinには「Automatic Temperature Mode」という機能が備わっています。
コメント書きをGoogle翻訳すると
E軸の送り出し速度に合わせてノズル温度の設定値を調整してくれる機能です。(送り出しが速くなった時にセンサーが温度低下を感知する前にヒーターをONする機能と考えれば良いのでしょう。その逆も然り。)
調整の度合いは mintemp + factor * mm_per_sec で求まるので計算してみると、一例として E軸の移動量は以前の計算結果からXY軸1mmの移動当たり 0.0193mmの移動だったので、Facter=1の設定だと10mm/secの印刷当たり10×0.0193 =0.193℃くらいの設定温度の上乗せになる様です。
微調整ですね。
30mm/secの印刷からインフィルの印刷を50mm/secに移行した時に1度くらいの温度を上乗せしようと思うと、factor =1/((50-30)×0.0193)=2.59 位に設定すると良いみたいです。
印刷速度に比例するのでは無く吐出量に比例するのでスライサー次第という所もありますね。
実際には
M104 F1 S215 B220
こんな感じで温度設定のコマンドに、F でfactor を指定して、 S で基本温度、B で上限温度を指定します。
AUTOTEMPはMarlin2.0X系ではデフォルトでONになっていますので、どんな機種でも利用が可能なものと思います。
また他にも PID_EXTRUSION_SCALINGという機能もあり、こちらはE軸の送り出し速度に合わせて、PID制御のパラメーターを調整します。
E軸の速さに合わせてPIDの比例分をかさ上げする機能です。あまりに広い吐出スピードのレンジで温度が一定しないとか特別に温度管理を一定にしたいとか言うときに使用できますね。
フォルトではOFFになっています。
以上、Marlinの機能紹介でした。