Ender-3 firmware

公開日: 3Dプリンタ |

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

 

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

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

Ender-3のメインボードにはArduinoのブートローダーが書き込まれていないので、ブートローダーを書き込む為にISPライターがどうしても必要です。

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

 

 

 

 

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の準備は完了です。

 

ブートローダー書き込み

続いて、Ender-3のメインボードにsanguinoのブートローダーを書き込みます。

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が使われています。

 

[ツール]メニューのボードとプロセッサ、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プリンタをBluetooth接続化してみた

RepRapのwikiページを見ていると、RAMPSのボードにBluetoothモジュールを接続

記事を読む

バカ殿マウント?

今回もまた3Dプリンターでの製作です。 自転車用ヘルメットにカメラをマウントするパーツを作りま

記事を読む

GoPro ヘルメットマウント2

前回作った自転車用ヘルメットにカメラを取り付けるマウントのGoPro版を作ってみました。 3D

記事を読む

3Dプリンタ始めました

最近3Dプリンタを買いました。 最近と言っても、もう2ヶ月ぐらい経つのですが・・・ 3Dプリンタ

記事を読む

THETA 紐式リモートレリーズ

RICOH THETA用の紐式のリモートレリーズを3Dプリンターで作ってみました。 紐を引っ張

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Maker御用達 とても便利な電子部分テスター LCR-T4

先日、LCR-T4と言う電子部品のテスターを買いました。 日本の

no image
Ender-3 プリント終了を音で知らせる

Ender-3はスピーカーが標準で搭載されている。 ダイアルをプッシ

Ender-3 auto bed leveling

Ender-3で、Auto Bed Leveling(ABL)に挑戦し

Ender-3 firmware

Ender-3の機能を拡張しようと思うと、ファームウェアの書き換え

Ender-3 SD card

Ender-3ではmicroSDカードにデータ(GCodeファイル

PAGE TOP ↑