マーリン2の設定 その2
LCDコントローラー、TMCドライバーの設定
今回は、LCDコントローラーとTMCドライバーの設定をしてみる。
まずは、LCDコントローラーのエンコーダーの回転方向を合わせてみる。
LCDコントローラーの種類
A10Mには、LCDコントローラーとしてLCD2004が使われている。このLCDは接続ケーブルがFPC40Pが使われており、今回のマザーボードSKR1.4Turboにはそのままではつながらない。FPCと10Pの変換コネクタを作れば使用可能だが、今回はSKR1.4Turboと一緒に売られているTFT35またはTFT35E3をつなげることにする。
前回では、もうすでにTFT35E3を使った画面があったと思うが基本的にReprap Discount Full Graphic Smart Controllerに設定すれば良い。
VSCodeを立ち上げると前回読み込んだConfiguration.hが開いていると思う。
Configuration.hの後半に
#define REPRAP_DISCOUNT_SMART_CONTROLLER
となっているのがLCD2004の設定なのでここをコメントアウトする。
//#define REPRAP_DISCOUNT_SMART_CONTROLLER
次にReprap Discount Full Graphic Smart Controllerを探す。
ここでVSCodeのConfiguration.hの画面上にカーソルを持っていき、[CTRL]+[F]を押しREPRAPと入れると
簡単に探すことができる。下矢印↓クリックすると次に
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLERを探すことが出来るので、ここを有効にしておく。
このセクションがLCDコントローラーの設定セクションなので他のLCDを使う時はこの中から探すことになる。例えば、FYSETC 12864MINIの場合、FTSETCで検索すると
//
// FYSETC variant of the MINI12864 graphic controller with SD support
// https://wiki.fysetc.com/Mini12864_Panel/
//
//#define FYSETC_MINI_12864_X_X // Type C/D/E/F.
//#define FYSETC_MINI_12864_1_2 // Type C/D/E/F.
//#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight
//#define FYSETC_MINI_12864_2_1 // Type A/B. Neopixel RGB Backlight
//#define FYSETC_GENERIC_12864_1_1 // Larger display with basic ON/OFF backlight.
と出てくる。ここを有効にすれば、FYSETC12864miniが使用できる。
セクションENCODER SETTINGS
エンコーダーの回転方向が、メニュー画面が逆回転で動いたほうが使いやすそうなのでエンコーダーの回転方向を変えてみる。同様に検索窓にENCODERと入れ、↑で探すと、ENCODER SETTINGSセクションを見つけることが出来る。
ここで変更する場所は
#define ENCODER_PULSES_PER_STEP 2
//#define ENCODER_STEPS_PER_MENU_ITEM 1
これは回転量の調整
//#define REVERSE_ENCODER_DIRECTION
#define REVERSE_MENU_DIRECTION
//#define REVERSE_SELECT_DIRECTION
メニューだけ回転方向を変えればいいので
#define REVERSE_MENU_DIRECTIONを有効にする
ここのすぐ下に
//#define INDIVIDUAL_AXIS_HOMING_MENU
とあるがここを有効にするとメニュー画面にHome X, Home Y, Home Zとゆう項目をふやすことが出来る。
TMCドライバーの設定
まずは、モータードライバーを指定しなければならない。
検索窓に”TMC2209”と入れると
//#define X_DRIVER_TYPE A4988
//#define Y_DRIVER_TYPE A4988
//#define Z_DRIVER_TYPE A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
//#define E0_DRIVER_TYPE A4988
//#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
という項目が見つかる。ここを
#define X_DRIVER_TYPE TMC2209
#define Y_DRIVER_TYPE TMC2209
#define Z_DRIVER_TYPE TMC2209
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2209
#define E1_DRIVER_TYPE TMC2209
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
と変更する。ここではすべてのドライバーをTMC2209UARTにしたせっていである。
見て分かると思うが、Z軸が4つまで指定できる。ベッドが上下するタイプのプリンタだとZ軸を4軸まで増やして制御できる。
Configuration_adv.hの設定
TMCドライバーの設定はConfiguration_adv.hを直さなければならない。
Configuration_adv.hを開き、TMC2209で検索し
#define STEALTHCHOP_XY
#define STEALTHCHOP_Z
#define STEALTHCHOP_E
を探す。これはそれそれの軸のステルスチョップを有効にする。
(最初から有効になっているはずだが…)その下の
#define CHOPPER_TIMING CHOPPER_DEFAULT_12V
の12Vを実際のモーター電圧(VMOT)に合わせなければならない。24Vなので#define CHOPPER_TIMING CHOPPER_DEFAULT_24V と設定。
#define HYBRID_THRESHOLDを有効に。その下の設定値は後でLCDから変更できるのでデフォルトのままで。
#define TMC_DEBUG を有効にこれでM122が使え、TMCドライバーの状態を知ることができる。これでTMCドライバーの設定は完了した。
ここでは変更していないが
#if AXIS_IS_TMC(X)
#define X_CURRENT 800 // (mA) RMS current.
#define X_CURRENT_HOME X_CURRENT
#define X_MICROSTEPS 16 // 0..256
#define X_RSENSE 0.11
#define X_CHAIN_POS -1
#endif
という項目でマイクロステップを16から256まで変更できる。32で使ってみたがあまり効果が無いようだ。
A10Mの定義ファイルで設定されていたので有効になっているLCDの項目が
#define LCD_INFO_MENU プリンタ情報の表示である。デフォルトでは表示されないので有効になっていない場合、有効にすると良い。
おまけ!
//#define STATUS_COMBINE_HEATERS
//#define STATUS_HOTEND_NUMBERLESS
#define STATUS_HOTEND_INVERTED
#define STATUS_HOTEND_ANIM
#define STATUS_BED_ANIM
//#define STATUS_CUTTER_ANIM
#define STATUS_ALT_BED_BITMAP
#define STATUS_ALT_FAN_BITMAP
#define STATUS_FAN_FRAMES 3
#define STATUS_HEAT_PERCENT
#define BOOT_MARLIN_LOGO_SMALL
//#define BOOT_MARLIN_LOGO_ANIMATED
上記の設定はホットエンドやベッド、スタートロゴの設定である。好みの設定にすると良い。また、その下に
// Frivolous Game Options
//#define MARLIN_BRICKOUT
//#define MARLIN_INVADERS
//#define MARLIN_SNAKE
//#define GAMES_EASTER_EGG
なんと!ゲームが隠されている。
ここまで設定を終えたらコンパイルしてファームウェアを書き換えてみよう。一度コンパイルしているので問題なくコンパイル出来ると思う。
ここで、書き忘れていることがある。SKR1.4TurboやSKR1.3は実はPCとつなげるとマザーボードのマイクロSDを外部記録装置として認識する。なのでここに直接USBケーブルから送ってやるといちいちカードを抜き差ししなくともファームウェアを書き換えることが出来る。これは便利である。
ファームウェアを書き換えると
Configuration>Advanced Settings>TMC Driversという項目が増えていれば成功である。ここで電流の設定やステッピングモードの切り替え等が出来る。
次回はベッドレベリングについて設定していこう。