Ender-3 Pro に marlinファームウェアを書き込む

前回、3Dプリンタマザーボードを交換したので、今回はファームウェアの更新を行います。
対象の3Dプリンタは Ender 3 Pro となります。
また、対象のマザーボードは Creality V4.2.7 ボードです。

ファームウェアの最も簡単なアップデート方法は公式のダウンロードページから bin ファイルをダウンロードすることですが、若干、古いバージョンとなっていため github から最新の安定版をダウンロードしてコンパイルします。

はじめに

マザーボードには標準で V1.0.1 が入っています。
安定した動作を目的とするなら特に問題ないと思うので、そのまま使うのもありです。

f:id:nya03n:20210916225459j:plain
初期ファームウェア

公式版

公式のファイルをダウンロードするのが最も手軽にアップデートする方法です。

https://www.creality.com/download

左のサイドバーから「Ender Series Firmware」を選び、「Ender-3 pro 3D Printer」を開き、
「Ender-3 pro 4.2.7 mainboard firmware (32 bit) 」をダウンロードして、解凍します。

解凍すると中に色々フォルダがあると思います。
更新したい対象のファームウェアのフォルダを開いて、なかにある .bin ファイルをSDカードに入れます。
このとき、SDカードの中身は .bin ファイルだけにしてください。
SDカードを3Dプリンタに差し込んで電源を入れると自動的にファームウェアがアップデートされます。

アップデートが完了するとバージョン番号が変わります。

f:id:nya03n:20210916225527j:plain
公式版ファームウェア

marlin版

marlin版に更新するためには自分でソースコードからコンパイルする必要があります。
少し、手間ですが、そこまで難しいものでもないです。

はじめに、marlinのダウンロードサイトから最新のbugfix版とgithubのページからConfigurationsファイルをダウンロードします。

f:id:nya03n:20210916225602p:plain
marlinファイルのダウンロード

githubのページは中央右上にある「Code」をクリックして、表示されるメニューの「Download ZIP」からダウンロードできます。

f:id:nya03n:20210916225627p:plain
githubからのダウンロード

ファイルのダウンロード後、解凍して各ファイルの内容にひと手間加えます。

準備

コンパイルやファイルの変更は最も簡単な方法で行います。

はじめに、Visual Studio Code をダウンロードしてインストールします。
これは、高機能なテキストエディタです。これを使う方法が最も簡単です。

インストールすると1つだけ拡張機能を追加する必要があります。
一番左のバーにテトリスみたいなアイコンがあるのでクリックし、検索窓に「platformIO IDE」と打ちます。 すると検索の一番上に蟻みたいなアイコンが表示されるので、選択してインストールします。

f:id:nya03n:20210916225703p:plain
vscode拡張機能インストール

これでコンパイルする道具の用意は終わりです。

bugfix の platformio.ini ファイルの変更

「Marlin-bugfix-2.0.x」を解凍し、フォルダ内に入ると「platformio.ini」というファイルがあります。 このファイルの中身を一行だけ変更します。

vscodeにフォルダごとドロップすると開くことができます。
(保存がなんちゃらと聞かれたら「保存しない」を選んで大丈夫です。)

続いて、platformio.ini ファイルを開いて、16行目の内容を変更します。
「default_envs = mega2560」を「default_envs = STM32F103RET6_creality」に変更します。

f:id:nya03n:20210916225736p:plain
ファイル変更前

対象箇所を「default_envs = STM32F103RET6_creality」に変更。

f:id:nya03n:20210916225753p:plain
ファイル変更後

ファイルの変更はこれで終わりですが、vscodeは起動しておいてください。

bugfix のファイルを Configurations のファイルで上書きする

次に「Configurations-bugfix-2.0.x」を解凍し、bugfix のファイルを上書きします。

「Configurations-bugfix-2.0.x」フォルダに入り、
config → examples → Creality → Ender-3 Pro と進みます。

Ender-3 Pro まで進むと中に「CrealityV427」フォルダがあるので、更に進みます。
CrealityV427 内には4つの「 .h」 ファイルが入っているはずです。
このファイルを Marlin-bugfix-2.0.x 内の「Marlin」フォルダにコピーします。

f:id:nya03n:20210916225815p:plain
ヘッダーファイルのコピーと上書き

上書き後、「Configuration.h」ファイルに一行追加する必要があります。
107行目付近に「#define SERIAL_PORT 1」と書いている行がありますが、
この下に「#define SERIAL_PORT_2 3」と入れます。
これも、vscodeで行います。

f:id:nya03n:20210916225849p:plain
ヘッダーファイルへコードの追加

以上でコンパイルの準備は完了です。

コンパイル

最後にコンパイルを行います。
vscodeを開いて、「platformio.ini」を選択します。
その状態を確認して、左下の「レ点」をクリックします。

f:id:nya03n:20210916225927p:plain
コンパイル開始

vscodeのターミナルが起動してコンパイルが始まります。
特に問題がなければそのまま完了するはずです。

f:id:nya03n:20210916225946p:plain
コンパイルの完了

3Dプリンタの更新

コンパイルが完了すると「Marlin-bugfix-2.0.x」内に「.pio」フォルダが作成されています。
順番に入っていきます。 Marlin-bugfix-2.0.x → .pio → build → STM32F103RET6_creality
ここまで入ると「firmware-日付-時間.bin」ファイルがあるはずです。
このファイルをSDカードにコピーします。

f:id:nya03n:20210916230039p:plain
ファームウェアファイル

SDカード内は「firmware-日付-時間.bin」ファイルだけの状態にしてください。
SDカードを3Dプリンタに差して電源を入れると更新されます。

もし、更新されない場合はファイル名を「firmware.bin」に変更してみてください。
多分、大丈夫だと思います。

更新完了

これで更新は完了です。

f:id:nya03n:20210916230118j:plain
marlin ファームウェア更新完了

更新後の起動時にEEPROMに関するエラーが出た場合、とりあえず「 i agree」 を選び、EEPROM を初期化する必要があります。
3DプリンタLCDを操作して、
Configuration → Advanced settings → Initialize EEPROM から初期化できます。

ただし、これを行うとキャリブレーションがズレます。
キャリブレーションの仕方は次回にでも書きます。