ブラウザの Javascript を有効にして下さい。
This site requires your browser to be JavaScript enabled.

ファームウェアEnder3V2S1

Ender3V2S1 は、mriscoc氏が作成したEnder3 V2、Ender3 S1用のファームウェアです。
Crearity公式のファームウェアでは足りない機能を補ってくれます。
私は公式ファームウェアをやめてEnder3V2S1を使うことにしました。

このページでは、色々調べたEnder3V2S1の機能を整理しています。

導入メリット

嬉しかった点を箇条書きで。

  • CR/3D/BLTouch のオートレベリング処理の改善
    • 計測結果を画面で確認できる
    • 計測処理が速い
    • 計測ポイント数を変更できる
  • 印刷画面(gcodeファイル一覧画面)に遷移したときにSDカード内のファイルをリロードしてくれる
  • 印刷画面で長いファイル名でもスクロールして表示される
  • 印刷前にgcodeの形状をプレビューできる
  • 印刷中にLCDのバックライトをオフにできる
  • オートレベリングが不要なときにスキップできる

導入方法

ダウンロード

https://github.com/mriscoc/Ender3V2S1/releases/latest
ページの一番下より最新のファームウェアをダウンロードできます。

メインボードのバージョン毎にリリースされていますので、面倒くさがらずにメインボードのバージョンを事前に確認しておきましょう。
ちなみに2022年1月購入のEnder3 V2は4.2.2でした。
デフォルトのカバーであれば、はずさなくても隙間から見えるようです。

CR/3D/BLTouch を使っている場合は、ファイル名に BLTUBL が含まれるものをダウンロードします。

ファームウェアの適用

SDカードにダウンロードした .bin ファイルを入れて、USBを挿していない状態で電源を入れます。
画面は真っ暗のまま20秒程度待てばファームウェアの更新が完了してプリンタが起動します。

もしEnder3V2S1が気に入らなかったら、同じ手順でメーカ公式のファームウェアに戻せます。
メーカ公式のファームウェアはこちら → https://www.creality.com/download

導入後の設定項目

ファームウェアを更新するとほとんどの設定がクリアされます。
少なくとも以下の項目と、ほかにもBeep音やオートレベリング結果、オートレベリングの計測ポイント数、プリセット温度、LCDの明るさ等のオプションも設定しましょう。

ベッドサイズの指定

メニュー:AdvancedPhysical settings

ベッドのサイズを指定します。
デフォルトではメーカ公表の値よりも一回り大きな値になっていました(実際このサイズで印刷できるのかも?)。
指定後はそれぞれのメニュー内にあるStore Settingsで保存します。

エクストルーダのフィラメント送出量の調節

メニュー:PrepareMove AxisMove Ext. 100mm

メニュー:ControlMotionSteps/mmEsteps/mm

Move Ext. 100mmで実際に出てきたフィラメントの長さ X(mm) を測定し、

 (現在のEsteps/mm値) × 100 ÷ X

で計算した値をEsteps/mmに設定します。

ここの調節をする間だけ下に書いたExtrude Min Temp.を0にしておけば、ホットエンドをわざわざ加熱しなくてもエクストルーダが動いてくれます。
調節が終わったら元に戻すのを忘れないように(デフォルト値は180でした)。

CR/3D/BLTouch 取り付け位置の指定

メニュー:AdvancedProbe settings

CR/3D/BLTouchの取り付け位置(ノズルから見た観測点のX,Y位置のオフセット)を指定します。
私はCR Touchを純正部品で取り付けていますが、定規での実測したところ X = -45.5, Y = -6 でした。

温度設定アルゴリズム調節

メニュー:AdvancedMPC Settings

メニュー:AdvancedBed PID Settings

ホットエンドとベッドの温度調節のためのアルゴリズムのパラメータを調整します。
調節するには上記メニュー内のMPC AutotuneBed PIDを選択してしばらく待つだけです。

フィラメントセンサーオプション

メニュー:AdvancedFilament SettingsEnable Runout

