Marlin Firmwareの動作状況を調べてみた【XY-2 PRO】

タイトル

3Dプリンター TRONXY XY-2 PRO TITAN用のMarlin FirmwareをビルドしていますがUIによって微妙に挙動が変わります。変わっちゃいけないはずの所も変わってしまいます。メモとして挙動をまとめました。


Marlin Firmware 2.1をビルドしています。使っている3DプリンターはTRONXY XY-2 PRO TITANです。
MarlinFirmware/Marlin
Marlin 3D Printer Firmware
ファームウエアをビルドするには3Dプリンターの制御ボードとそれに使われているMCUとモータードライバーICを知らなくてはなりません。3Dプリンターの蓋を開けて型番を確認するのが確実です。同じ3Dプリンターでもロットにより使っている制御ボードが変わっています。新しい制御ボードやMCUではMarlinファームウエアが対応していないかもしれません。
最近のEnderシリーズなどではMCUにSTM32クローンのGD32が使われているようです。GD32はライブラリの一部に互換性がないようです。Marlinはサポートしていません。メーカーが提供しているMarlinファームウエアを使う必要があります。このソースが公開されておらずGPL違反と言われています。
STM32でも新しいものはまだサポートされていないようです。
3Dプリンターをこれから買う人は制御ボードとMCUの情報も調査しましょう。

今回の3Dプリンターではこう。
  • 制御ボード:CXY-V6-191121
  • MCU:STM32F103ZE
  • モータードライバ:TMC2225
TMC2225の中身はTMC2208と同じです。TMC2208にUARTが付いています。通信で機能設定ができるICですが使っている制御ボードにはUARTの配線がありませんのでTMC2208と同じです。
The TMC2225 provides an integrated motor driver solution for 3D-Printing, Cameras, Scanners and other automated equipment applications. 
Marlin FirmwareにはLinear Advanceというエクストルーダーの制御をホットエンドの移動に合わせて制御する機能があります。以前のバージョンではTMCのStealthChopを無効にしないとエクストルーダーモーターがプリントの途中に止まるという不具合がありました。StealthChopはモーター駆動音が静かになります。
制御ボードにはTMC2225のStealthChopを無効にする手段がありません。ICに直接はんだ付けをしてやればStealthChopを無効にできます。ピンの間隔が狭いので難易度は高めです。ビデオネタとしてもちょっと控えめに紹介していました。
Marlinのバージョン2.1ではStealthChopでもLinear Advanceが使えるようになったそうです。まだ私は未確認です。
これが理由で最新Marlinを使いたいのですが、いろいろ他の問題があるようで基本的な所からやり直しています。もうビルドを成功させる所からです。

UI毎の動作状況

Marlin Firmwareのバージョンは
bugfix-2.1.x
STRING_DISTRIBUTION_DATE "2022-11-13"
です。
PlatformIOの環境はこれにしています。
default_envs = chitu_v5_gpio_init
chitu_f103にパッチを当てた環境です。今回はこのパッチで修正された問題と似た問題がでています。
Configurationファイルは以前のバージョンと最新のバージョンを比較して最新状態にしました。

2.0.xとの大きな違いはX軸endstopをPULLUPからPULLDOWNにしなければならない事です。これは制御ボードが同じなら変わるはずがない設定なのですが変更しないとX軸の原点が取れません。何か根本的におかしいです。
EEPROMへの書き込みができないのか電源起動毎にキャリブレーションが要求されたり何かおかしな点があります。
不意にリブートしてプリントを失敗する事がありますが再現性がありません。

STM32F103ZEではmapleというライブラリを使ったmapleビルドとSTM標準のライブラリを使ったノーマルビルドを選べます。現在mapleライブラリの開発は終了しておりmapleビルドは非推奨となっています。

CLASSIC UI

メモリーの使用量が少ないシンプルなUIです。ビルドは問題なくできます。
タッチパネル操作はやりにくいです。
Marlinを使うような人はシリアル通信を使っていてタッチパネル操作はほとんどしないと思いますのでメモリー使用量が少ない方がありがたいでしょう。

COLOR UI

CLASSIC UIよりタッチパネル操作がしやすいです。
タッチパネルのキャリブレーションで画面が固まる事があります。するとタッチパネルが使えなくなります。その時でもシリアル通信はできるのでプリントはできます。プリント中にリブートする事がありました。

LVGL UI

タッチパネル操作として一番今どきな感じです。メモリー使用量は多いです。
ノーマルビルドはできますが3Dプリンターのファームウエア更新に失敗します。モニター画面が真っ暗なまま再起動を繰り返す感じです。assetsフォルダの読み込みをしません。
これは以前のバージョンから同じです。

mapleビルド

環境をmapleにします。
default_envs = chitu_v5_gpio_init_maple
以前のバージョンはmapleビルドで動きました。新しいバージョンでmapleビルドをすると次のエラーでビルドできません。
KeyError: "Invalid board option 'build.crypt_chitu'"
何か設定が足りないようです。
platformio.iniの最後にenvセクションを追加して回避しました。
[env:chitu_f103_maple]
board_build.crypt_chitu = update.cbd
制御ボードがchitu_f103_mapleの時にオプションを追加します。
この記述はini/stm32f1-maple.iniにあるべき内容です。ですが以前のバージョン2.0.9.3にもその設定はありませんがビルドはできていました。
何かが変わってしまったようです。

mapleビルドの結果ですが、今回はさらにY軸のendstopをPULLUPからPULLDOWNにしないとトリガがかかりません。何か根本的におかしいです。
そして、M300コマンドが使えません。リブートしてしまいます。バージョン2.0.9.3より新しいバージョンでも同じことが起きていました。M300コマンドは音を出すコマンドです。普通は使わないコマンドなのでプリントの大きな問題とはなりません。

結論

この記事公開時点では ノーマルビルドのCOLOR UIで様子を見ます。

ビデオ




コメント

最近のコメント

Threaded Recent Comments will be here.