# HyperCube 3Dプリンターを作ってみる その12 ###### tags: `3D Printer` `HyperCube3D` ## CoreXY、TMC2209用にファーム書き換え CoreXY対応、TMC2209のURATモード用に、ファームウェアを書き換えます。 ### Robin Nano v2用ファームウェアのソースコードを取得 [makerbase\-mks/Mks\-Robin\-Nano\-Marlin2\.0\-Firmware: The firmware of Mks Robin Nano, based on Marlin\-2\.0\.x, adding the color GUI\.](https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware) 上記の場所から、ソースコードを取得してきます。 ``` $ git clone https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware.git ``` ### TMC2209のUARTを使うようにソースコードを修正 [Drivers\_MKS\_TMC2209\_2225\_2208 · makerbase\-mks/MKS\-Robin\-Nano\-V2\.X Wiki](https://github.com/makerbase-mks/MKS-Robin-Nano-V2.X/wiki/Drivers_MKS_TMC2209_2225_2208) ここに、前回設定したジャンパーのことや、ソースコードの修正箇所も書かれています。 自分の場合は、以下のような変更をしました。 * Marlin/Configuration.h ``` diff --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -104,13 +104,13 @@ * * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ -#define SERIAL_PORT 3 +#define SERIAL_PORT -1 /** * Select a secondary serial port on the board to use for communication with the host. * :[-1, 0, 1, 2, 3, 4, 5, 6, 7] */ -//#define SERIAL_PORT_2 1 +#define SERIAL_PORT_2 3 /** * This setting determines the communication speed of the printer. @@ -613,7 +613,7 @@ // Uncomment one of these options to enable CoreXY, CoreXZ, or CoreYZ kinematics // either in the usual order or reversed -//#define COREXY +#define COREXY //#define COREXZ //#define COREYZ //#define COREYX @@ -687,15 +687,15 @@ * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ -//#define X_DRIVER_TYPE A4988 -//#define Y_DRIVER_TYPE A4988 -//#define Z_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 A4988 +#define E0_DRIVER_TYPE TMC2209 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 ``` * Marlin/Configuration_adv.h ``` diff --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2465,7 +2465,7 @@ * STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD. * M913 X/Y/Z/E to live tune the setting */ - //#define HYBRID_THRESHOLD + #define HYBRID_THRESHOLD #define X_HYBRID_THRESHOLD 100 // [mm/s] #define X2_HYBRID_THRESHOLD 100 ``` ### ビルド VSCodeとPlatformIO IDE拡張を使ってビルドしました。 自分は既に環境があったので、すんなりできましたが、以下の記事が参考になると思います。 [【Ender\-3改造】Ender\-3に32bitのメインボードを導入した(Marlin 2\.0\.x) \| あること・ないこと日記](https://terutakke.com/2019/08/marlin2-settings-of-ender-3/) ### ファームウェア書き換え ビルドに成功すると、`.pio\build\mks_robin_nano35`フォルダに、 * `assets`フォルダ * `Robin_nano35.bin` が出来ています。(他にもいろいろなファイルやフォルダが出来ていますが、使うのは上記2つです) assetsフォルダが作られないことがたまにありますが、何度かビルドしてたら、できてました。 上記2つを、SDカードのルートにコピーします。 Robin Nanoに、SDカードをセットして、電源を入れると、ファームウェアの書き換えが行われます。 書き換え終了後、アイコンがおかしくなってたりした場合は、assetsフォルダがちゃんとあるか確認しましょう。 ### 確認 TMC2209に対応したファームウェアになったかどうかは、 Machine Setting > Motor settingで、 `TMC Current setting`などの、メニューがあれば成功です。 ![](https://lh3.googleusercontent.com/pw/ACtC-3eRoU3q4yytH9t46rZlOToVGPSzLKPLSZDU0KZbIxeJK-LXLLa5UZSzuDjG4PKaCdqD0bA4YGYn6ppEFJQFy5tQPGmB_J_jy7b4E48-EHg99sk8ozUdNjxWchnlUMFMvZ4WU4SZe_rj9Gg1NGoRjgfiZw=w1274-h956-no?authuser=1) 次は、XY軸のステッピングモーターをつないで、XY軸を動かします。 ### 全制作工程 [HyperCube 3Dプリンターを作ってみた-目次](https://hackmd.io/@seya128/HyperCube-Book)