X

【3Dプリンター改造】Ender-3・Ender-3 Pro用32bitボード「SKR MINI E3」を導入した。

 100,332 total views,  7 views today

AliExpressBIGTREETECHというストアでは、メインボードやモータードライバを中心に3Dプリンター用のパーツが扱われている。

今回、そのストアからEnder-3用の32bitボードSKR MINI E3」を買ってEnder-3 Proで使ってみることにした。

BIGTREETECH SKR MINI E3

届いた箱は黒字に赤文字でクールな印象である。

外箱

箱を開けるとボード一式に加えて、なぜだかまつ毛の長いアヒルちゃんが漏れなく1匹入っている

アヒルちゃんの存在感
ボード一式+アヒルちゃん

現在、「SKR MINI E3」のバージョンは、デュアルZ軸対応などの改良が施されたバージョン2.0となっている。

ボードには容量128MBのmicroSDカードが付属している。

なお、「SKR MINI E3」には、購入時点で最新のMarlin 2.0ファームウェアEnder-3用にカスタムされた状態で書き込み済みとなっている。

そのため、無改造のEnder-3やEnder-3 Proに取り付けて使う限りにおいては、配線を付け替えるだけでそのまま使えて導入の敷居が低い「SKR MINI E3」非常に人気の高いボードとなっている。

Ender-3純正ボードとの比較

「SKR MINI E3」が人気となっている理由の一つは導入が簡単ということであるが、それに加えて拡張性の高さという点もこのボードが人気となっている理由の一つであろう。

SKR MINI E3」と純正ボードとを比べてみると、対応する機能に大きな違いがあり、Ender-3を持っているならメインボードを「SKR MINI E3」に変えない理由がないと言えるほどのものとなっている。

SKR MINI E3純正ボード
マイクロプロセッサ32bit8bit
モータードライバ静音静音/非静音
(バージョンによる)
タッチパネル対応
(オプション)
非対応
フィラメント切れ検出対応
(オプション)
非対応
BLTouch接続用ピン
センサーレスホーミング対応非対応
Marlin
ファームウェア
Marlin2.0.xMarlin1.1.x

「SKR MINI E3」ピンの配置は純正ボードとほぼ同じであり、それに加えていくつかの拡張用のピンが配置されている形となっている。

上:SKR MINI E3、下:Ender-3純正ボード

したがって、メインボードを「SKR MINI E3」に置き換える場合には、純正ボードから外した配線をそのまま「SKR MINI E3」の対応する位置に接続するだけで良い。

ちなみに、「SKR MINI E3」の拡張用ピンにより追加できる機能の例としては、以下のようなものがある。

※BLTouchなどを追加する場合には、機能を有効化するためにファームウェアの書き換えが必要。

なお、純正ボードに接続されている線はホットボンドのような接着剤で固着されているので、「SKR MINI E3」に線を付け替える場合には、接着剤を削り取って純正ボードから線を外す必要がある。

「SKR MINI E3」の購入については、AliExpressの場合だと中国からの発送となり、届くまでに1か月程度かかってしまう

なので、すぐに欲しいという場合にはAmazonのマーケットプレイスで購入した方がよい。Amazonのマーケットプレイスだと日本国内からの発送なので、すぐに届くからである(ただし、多少割高になる)。

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

はじめに紹介したように、「SKR MINI E3」は購入時点でEnder-3向けにカスタムされたファームウェアが書き込み済みとなっている。

しかしながら、いったんオートレベリングセンサーや、その他の機能を追加しようとなると、それらの機能を有効にするために、ファームウェアを書き換える必要が出てくる。

BLTouchの導入

ここでは、BLTouch系のオートレベリングセンサーを追加する場合の配線の仕方とファームウェアの書き換え箇所について紹介する。

BLTouchの接続

BLTouch系のセンサーの配線は以下の画像の通りに行えばよい。

BIGTREETECHのBLTouch有効化済みファームウェアを導入する場合

ファームウェアファイルのダウンロード

BIG TREE TECHのリポジトリにてBLTouchが有効化されたファームウェアのダウンロードが可能となっている。

リンク先へ飛ぶと、いくつかのファイルが並んでいるが、そのうちBLTouchが有効化されたファームウェアは以下の2つとなっている。

  • firmware-bltouch-for-z-homing.bin
  • firmware-bltouch.bin

ここでは、「firmware-bltouch-for-z-homing.bin」の方を選んでおけばよい

なお、リンク先のファームウェアをダウンロードして使用する場合、ファームウェアのファイル名を「firmware.bin」にリネームする必要がある。

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

firmware.bin」とリネームしたファームウェアをメインボードに書き込む手順は以下のとおりである。

  1. 中身が空のmicroSDカードを用意する。
  2. 用意したmicroSDカードに「firmware.bin」とリネーム済みのファームウェアを書き込む。
  3. 手順2.のmicroSDカードをメインボードのmicroSDカードスロットに差し込む。
  4. Ender-3の電源を入れる。

