SilentStepStickは独Trinamicのステッピング・ドライバー用IC TMC2100を16ピンDIPサイズの小型基板に搭載したモジュールで、未だ発売されたばかり。CNCやRepRapに広く使われている米Pololuのステッピング・ドライバー・モジュールとほぼコンパチブルなピン配置になっているため、挿し替えが楽にできるようなのでHuxleyの全軸分を替えて試してみることにしました。

TMC2100は1/2~1/16のマイクロ・ステッピング設定時に最大で256ステップの補間動作をするというもので、モーターを滑らかに回転させられるため、上記の動画のように動作音の発生を抑えることができるそうです。 データシートを斜め読みした結果、このstealthChopモードにするためには1/16のマイクロ・ステッピングではCFG1、CFG2ともにオープンにすれば良いと判りました。

CFG3はモジュール基板上のジャンパーでオープン(半固定抵抗でモーター電流の設定をする仕様)になっているのですが、CFG1とCFG2のジャンパーには芥子粒大の0Ωチップが実装されています。

一方、RAMPSSanguinololu系(Momoinololuを含む)の制御基板ではCFG1に相当するMS1は抵抗でプルダウンされているため、何らかの対策が必要になります。私の制御基板ではスルーホールの抵抗を使っているので、4軸分すべて取り去ってしまいました。さらに制御基板上のMS1~MS2のショート・プラグを抜いておきます。これで1/16マイクロ・ステッピングのstealthChopモードになります。

このままではモーターが逆転するので、コネクターを180度向きを変えて挿し替えるか、ファームウェアで反転の設定に書き換えます。

20150007_1

後はモーターに流す電流を設定するため、半固定抵抗を細いマイナス・ドライバーで回転して電圧の調整をします。モジュール基板上の正三角形に配置された3つの未はんだランドのうち、右下のVref端子(右図・水色)とGND間の直流電圧をテスターを使って測定します。

このモジュールのGNDピンはVref端子のすぐ右隣りを除いて、いずれも+5vと+12Vのピンに隣接しているため、制御基板上のGNDを調べてそこにプローブを当てた方が事故を防げるでしょう。モジュール4つとも1.35Vに初期設定されていましたが、私はX軸とE軸を0.8V、デュアル・モーターのY軸とZ軸を1Vにそれぞれ設定してテスト稼動しました。

Irms = (Vref * 1.77A) / 2.5V

SilentStepStickのモーター電流は上記の式から導かれます。どうやら初期設定では約1Aになっているようです。0.8V~1Vの設定では0.6A~0.7Aと少し少なめですが、今のところ脱調することなしに動いています。特に顕著に感じるのはデュアル・モーター化して騒々しくなっていたY軸まわりがすっかり静かになったことです。無音で回転するステッピング・モーターを実際に眼の前にすると、かなりヤラレることは確かです。


追記: その後、しばしば微細な脱調を繰り返していることが判明したため、Z軸とE軸のモジュールを元のPololu A4988に戻し、X軸のモジュールのVrefを1.1V(約0.8A)、Y軸を1.65V(約1.2A、デュアル・モーター)という設定にして調整中。ファームウェアはMarlin Ver.1.0.2で、デフォルトの設定ファイル(Configuration.h)中で、下記のようにXYJERKの数値に手を入れて試してみていますが、脱調は収まっているようです。

#define DEFAULT_XYJERK 20.0*0.6 // (mm/sec)

参考: 3Dプリンター作る!:: 3Dプリンターの動きをスムーズに!Marlinの加速度AccelerationとジャークJerkの変更・調整
http://3dp0.com/acceleration-and-jerk/