3Dプリンタ

Ender-3 firmware

投稿日:2018年10月14日 更新日:

Ender-3の機能を拡張しようと思うと、ファームウェアの書き換えが避けられない。
ので、今回Marlinの最新版へとEnder-3のファームウェアの書き換えに挑戦しました。
ので、ここにその手順を書いておきます。

 

ファームウェア書き換えに必要な物

Ender-3のファームウェアを書き換えるには、パソコンと、AVR用のISPライターと、PCとEnder-3を接続する為のUSBケーブル(miniB)も必要です。

今回は、ISPライターとしてArduino UNO(互換機)を利用してみました。
あと、ArduinoUNOをISPライターとして使う場合、ArduinoとEnder-3のメインボードを繋ぐ為のジャンパーケーブル(オスーメス)も必要です。

 

HiLetgo® UNO R3 ATmega328P ATMEGA16U2開発ボード UNO R3 Arduino互換 [並行輸入品]  – Amazon

HiLetgo® 6個セット 2*120本 3種類 オスーオス メスーメス オス ーメス デュポンワイヤー ブレッドボードジャンパー ワイヤーアソートメントキット2.54mm 長さ20CM – Amazon

iBUFFALO USB2.0ケーブル (A to miniB) スリムタイプ ブラック 1m BSUAMNSM210BK – Amazon

 

 

ArduinoIDEの準備

Arduino IDEをダウンロードしてインストールする。

Arduino – Software

今回書き込みに使ったArduino IDEは、現在の最新版Ver1.8.7を使いました。

 

ArduinoIDEにSanguinoボードのインストール

Ender-3のメインボードはMelziの回路が元となっているようです。
そして、使われているマイコンはATmega1284Pなので、Sanguinoを使ってメインボードのArduino化を行います。
その為に、ArduinoIDEにsanguinoをインストールします。

なお、SanguinoはATmega644/1284用のArduino互換機

https://lauszus.com/Sanguino/
https://github.com/Lauszus/Sanguino

 

まず、Arduinoの環境設定画面を開きます。

 

追加ボードマネージャーに以下のURLを追加

https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json

 

次にボードマネージャを開きます。

 

ボード一覧が表示されるので、中からsanguinoを探して、インストールをします。
私はバージョン1.0.2をインストールしました。

 

ArduinoIDEにu8glibライブラリーのインストール

Marlinでは液晶表示にu8gライブラリーが使われているのですが、標準のArduinoIDEには入っていないので、これをインストールします。

 

ライブラリ管理画面を開きます。

 

使えるライブラリ一覧が表示されるので、その中からu8glibを探して、インストールします。
私は、バージョン1.19.1をインストールしました。

 

これでarduinoIDEの準備は完了です。

 

ブートローダー書き込み

続いて、ファームウェアを書き込む前に、先にArduino(sanguino)のブートローダーを書き込みます。
このブートローダーを書き込む為に、ISPライターがどうしても必要です。

ブートローダーが無くてもファームウェアの書き込みは可能ですが、ブートローダーを先に書き込めば、ファームウェアの書き換えにISPライターが必要無くなり、PCとEnder-3を接続するだけでファームウェアの書き換えが可能になります。

 

ArduinoをISPライター化

まず、用意したArduinoにArduinoISPのプログラムを書き込んで、ISPライター化する。

ArduinoをPCに接続する。
このArduinoはUNOの互換機で、USBシリアル変換にATmega16u2が使われたちょっと高い奴。
これは、初回接続時にドライバーが自動でインストールされる。

 

ArduinoIDEを起動して、サンプルスケッチからArduinoISPを開く

 

[ツール]メニューのボードとArduinoが接続されているシリアルポート番号(数字は環境によって異なる)を確認。
今回は互換機ですがArduinoUNOを使っているので、ボードはArduino/Genuino Unoを指定しています。

 

左上の書き込みボタンをクリックして、Arduinoに書き込みます。
ボードへの書き込みが完了しました。と出れば終了

 

ArduinoとEnder-3を接続

ISPライター化したArduinoとEnder-3のISP端子をケーブルで繋ぎます。
Ender-3のISP端子は、USB端子のすぐ隣にある、6本のヘッダーピンです。

 

接続すると、こんな感じになりました。

 

Sanguinoブートローダー書き込み

いよいよ、ブートローダーを書き込みます。
なおブートローダーを書き込んだ時点で、現在のファームウェアは消えてしまいます。
緊張の一瞬・・・やめるなら今のうち。

 

[ツール]メニューのボードとプロセッサ、Arduinoが接続されているシリアルポートと書き込み装置を確認。

ボードはSanguino
プロセッサは ATmega1284 or ATmega1284p(16MHz)
シリアルポートはArduinoUNOのCOMポート(番号は各環境で異なる)
書き込み装置は Arduino as ISP(ArduinoISPでは無い)

以上のようになっているのを確認

 

全て確認できれば、[ブートローダを書き込む]をクリック
書き込みが始まると、現在のファームウェアは消されてしまいます。

しばらく待って「ブートローダの書き込みが完了しました。」と出れば一安心。

ArduinoUNOはもう使わないのでケーブルを外して片付けます。

 

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

ブートローダーを書いただけだと、Ender-3はまったく機能しなくなります。

なのでブートローダー書き込み後は、続けてファームウェアの書き込み作業が必要になる。

