BTT SKR mini E3 V3.0 ボードのファン動作について

数日前、3D プリンタのメインボード BIGTREETECH 社 SKR mini E3 V3.0 でファンの動作がコントロールできない問題がありました。 しかし、本日コーヒーを飲みながらゆっくり考えると簡単に解決できました。

忘れないようにメモしておきます。

機種とファームウェア

対象のメインボードとファームは下記の通りです。

項目
ボード BIGTREETECH SKR mini E3 V3.0
ファームウェア Marlin bugfix-2.0.x (Nightly Builds)

現象

ファン動作の問題は G-code M106 命令でファンの動作を制御できなかったことです。 具体的には、番号 PC7 に接続するファンの動作を制御することができない状態でした。 また、PC7 は標準では FAN1 に設定されています。

さらに、制御されるべきである PC6 に接続される FAN0 も全く制御できない状態となっています。 PC6 の場合はボードに電源を入れると常に動作している状態となります。

PC7 に関しては Marlin の Configuration_adv.h ファイルを編集し様々なファンに設定できますが、M106 命令が効かない状態です。 私の場合はこのファンを冷却ブロワーとして使う予定でした。 しかし、M106 命令で制御できない場合、常に回転させておくか停止させておくかの二択になります。 そのため、特定の層を印刷中に停止し、それ以外は動作させるなどの制御ができないのは非常に不便です。

解決方法

Marlin のソースコードを変更して PC7 を FAN0 に設定すると M106 命令で動作制御できるようになります。

// Marlin/src/pins/stm32g0/pins_BTT_SKR_MINI_E3_V3_0.h ファイルを下記のように編集します。

// 変更場所は Heaters / Fnas 項目です。
// 大体、140 行付近です。


// 変更前
#define FAN_PIN  PC6
#define FAN1_PIN PC7
#define FAN2_PIN PB15


// 変更後
// #define FAN_PIN PC6  // この行をコメントアウト
#define FAN_PIN  PC7    // PC7 を FAN_PIN に割り当てる
#define FAN1_PIN PB15   // PB15 はFAN1 に割り当てる、ここは番号と気分の問題

このようにコードを変更すると PC7 に割り当てたファンを M106 命令で制御できるようになります。 PC6 に接続されるファンについてはボードの電源 ON で常に動作しています。 この箇所を変更しても全く動作は変わらないため、問題ないです。