2
0

More than 1 year has passed since last update.

Ender5 Pro with Bigtreetech SKR2

Last updated at Posted at 2022-02-01

3Dプリンタとして比較的メジャーな、Creality社製EnderシリーズとBigtreetech製SKRボードですが、Ender-5 ProとSKR2はいずれも情報が不足気味であったため、色々と苦労しました。購入後四苦八苦すること約1ヶ月。ようやく形になってきたので記事にまとめます。

経緯

3Dプリンタライフを始めて約1年。オートレベリングやランアウトセンサ、デュアルエクストルーダ化など色々欲望・願望が高まって来ており能力不足を実感。

(私が購入した3Dプリンタのボードはv1.15でIOは完全に埋まっており、ほぼ拡張はできないと判断。)

サードパーティ製のマザーボードへ換装。制御系を全てリニューアルすることとした。

必要なもの

ハードウェア

  • 3Dプリンタ
  • マザーボード
  • TMC2208モータドライバボード

    • SKR2にはモータドライバが付属していなかったため購入
    • 静音化やエンドストップスイッチ省略も可能とのこと。
  • ディスプレイ

    • Bigtreetech社製 TFT
      • Ender5純正ディスプレイが使えなかったため購入
      • タッチスクリーン&アイコンの操作性は意外とGood
  • 筐体

    • Enderシリーズの筐体にポン付け出来るSKR miniシリーズを使わなかったため、適当なアルミ筐体を作成。どうせならと、OctoprintをインストールしたRaspberryPi 4(8GB)とその電源を格納。

ソフトウェア

  • Marline github
    • 実際は初心者故、ボードごとのカスタマイズが完了しているソフトMarline for SKR2を使用。最新ではない可能性あり。
  • VScode
  • Auto Build Marlin
    • VSCode用プラグイン
    • platform IOでビルドする例が多いがこちらの方が環境構築が楽。

最低限の設定

ファームウェアを入手(Bigtreetech製のレポジトリ。ボードのハードウェアマニュアルと共にSRK2用のカスタマイズ済み)。

git clone  https://github.com/bigtreetech/SKR-2

座標系の設定

まずはX・Y・Z軸エンドストップ位置を設定するが、座標軸の定義を決めておく必要がある。X・Y軸はLCDディスプレイのアイコンに合わせ左手前を0.0に設定。Z軸はディスプレイとは逆になるが、プラットフォーム最上昇位置を0とする座標と定義。そのうえで、エンドストップ取り付け位置はXYZそれぞれ、右・奥・上であることを確認した上で設定。

XYZ.png

ホームポジションとエンドスイッチの場所を指定(Configration.h)。

#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR -1
#define USE_XMAX_PLUG
#define USE_YMAX_PLUG
#define USE_ZMIN_PLUG

印刷範囲を設定(configration.h)。

#define X_BED_SIZE 220
#define Y_BED_SIZE 220
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 300

モータ設定

購入したモータドライバ(今回はTMC2208)に合わせて編集(Configration.h)。

#define X_DRIVER_TYPE   TMC2208
#define Y_DRIVER_TYPE   TMC2208
#define Z_DRIVER_TYPE   TMC2208
#define E0_DRIVER_TYPE TMC2208
#define E1_DRIVER_TYPE TMC2208

ボードの方もピンヘッダをUARTモードに設定UART.png

モータの回転方向を設定(Configration.h)。

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR false

軸ごとの移動量を設定(configration.h)。
(後の試運転で定規を使って移動量を確認します。)

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 93 } 

LCDとの接続設定

LCDとの接続を設定(Configration.h)。

(不要かも)

#define SERIAL_PORT_3 3
#define CUSTOM_MACHINE_NAME "Ender-5 Pro Cstm"

おそらくエクストルーダの電流が過剰なため修正(Configration_adv.h)。

#if HAS_TRINAMIC_CONFIG
// 中略
  #if AXIS_IS_TMC(E0)
    // 中略
    #define E0_CURRENT      600

試運転

電源、モータ、LCD等を接続して動作を確認する。

軸ごとの回転方向を設定。
(こちらも試運転でLCD指示と実際の移動方向が一致するかを確認)

ヒータのPID制御

PID制御の設定有効化したりオートチューニングによりゲインを最適化するとノズル・ベッドの昇温が早くなる。

ノズル温度制御

ノズルは元々PID制御となっているためオートチューニングメニューを有効化する(configration.h)。

#define PID_EDIT_MENU
#define PID_AUTOTUNE_MENU   

ベッド温度制御

ベッドはON-OFF制御となっているためPID制御を有効化する(Configration.h)。

#define PIDTEMPBED

試運転

LCDディスプレイの温度設定にPIDチューニングが表示されるはず。オートチューニングを実施するとしばらく画面が固まるが数分後に完了する。同定したゲインはEEPROMへ保存できるので保存。

Next Modify

次回は、BLTouchを用いたオートレベリング及びZ軸エンドストップについてまとめます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0