今回、新しく書き込むファームウェアは、Marlinの1.1.9を利用しました。

http://marlinfw.org/

 

Marlinのダウンロードページから、ZIPファイルをダウンロードし、適当な場所に展開します。

http://marlinfw.org/meta/download/

 

解凍したMarlinのフォルダー

Marlin-1.1.x/Marlin/example_configurations/Creality/Ender-3

の中に、Ender-3用の設定ファイルが4つあります。

_Bootscreen.h
_Statusscreen.h
COnfiguration.h
COnfiguration_adv.h

README.mdは不要です。

 

これら4つの設定ファイルを全部、フォルダー

Marlin-1.1.x/Marlin

にコピー(上書き)します。

 

次に、ArduinoIDEメニューからmarlin.inoファイルを開きます。

 

Marlin-1.1.x/Marlin/Marlin.ino

 

停電時の復帰機能を有効化

Ender-3には、停電した時に、次に起動した時に復帰する機能がありますが、Marlinのデフォルトでは無効になっています。

 

有効にするには、Configuration_adv.hを開いて596行辺りにある

// #define POWER_LOSS_RECOVERY

の行をアンコメントします。
(行頭の//を削除する)

すると、停電時の復帰機能が有効になります。
この機能が必要無い人は、有効にする必要はありません。

 

PCとEnder-3を接続

PCとEnder-3をUSBケーブル(miniB)で繋ぎます。
ArduinoIDEがインストールされている環境では、初回接続時にドライバーが自動でインストールされます。
ちなみにEnder-3はUSBシリアル変換チップに、FTDIのFT232RLが使われています。

FT232RLが採用されているのは、V1.1.3までのボードのようです。
V1.1.4からは安価なCH340Gが使われているようです。

 

[ツール]メニューのボードとプロセッサ、Ender-3が接続されているシリアルポート番号を確認。

ボードはSanguino
プロセッサは ATmega1284 or ATmega1284p(16MHz)
シリアルポートはEnder-3のCOMポート番号(数字は各環境で異なる)

以上のようになっているのを確認

 

ファームウェア書き込み

左上の書き込みボタンをクリックして、ファームウェアを書き込みます。

コンパイルから書き込みまで、かなり時間かかるので、気長に待ちましょう。
私の環境では数分かかりましたw

 

数分後、「ボードへの書き込みが完了しました。」と出れば終了です。

あと、ファームウェアをアップデートした後の初回起動時はメニューからInitialized EEPROMを実行して、EEPROMの内容を初期化しないといけないようです。

 

Marlin 1.1.9になって

Marlin1.1.9になって、起動画面が2段階になりました。
最初にEnder画面、次にMarlinの画面、そしてメイン画面。
サインスマートの起動画面とはこれでさよならです。

 

メイン画面も表示されている内容は同じだけど、見た目が少し表示が変わった気がする・・・
前のをよく覚えてないけど。

そして、メニューの項目が大きく増えています。
例えば、色々な設定の数値とかが、メニューから変更できるようになっています。
便利だなと思ったのは、Preheatの温度が自由に変えられるところで、いつも私はベッドのPreheatをかけてからプリントする物のGCodeファイルを準備したりしているので、毎回ダイアルをくるくる回す必要が無くなって楽になりました。

 

あと、これは、Ender-3起動時のシリアルから出力される情報。
上のが以前の内容、下がMarlin1.1.9にした後の内容。

印刷にかかわる設定はまったく同じかと思いきや、jerkの数値が少し変更されているようです。
Jerkがいったい何なのか良く分かっておりませんが・・・

 

と、言う訳で、単に最新版のMarlin1.1.9にファームウェアを書き換えるだけでも、メニューから操作できる項目が増えるので、Ender-3の利便性が上がりました。
ファームウェアの書き換えは自己責任なので、あまりお勧めはできませんが、自分がやった手順を書いてみました。

 

 

-3Dプリンタ
-

執筆者:

関連記事

Ender-3 ケース ファン

Ender-3 ケースファンの回転問題とABSプリント対策

Ender-3のコントローラー基板が格納されているケースには、熱を逃す為のファンが付いています。上の写真がそうです。 これは電源投入直後、一瞬だけ回ってその後すぐに止まります。 でも、プリント中に見て …

Ender-3 シート張り替え

Ender-3 傷んだビルドシートを張り替え

Ender-3を買ってから約2ヶ月、いつも中心でばかりでプリントしているせいで、シートの真ん中はシートの糊が剥がれて、浮き上がってしまっています。 最近では、少し破れてしまい穴が空いてしまいました。 …

3DTouch

3D Touch

注文していた3D Touchが届きました。 先日作ったBFPTouchが意外と使えるので、わざわざ変える必要も無いのですが、でもこちらの方が精度が高そうなので、試してみようと思います。   …

ちょんまげマウント

バカ殿マウント?

今回もまた3Dプリンターでの製作です。 自転車用ヘルメットにカメラをマウントするパーツを作りました。 今回もまた、市販のマウントの一部を取り替えて使うかたちです。 実際に自転車のヘルメットにRicoh …

BS01+

3Dプリンタ始めました

最近3Dプリンタを買いました。 最近と言っても、もう2ヶ月ぐらい経つのですが・・・ 3Dプリンタで作った製作物とか、今後このブログに書いて行きたいなと言うことで、とりあえず私の買った3Dプリンタの紹介 …