Ender-3の電源を入れれば、自動的にメインボードへのファームウェアの書き込みが行われるので、あとは書き込みが終わるのを待てば良い。

ファームウェアのBLTouch設定を自分で有効化する場合

ファームウェアの書き換え箇所はそれほど多くなく、書き換え自体はすぐに終わるが、事前準備としてコードエディターである「Visual Studio Code」に「PlatformIO IDE」という拡張機能を導入しておくことと、最新のMarlin 2.0のファームウェアをダウンロードしておく必要がある

「PlatformIO IDE」の導入方法については、以前の記事に書いているので、ここでは説明を割愛させてもらう。

PlatformIO IDEの導入

ボードの設定

Configuration.h」というファイルの中から

#define MOTHERBOARD BOARD_MELZI_CREALITYRBOARD

と書かれている行を探し出し、以下のように書き換える。

#define MOTHERBOARD BOARD_BTT_SKR_MINI_E3_V1_2

なお、ここで示しているボード名は「SKR MINI E3 V1.2」の場合の例であり、ボードのバージョンが異なる場合には、boards.hというファイルの中から、使用するボードに対応したボード名を調べる必要がある

boards.h
BLTouchをZ軸のホーミングに使用する設定(オプション)

※この設定を有効化することで、Z軸のリミットスイッチ(エンドストップ用)が必要なくなる

Configuration.h」というファイルの中から

//#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

という行を探し出し、先頭の「//」を削除して設定を有効化する。

BLTouchの有効化(必須)

※BLTouchを有効化するための設定

//#define BLTOUCH

という行を探し出し、先頭の「//」を削除して設定を有効化する。

プローブのオフセットの設定(必須)

※ノズルの先端位置とBLTouchの先端位置にはズレがあるので、そのズレがどれだけあるのかを知らせるための設定

//#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }

という行を探し出し、先頭の「//」を削除して使用するBLTouchのマウントパーツに応じて適切な値を入力する。

なお、{ }内の値は、X、Y、Zの順となっており、ここではマウントパーツとして「(Yet Another) Ender 3 BLTouch Mount」を使用する場合の設定を例示している。

複数回プロービングの設定(オプション)

※オートレベリング時、1つの測定位置に対して測定を複数回実行し、測定精度を高めるための設定

複数回測定を有効にしたい場合には、

//#define MULTIPLE_PROBING 2

という行を探し出し、先頭の「//」を削除して設定を有効化する。

なお、次の行の

//defaine EXTRA_PROBING 1

先頭の「//」を削除して数値を適宜変更することにより、3回以上の複数回測定を行うことも可能である(数値が1の場合は3回測定、2の場合は4回測定という具合)。

オートレベリング方式の選択(必須)

※どのオートレベリング方式を用いるかの設定

いくつかの方式の中から選択するようになっているが、どれを選べばよいかよく分からないという場合には、とりあえず

//defaine AUTO_BED_LEVELING_BILINEAR

という行の先頭の「//」を削除おけばよい。

レベリング時の測定箇所の数の設定(オプション)

※オートレベリングの方式でBILINEAR(バイリニア)を選択したときに必要となる設定

//defaine GRID_MAX_POINTS_X 3

という行を探し出し、先頭の「//」を削除して設定を有効化し、適宜数値を変更すればよい。

ファームウェアファイルのコンパイル

ファームウェアファイルの編集が終わったら、ファイルをコンパイルする必要がある。

platformio.iniの設定

「SKR MINI E3」用のファームウェアファイルをコンパイルするためには、「platformio.ini」の中にあるdefault_envsの行を以下のように書き換える必要がある。

default_envs = STM32F103RC_btt_512K

Visual Studio Codeでコンパイルを行うには、画面左下に並んでるアイコンの中から「」のマークを探し、それをクリックする。

しばらく待てばコンパイルが完了する。

コンパイルが完了すると、「Marlin」フォルダの階層を「Marlin-2.0.x ⇒ .pio ⇒ build ⇒ STM32F103RC_btt_512K」と辿った先に「firmware.bin」という名前のファームウェアが作成されている。

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

ファームウェア(firmware.bin)をメインボードに書き込む手順は以下のとおりである。

  1. 中身が空のmicroSDカードを用意する。
  2. 用意したmicroSDカードにファームウェア(firmware.bin)を書き込む。
  3. 手順2.のmicroSDカードをメインボードのmicroSDカードスロットに差し込む。
  4. Ender-3の電源を入れる。

Ender-3の電源を入れれば、自動的にメインボードへのファームウェアの書き込みが行われるので、あとは書き込みが終わるのを待てば良い。

テストプリント