メニュー:AdvancedFilament SettingsRunout Active

フィラメントセンサーを付けている場合は、Enable Runoutをチェックして、Runout Activeに検出方法を設定します。

(その他)アップデート時の注意点

ファームウェアのアップデートを行うとほとんどの設定がクリアされます。
上記の設定以外にも、Beep音、オートレベリング結果、オートレベリングの計測ポイント数、PLA/ABS/CUSTOMプリセットの温度等再設定が必要です。

設定変更後はStore Settingsで保存するのをお忘れなく。

機能紹介

プレビュー機能

印刷画面でgcodeをプレビューできます。
複数のgcodeをまとめて入れて、印刷時に「あれ、どれだっけ?」と迷うことがなくなりますね。

プレビュー画像は3Dプリンタが生成しているわけではなく、スライサーがスライス時に作ってgcodeファイルに埋め込んで、3Dプリンタは埋め込まれた画像を表示します。
そのためプレビュー時に動かしたりはできません。

Ender3V2S1ファームウェアを入れただけではこの機能は使えず、Python3系のインストールと、以下の動画を参考にスライサーソフトの設定を行えばプレビューできました。

少し大きいとはみ出すようですね。。

オートレベリング機能


実行

メニュー:PrepareAuto Build Mesh

公式ファームウェアのメインメニューのLevelと同じです。
CR/3D/BLTouchを使ってオートレベリングを行います。

オートレベリングの計測ポイント数の設定

メニュー:AdvancedMesh Points

2x2~9x9 の範囲で設定します。
オートレベリングに関してはメニューの場所が点在していて使いにくいですね。

9x9にしたところ、測定の終盤に突然プローブが引っ込んで、そのまま測定は継続されたのでノズルがベッドに衝突しましたw
下の Z Feed Rate を低くしていた時だったので、もしかしたら「一定時間プローブが出たままだとプローブが勝手に引っ込む」とかあるのかも?? ノズルやホットエンドが痛むので検証はしていません。
とりあえず7x7なら問題なかったです。

計測速度の設定1

メニュー:AdvancedProbe SettingsZ Feed Rate

計測時にZ軸を動かす速度を指定できます。

速度を上げると精度が落ちるのかをCR Touchで検証してみました(HS ModeはONで測定)。
値が60~500のときの計測精度を、メニューのM48 Testで比較すると、速度を上げても精度が落ちるということはなく、最後に表示される標準偏差の値は0.0005~0.002の範囲に収まっていました。
デフォルトの480で十分ですね。

計測速度の設定2

メニュー:AdvancedProbe SettingsEnable HS mode

HSはhigh speedです。
ここのチェックを外すと公式ファームウェアと同じ動きとなり、1回の計測の度にプローブの針を出したり引っ込めたりします。遅いしカチャカチャうるさいです。
チェックを入れると針は出っぱなしで計測するので計測時間の短縮になります。

計測結果の確認

メニュー:AdvancedView Mesh

測定結果が表示されます。

オートレベリングのスキップ

オートレベリング中はCancelボタンが表示されるようになります。
スライサーで印刷開始時にG29を入れてオートレベリングを毎回行っている人も多いかと思いますが、接地面が狭い物の印刷時や、あまり精度を求めない時はCancelボタンを押せばオートレベリングをスキップできます。

Bed Tramming

メニュー:PrepareBed Tramming

「ベッド トラミング」と言われてもピンときませんが、これはベッド面をヘッドのXY平面に対して水平にするための調節のようです。

ベッドを温めてから、ベッドの四隅の高さを測定しながら傾きがなくなるように調節します。
四隅の高さが同じ値になればOKです。

Front Left/Front Right/Back Left/Back Rightで各ポイントを測定するか、Bed tramming wizardで四隅を順に測定してそれぞれの高さを表示できます。

停電からの復帰オプション

メニュー:AdvancedPower outage

印刷中に停電などで電源が落ちても、次の起動時に続きから印刷できるようにする機能です。
公式ファームウェアではデフォルトで有効でしたが、このファームではデフォルト無効になっています。

