【3Dプリンター】Ender-3のマザーボードとモータードライバを取り替えて静音化した(TMC2208)

7,710 total views, 66 views today

Ender-3のマザーボード(以下、ボード)を交換して、TMC2208というモーターの動作音が静音化されるモータードライバを取り付けた。

モータードライバの交換前と後で動作音の比較をすると↓こんな感じで、モーターの動作音が劇的に小さくなる(その分、ファンの音がうるさく感じる)。

スポンサーリンク

ボードの交換

ボードは、「MKS GEN L V1.0」というものをAliExpressで2000円強で買った。

このようなボードの場合、モータードライバを一緒に用意しておく必要がある。

AliExpressのほかAmazonからも入手可能である。

モータードライバはTMC2208を選んだ。これもAliExpressで買って、5個1セット2500円くらいだった。

AliExpressのほかAmazonからも入手可能である。

なお、ボードを「MKS GEN L」に交換すると、SDカードスロットがないため、SDカードが使えなくなる

「MKS GEN L」でG-codeを読み込ませるためには、3通りの方法が考えられる。

  1. PCとUSB接続する
  2. Wi-Fi化する
  3. SDカードリーダーを追加する

1.では「Printrun」を使ったり、「Cura」などのスライサーソフトを使ってUSB経由でG-codeを読み込ませる方法がある。

2.では、「OctoPrint」や「Repetier-Host」を導入してWi-Fi経由でG-codeを読み込ませる方法がある。

3.では、MKSのボード用「SDカードリーダー」を追加し、SDカード経由で読み込ませる方法がある。