以下の設定でテストプリントを行った。

  • スライサーの設定Cura 4.5.0)
    • レイヤー高さ:0.2mmおよび0.1mm
    • 壁の厚さ:0.8mm
    • ウォールライン数:2
    • 上面/底面の厚さ:0.6mm
    • Zシーム合わせ:ランダム
    • 表面交差量:10.0%
    • インフィル密度:20%
    • インフィルライン距離:4.0mm
    • インフィルパターン:グリッド
    • インフィル交差量:25%
    • 印刷温度:212℃
    • ビルドプレート温度:45℃
    • フロー:100%
    • 印刷速度:60.0mm/s
    • 移動速度:150.0mm/s
    • 初期レイヤー速度:20.0mm/s
    • 引き戻し距離:5mm
    • 引き戻し速度:45mm/s
    • ファン速度:100%
    • ビルドプレート接着タイプ:スカート
    • スカートライン数:2
    • スカート距離:10.0mm
    • 最大解像度:0.5mm

主観では、純正ボードと比べて「SKR MINI E3」の方が出力が綺麗なように感じた

積層ピッチ0.2mm
積層ピッチ0.2mm
積層ピッチ0.1mm

まとめ

  • Ender-3 Pro用の32bitボードである「SKR MINI E3」を買った。
  • SKR MINI E3」にBLTouchを導入する方法を紹介した。
  • SKR MINI E3」は純正ボードよりきれいに出力できる気がする。
管理人:

コメントを見る (8)

  • すみませんご教授お願いしたいのですが、こちらの素晴らしいブログを参考にオートレベリングを有効にする為にVSCodeでコンパイルしたのですが、STM32F103RC_btt_512Kというフォルダが作成されず、mega2560というフォルダが作成され、firmware.binもできていません。
    何か間違えているのでしょうか?

  • こんばんは。
    Firmwareの更新に挑戦しようと思い参考にさせていいただいてます。
    私のPCでビルドを行ったところ、エラーなになってしまいます。
    ご存知でしたら教えていただけないでしょうか。
    Marlin\src\HAL\STM32F1\../../inc/../HAL/./STM32F1/HAL.h:81:4: error: #error "SERIAL_PORT cannot be 0. (Port 0 does not exist.) Please update your configuration."
    #error "SERIAL_PORT cannot be 0. (Port 0 does not exist.) Please update your configuration."
    Configuration.hの
    #define SERIAL_PORT 0 なんですが、この変数は何を表現しようとしてるのでしょう?
    PCと直接通信するわけではなく、SDカード経由でファイルを渡すのでシリアルポートは気にしなくていいような気がします。

    • SKR mini E3 V1.2の場合、エラーは以下の通りに設定することで解消できます。

      #define SERIAL_PORT 2
      #define SERIAL_PORT_2 -1

      なお、PC上のターミナル機能を備えたソフトフェア(例:Printrun、OctoPrint)やスライーサーソフト(例:Cura)経由で3DプリンターとPCとで直接通信することはあります。

      • ありがとうございます。
        せっかくお返事いただいてたのに通知設定が足りずに気づくのに遅れてしまいました。
        この間、githubでコンパイル済みのfirmware.bin の最新版 2.0.6 を手に入れて試してたんですよ。
        それからどうもモーターがうるさくなったような気がしてて、今日githubを確認してみたら2.0.6.1が出てました。
        issueの一つにモーターがうるさくなったのを解消したという記述がありました。
        今、印刷中なのでまだ試せていません。後程試してみます。
        その後、教えていただいた情報を試してみたいと思います。

  •  こんばんは、こちらの記事を参考にオートレベリングを取り入れようと思っています。
    「購入時点で最新のMarlin 2.0ファームウェアがEnder-3用にカスタムされた状態で書き込み済み」とありますが、Ender5の場合は配線を変えるだけで上手く行きますでしょうか?
    どうぞよろしくお願いしますm(_ _)m

    • 結論から言うと、配線を変えるだけではうまくいきません。
      ファームウェアを書き換える必要があります。
      理由は、Ende-3とEnder-5の間に以下のような違いがあるからです。

      1.X軸とY軸のエンドストップの位置が異なる(Ende-3:最小側、Ender-5:最大側)
      2.Zモーターのステップ数が異なる(Ende-3:400、Ender-5:800)
      3.Zモーターの回転方向が異なる(Ende-3:負、Ender-5:正)
      4.造形エリアのサイズが異なる(Ende-3:235x235x250mm、Ender-5:220x220x300mm)

      ここで挙げた部分のほかにもいくつかEnder-3とEnder-5のファームウェアの設定で異なる部分はありますが、それらは大した問題ではない(違っていても動作に支障をきたさない)ので、ファームウェアの書き換え箇所自体はそれほど多くありません(20か所程度)。
      ちなみに、Marlinの設定ファイルにはEnder-5用の「BigTreeTech SKR Mini E3 2.0」というファイルが含まれているので、それを書き込めばENder-5で「SKR Mini E3」が使えます(※ただし、オートレベリングを使う場合には、その部分を追加で書き換える必要があります)。

  • 初心者です。
    BL-Touchを取り付けようと思っています。
    分からない所がありますので教えて頂けませんでしょうか。
    firmware-bltouch-for-z-homing.binをリネームしてfirmware.binとしてmicroSDカード書き込みすれば良いのでしょうか。
    また、書き込んだmicroSDカードを使用してメインボードに書き込みすれば良いのでしょうか。
    宜しくお願いします。