フィラメント管理

メニュー:PrepareFilament Management

フィラメントの交換時に、メニューを選べばホットエンドの温度を上げたり、エクストルーダのモーターを回したりしてくれます。
Park Headは退避位置にヘッドを移動します。

ホーム

メニュー:PrepareHoming

このファームウェアを入れると、Auto Home時にX軸とY軸が同時に移動します。
ちびっとだけ時間短縮になったかもしれませんが、Auto Homeを選ぶためのメニューが1階層深くなってしまいました。

また、X/Y/Z軸個別にホーム位置に移動できます。

プローブ調整

メニュー:PrepareZ Probe Wizard

印刷前のZ方向の高さ調節はここで行います。
ここにもAuto Homeがあって便利ですね。

Move Z to Homeを選ぶと、「Z位置0 + プローブのオフセット」までヘッドが移動するので、最初はProbe Z Offsetを多少プラスしておかないと、ベッドにノズルがぶつかるかもしれません。

シリアル通信速度

メニュー:Advanced115k baud

このファームウェアを入れると、シリアル通信速度が 250,000bps になります。
以前の 115,200bps に戻したい場合はチェックします。

LCDの明るさ

メニュー:AdvancedLCD Brightness

LCD(液晶ディスプレー)の明るさを調節できます。

メニュー:AdvancedSelect Colors

GUIの配色を変更できます。
18種類の要素について、描画色を R, G, B 値で指定できます。

beep音

メニュー:AdvancedEnable sound

ボタンを押したときに鳴るbeep音の有効/無効を切り替えます。
私はオフにしています。

温度設定のプリセット

メニュー:ControlTemperature

プリセットとして PLA, ABS, CUSTOM の3種類を登録できます。
CUSTOMはEnderV2ならPETG用でしょうかね。

モーションコントロール

メニュー:ControlMotion

ヘッドやベッド、エクストルーダを動かすときの最大のSpeed(速度), Acceleration(加速度), Jerk(加加速) を設定します。
なお、MarlinのJerkは本来の意味の加加速度とは違うようです。公式のファームウェアでもMaxCornerSpeedというパラメータ名でした。
それぞれの値については、

に詳しく書かれています。

結局のところ、JerkやAccelerationを下げると印刷速度は遅くなるが振動や騒音は減る。でも印刷品質とそれらがどう関わるかはやってみないとわからない(低ければ印刷品質がよいというわけではないようですね)。
また、印刷品質はホットエンドの設定温度や、スライサーのCombing ModeRetraction Distanceといった設定値にも左右されるでしょうから、これらの設定を経験と勘で調節して印刷品質を上げるのはなかなか難しいかも。

Steps/mmと、Flowについては、

に詳しく書かれています。
定期的に調節したほうがよさそうですね。

フィラメント設定

メニュー:AdvancedFilament Settings

Enable Runout フィラメントセンサーがない場合はここのチェックを外します。

Runout Active 取り付けているフィラメントセンサーの種類(スイッチタイプならアクティブH or アクティブL, またはフィラメントの動きを検出するタイプのセンサー)を指定します。

Runout Distance 動きを検出するタイプのセンサーのときに使われるパラメータですが、何mmの移動でセンサーがパルス信号を出すかを指定するのか、パルスなしが何mm以上続くと異常と判断するかの閾値を指定するのか、どちらかよくわかりません。

Invert Extruder エクストルーダの方向を反転できます。
エクストルーダを変更したときに必要になることもあるのでしょうか。

Extrude Min Temp.Load mmUnload mm エクストルーダがフィラメントを押し出すのに必要なホットエンドの温度と、フィラメントをロード/アンロードする際にフィラメントを押し出す長さ。
フィラメント管理メニューでの操作時に使われる値だと思います。

Retract mm Retract Speed Hop mm Recover Speed
このあたりはスライサーの設定にもありますが、gcodeになければ3Dプリンタ側の設定が使われるということでしょうか?