2023年8月2日水曜日

カスタムファームウェア奮闘記 [MarlinFirmware]

3Dファームウェア奮闘記 [Marlin Firmware v1.3.1]

2023/08/02 公開
 こんにちは!、りんごねぎちくわです。
3Dプリンターのファームウェア調整が終わったので報告を兼ねて、Marline Firmwareのコンパイルとインストール方法を説明します。
対象機器は「Aquila S2 Upgraede」です。

1. はじめに

このブログで分からなかったことは、まず自分で調べて下さいね
真似と参考は自己責任で
 ビルド環境を次の表に書いときます。
githubからzip形式でダウンロード&解凍してください。
VScodeで解凍したフォルダを開き、拡張機能の二つをインストールして準備完了です。
*ただし、ファイルを置く場所はパスに日本語を含まないフォルダにすること。
ビルドプログラムが日本語フォントに対応してないのでバグります。
基本的に日本語入力禁止。

2. コード修正

実はソースコードのスクリプトを修正する必要があります。
.buildroot/share/PlatformIO/scripts/marlin.py
の22行目、
for define in env['CPPDEFINES']:

for define in env['CPPDEFINES'].copy():

copy

へ書き換えてください。末尾に.copy()を追加するだけです。

3. テストビルド [Auto build marline 編]

拡張機能「Auto Build Marline」でビルドする方法を説明します。

1. VScodeのサイドバーのMアイコンをクリックします。
2. ビルド用のタブが開くので、環境ごとの[build]ボタンを押します。
3. ターミナルが開きビルドが開始するので、少し待ちます。
4. SUCCESSの文字が出れば成功。

ここで失敗する場合は、コンソールのエラーコードを確認してください。「.elf」のファイル出力時にエラーが出ている場合は、ファイルのフルパスに日本語が含まれている可能性があります。
Aquilaの場合、マイコンの種類によってビルドの設定を変更する必要があります。
H32・N32・G32の中から選びます。今回のソースコードにはH32の環境は入ってません。 これのせいで、Marlin公式が配布している最新版Marlin2.0はそのままでインストールできません。
やり方があるのでしょうけど、私はわかりませんでした。

4. テストビルド [ PlatformIO 編]

つぎは拡張機能「PlatformIO」でビルドする方法を説明します。

1. VScodeのタブ右側のチェックマークボタンの横のvボタンを押します。
2. タブが開くので、その中の[build]ボタンを押します。
3. ターミナルが開きビルドが開始するので、少し待ちます。
4. SUCCESSの文字が出れば成功。

ビルド開始後はAuto build marlineと変わりません
この方法では環境を変更するためにはplatformio.iniファイルを書き換える必要があります。
16行目の

default_envs = STM32F103RET6_voxelab_aquila_N32

"N32"部分をを使用するマイコンの番号に変えます。
このソースコードではN32とG32のみが選択できます。

5. ディスプレイファームウェアの用意

このタイプの3Dプリンターには2つのマイコンが搭載されており、一つはプリンター、もう一つはUIの役割を分担してます。
Marline Firmwareをプリンター用のマイコンにインストールしても、UI用のマイコンに専用のディスプレイファームウェアをインストールしなければ、動作することができません。
Aquilaの場合、液晶パネルが付いた基盤にUI用のマイコンが搭載されてます。
このディスプレイファームウェアは
Marlin-1.3.5.1/Display firmware/Firmware Sets
の中にあります。
この中から好みのデザインのものを一つ選び、フォルダごとSDカードにコピーし「DWIN_SET」と名前を変えます。

DWIN_SET

copy


6. ファームウェアの用意

2つのどちらのビルド方法でも出力先のフォルダは同じです。
Marlin-1.3.5.1/.pio/build
このフォルダ内にビルドで生成されたフォルダがあります。
適当に入ってみます。
この中の末尾が「.bin」のファイルがプリンターのファームウェアになります。
SDカードに「firmware」のフォルダを作成し、このファイルをコピーします。
この時点で、SDカードのファイル構造は以下のようになっているはずです。

SD card
└─ firmware ── *****.bin
└─ DWIN_SET ── [ DWIN_SETの中身 ]


7. ディスプレイファーウェアのインストール

最初にディスプレイ用のファーウェアをインストールします。
裏面のねじ4つを外し、薄い物を挟んで中の爪を抑え着けながら蓋を外します。
このマイクロSDカードスロットに入れて3dプリンターを起動します。
起動すると画面が青になり、少し待つと赤色になります。
赤色の画面を確認したら電源を切って、sdカードを抜いてください。
もうこのSDカードスロットは使わないので、裏蓋は元に戻して構いません。

8. カスタムファーウェアのインストール

やることは単純です。
プリントで使う方のSDカードスロットに入れ、電源を入れます。
今回の3Dプリンターだと正面左下のスロットですね。
電源を入れた後、ファームウェアがインストールされ、成功の場合はそのまま使えます。
以上でインストール完了です

失敗していると電源入れた時の画面から変化しません。
ディスプレイファームウェアのインストールに失敗していると、このインストールも失敗します。インストールファイルなどを確認してください。
※firmwareフォルダの中身はインストール時に自動で消されます

9. おわりに

これでAquila S2にMarlinがインストールされたと思います。。
ですが、おそらく使っていくうちに不満が出てくると思います。
例えば...
とか起きます。なので自己責任でお願いしてます。

感想ですが、非常にめんどくさかったです。公式のファームウェアはバグが多いんですがセンサー系はしっかりしてました。私が使用してるAquila S2 Upgradedは公式がファームウェアを配布してないので大変でした。
ここまで来たら3Dプリンターを自作したいですね。基板はArduinoでもいいらしいみたいです。
以上、カスタムファームウェア奮闘記でした!

0 件のコメント:

コメントを投稿