配線

  1. Xモーター
  2. Yモーター
  3. Zモーター
  4. Eモーター
  5. Xモータードライバ
  6. Yモータードライバ
  7. Zモータードライバ
  8. Eモータードライバ
  9. ノズルファン
  10. ホットエンドファン
  11. ホットエンド
  12. ヒートベッド
  13. 電源
  14. Xリミットスイッチ
  15. Yリミットスイッチ
  16. Zリミットスイッチ(BLTouch(白、黒))
  17. ディスプレイ
  18. ディスプレイ(リボンケーブル2本運用時のみ使用)
  19. BLTouch(茶、赤、オレンジ
  20. ヒートベッドサーミスタ
  21. ホットエンドサーミスタ

配線は、基本的にはボードに印字されている通りに接続すればよいが、ホットエンド用のファンのみ変則的にホットエンド用のコネクタに接続する。

また、ディスプレイに関しては2通りの接続方法があるようだが、どちらも一長一短である。

  • パターン1:追加のリボンケーブルが必要
  • パターン2: リボンケーブルの追加は必要ないが、ボード側のコネクタのト取り付け方向を逆にしなければならない。

ディスプレイの配線:パターン1

パターン1を選んだ場合、追加のリボンケーブルが必要となる。

  • 配線
    • EXP1(ディスプレイ側) → EXP1(ボード側)
    • EXP2 (ディスプレイ側)→ EXP2(ボード側)

ディスプレイの配線:パターン2

パターン2を選んだ場合、ボード側のソケットを180°反転させる必要がある。

  • 配線
    • EXP3(ディスプレイ側) → EXP1(ボード側)※ソケットの向きは180°反転させる
ソケットを180°反転させる方法

ボードとソケットの間に、デザインナイフの刃などを差し込み、少しずつボードとコネクタの隙間を広げていれば、ソケットを引き抜くことができるので、そ180°反転させたのち、再び差し込めばよい。

ボードとソケットの間にデザインナイフの先を差し込んだ
ソケットをボードから引き抜いた
ソケットを180℃反転させて差し込んだ

私は、ちなみにリボンケーブルを1本追加するパターン1を選んだ。

そのほか、リミットスイッチのコネクタはピンの数が異なっているので、コネクタの返しを切り取るような加工をするか、ピンの数があったコネクタに付け替える必要がある

100均で売ってる5本一組の精密ドライバーの一番小さいやつを使って、ピンの返しを押しつぶしてコネクタから引き抜いた後、押しつぶした返しを元に戻して、別のコネクタに付け替えればよい。

なお、リミットスイッチのピンは、はじめに示したボードの画像の方向で見たときに、3つあるピンのうち下2つのピンを使用する。

このような場合には、↓こういうコネクタのセットを1つ持っておくと何かと都合が良い。

TMC2208のマイクロステップの設定

TMC2208では、「MS1」と「MS2」というピンのHIGNとLOWの組み合わせにより、マイクロステップのステップ数を設定できるようになっている。

マイクロステップの設定は下表のとおりである。

マイクロステップMS1MS2
1/2 STEPHIGHLOW
1/4 STEP LOWHIGH
1/8 STEP LOWLOW
1/16 STEP HIGHHIGH

ここでは、1/16 STEPを選択しているので、ジャンパーピンは何もいじらず、TMC2208をそのままボードに差し込むだけとなっている。

ほかのSTEP数を選択する場合、STEP数に応じてボード側のジャンパーピンの位置を変える必要がある。

TMC2208をボードに取り付けるときは、GND側が黒いソケット、DIR側が緑色(黒以外の色)のソケットになる向きで取り付ける。

TMC2208の電圧調整

TMC2208の電圧調整に関しては、↓この動画を参考にした。

結果だけ先に書くと、各モーター用のTMC2208の電圧調整は下表のとおりとなった。

モーターVREF(V)
X0.725
Y0.725
Z0.725
E0.900

ただしこれは、下の画像のようにTMC2208に取り付けられている抵抗の値が110mΩの場合の話である。

TMC2208に取り付けられている抵抗の値がこれとは異なっている場合、当然、TMC2208にかける電圧の大きさは変わってくる

そのような場合、電圧(VREF)の値 はどうなるかというと、下の式を用いる。

出典:How to replace Allegro A4988 with TMC2208 – Trinamic

この式にTMC2208に取り付けられている抵抗の値と下表の電流値(ImaxRMSを代入することで、電圧(VREF)の値を求めることができる。

モーターImaxRMS(A)
X0.51265
Y0.51265
Z0.51265
E0.63640

電圧の調整は、TMC2208についているポテンショメーターにより行う。

Ender-3にもともとついてるA4988というモータードライバの電圧等は以下の通りとなっている。

出典: Creality Ender 3 Stock Factory Vref -GitHub

なお、A4988のITripMAXを求める式は下のとおりとなっている。

出典: A4988 datasheet – Pololu

ファームウェアの書き換え

ファームウェアの書き換えには、「Arduino IDE」を使用する。

ライブラリの追加

モータードライバにTMC2208を使用する場合、「Arduino IDE」でライブラリを追加しておく必要がある。

具体的には、Arduino IDEで「ツール」→「ライブラリをインクルード」→「ライブラリを管理」の順に選択し、

スポンサーリンク

ライブラリマネージャ」が立ち上がったら、「TMC2208」で検索し、見つかったライブラリをインストールする。

ファームウェアの編集

「Configuration.h」と「Configuration_adv.h」の2つのファイルを編集する。

まずは、「Configuration.h」の変更箇所を示す。

ちなみに以下全て、

  • 変更前:赤
  • 変更後:緑

となっている。

ボード名の設定

Zリミットスイッチの設定

オートレベリングを使用しない場合、この変更を行う必要はない。

モータードライバ名の設定

オートレベリングの設定

オートレベリングを使用しない場合、この変更は必要ない。

なお、ここではオートレベリング用のセンサーにBLTouch(コピー品含む)を使用し、オートレベリングの方式として、Unified Bed Leveling(UBL)を選択した場合の設定となっている。

これは「G26 P10」実行時の設定で、ノズルサイズやレイヤーの高さのほか、使用するフィラメントに合わせてノズルとベッドの温度を設定する必要がある。

ガラス板やビルドシートなどをベッド上にクリップ留めしている場合、ここの値を大きめに設定しておかないと、クリップ留めしている部分までレベリングの範囲に含まれてしまう。

ベッド上をすべてレベリング範囲として設定したい場合には、ここの値を変更する必要はない。

Zセーフホーミング

ディスプレイの設定

この設定はリボンケーブル2本運用時のもので、1本で運用する場合には必要ない。

サーボの設定

次に、「Configuration_adv.h」の変更箇所を示す。

ホットエンド用ファンの設定

なお、「#define EXTRUDER_AUTO_FAN_TEMPERATURE」により、ファンが回転し始める温度を設定することができる(ここではデフォルトの50℃のままにしている)。

ベイビーステップの設定

ファームウェアの書き込み

ツール」→「ボード」→「ボードマネージャー」の順に選択し、以下のとおりに設定する。

  • ボード:Sanguino
  • プロセッサ:ATmega 1284 or ATmega 1284P (16MHz)
  • シリアルポート:ボードをつないだポート
  • 書込装置:AVRISP mkII

設定が終わったら、画面左上にある➡マークをクリックして、ファームウェアを書き込む。

しばらく待つと、書き込みが完了する。

スポンサーリンク

まとめ

  • Ender-3のボードを交換した。
  • モータードライバをTMC2208にした。
  • モーターの動作音が劇的に小さくなった。