見出し画像

Marlin2.0を32bitボードに書き込んでみる (3Dプリンターファームウェア系)(Re-Arm)


 3Dプリンターに使われるコントロールボードを32bit MCU搭載コントロールボードに、Marlin2.0を書き込んでいく方法を紹介します。
基本的には公式で公開されている、書き込みの日本語化&実施例。
少してこずった、初回の書き込みと2回目以降では少し手順が違う?かもしれない部分等を書いて行きます。
書き込み失敗するんだけど!?って方にも参考にしていただければ!

※32bitボードって?Marlin2.0って?というのは飛ばします。

今回使用したもの
・メインボード : Re-Arm LPC1768搭載32bitマイコンボード、Mbedとかで使われて来ました
・シールド系 : Ramps1.4 よく3Dプリンタ系で使われるシールド
1.6とかその他RAMPS系でもたぶん大丈夫
・LCD系 :(追加検証なので、ディスプレイに2.0コントロール表示させたいなら) 12864 reprap full graphic controller 
・microSDカード : 32bir系はデータをSDに書き込んでいます(32GB以下推奨)
・その他(電源装置、フェルール端子、USBケーブル等)
・参考サイト : http://marlinfw.org/docs/basics/install_rearm.html

※筆者は他のボード(MKS系等MCU、シールド一体型)で書き込んでないです、現時点では書き込み手順等が違うかもしれません。ご了承ください。
大体一緒だと思いますが

0.Re-ArmにRampsシールドやSDカードをまだ刺さないでください!
刺したくなる!とりあえず!電源入れてみたい、わかりますがちょっと待ちましょう。一体型ボードの方はSDカードを差し込むを待ちましょう
microSDカードのフォーマットしてからと公式の警告が。。。不具合が起きやすいようで

1.microSDカードのフォーマットと読み込み
Re-Armに入れるSDカードをフォーマット
1.1 microSDカードをFAT32としてフォーマットし、”REARM” 全て大文字で名前を付けます。
1.2 microSDをボードに挿入
1.3 Re-Armのリセットスイッチの隣にあるジャンパがUSB側に刺さっているか確認。
1.4 USBケーブルPCに繋ぐ
正常に動作していれば、”REARM”と名付いたSDカードがPC上で読み込まれるはずです。

2.コンパイラのダウンロード ArduinoIDEからPlatformI/Oへ
Marlin1.Xを書き込んできたArduinoIDEは2.0より卒業 
AduinoIDEのようにマイコンに書き込み出来るPlatformIO(P I/O)というパッケージを使っていきます。テキストエディタ Atomにパッケージ入れて使うのが公式推奨
インストールについては参考サイトで
Marlin:公式(英語)http://marlinfw.org/docs/basics/install_platformio.html
日本語解説 : 

3.Marlin2.0のダウンロード
Marlin公式サイト or Githubからダウンロード
http://marlinfw.org/meta/download/
ダウンロードしたファイルを解凍して準備をしてください。

4.Marlin2.0をAtom PlatFormI/Oで開く
※Atomに読み込む時のファイル階層に注意!
解凍時のフォルダの中にMarlinフォルダが入っているとうまく読み込まれません。

画像1入れたファイルをAtomで見てみましょう

画像2

Marlin_2.0 -> Marlin -> にある
Configuration.h や Configuration_adv.hが基本的に変更する部分になります。
 

5.Marlin2.0をビルドしてみる
細かなマシン設定やファームウェアの調整は解説を省きます。
いくつかの設定とビルド手順などを書きます。
注意する設定項目(書き込むボードの種類や書き方がそれぞれ違います)
※P I/OがAtomで読み込まれていないとここからエラーなどを起こすので確認


画像3


5.1 重要設定項目 Configuration.h
シリアルポートの変更 

//変更前
#define SERIAL_PORT 0
//変更後
#define SERIAL_PORT -1

コントロールボードの変更 

//変更前
#define MOTHERBOARD BOARD_RAMPS_14_EFB
//変更後
 #define MOTHERBOARD BOARD_RAMPS_14_RE_ARM_EFB

コントロールボード設定は、使用する32bitマイコンを探して下さい。
Marlin > src > coreにある、boards.h内にあると思います。
未対応のボードもあると思います。ピンアサインなど自分で設定するとかネット上に公開されているボードのコンフィグもあります
今回は Ramps1.4系を使うので上記のような記述になります

5.2 その他コンフィグ類をいじる

#define BAUDRATE 115200
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
#define CUSTOM_MACHINE_NAME "Marlin2.0 Test HogeHoge"

ボーレートやフィラメント径、プリンター名などいくつか変更してみます。

5.3 Marlinをビルド
P I/Oでビルドします。
Atomの左下にあるPIO Buildボタンを押します。(赤はビルドエラー時)

画像4


検索画面が出るのでここでMCUを検索しましょう
今回はLPC1768なので、”1768”と入れるとPIO Build(LPC1768)など出てきます。

画像5


PIO Build(LPC1768)を選択するとビルドが開始

結構時間かかりますが気長にまって下さい。(5分とかかかる)
ビルドが成功したら緑色でSUCCESSが出ます。問題なければ表示が勝手に消えます。

画像6

 6.書き込んでみる(初回&2回目以降)
初回書き込み: 手動書き込みを推奨
ビルドしたデータをSDカードに直接書き込みます。
公式はP I/Oの書き込みで自動で出来るともありますが、おそらく初回の何も入っていない状態では不可能なよう(ここが最も重要かな)

手動書き込みの手順
コンパイル成功したら
Marlin > .pioenvs > LPC1768を開くと、firmware.bin が生成されています。

画像7

Re-Armボードのリセットピン近くにあるピンヘッダの差し込み位置を確認してください。USBと書かれた側にジャンパを付けないと、USBを刺してもボードの電源が入りません。

生成された binファイルを Re-ArmのSDカード内に貼り付けます。
この時、Re-ArmをUSBでPCに繋いで書き込みを行うの推奨です。

書き込みし、Re-Armないにfirmware.binがコピー出来たら。
起動準備に入ります。 
リセットボタンを押し、LEDがチカチカすると思います。
SDカード内の firmware.bin が消え firmware.curが生成されていたら成功です。

2回目以降   : P I/Oにある自動書込みで行います。
PCにRe-Arm等32bitマイコンを挿し込み、初回で解説した位置にあるビルド系の中から、"PIO Upload(LPC1768)"を選択して下さい。

ビルドから何も変更していなければ、即座にアップロードが開始します。
認識エラーや、バグがあった場合はアップロードにエラーが発生します。


 7.ファームウェアが書き込まれているか確認
CuraやSimplify3D,ProntaFaceといったUSBシリアルで通信する系ソフトでRe-Armと接続をします。
ファームウェアが問題なく実行できていれば、Marlin1.××同様に接続しコマンドを送れます。

 8.LCD(12864などを使う)でMarlin2.0の表示確認。

LCD系をつないで、表示確認をしたいと思います。
RampsのLCD用コネクタ Re-Armから繋がっているピン電圧がAtmega2560と違うのでRamps1.4ボードにそのままさしてもLCDが点灯しません。
※MKS SGENなどの一体型ボードは正しい電圧が出るように変更されているかもしれないので、この後のリケーブルは必要ないかもです
ramps1.4以外はとりあえず繋いでつかなかったら、以下を実行

解決策: Re-Armから5Vをとる為にリボンケーブルを改造する。
参考サイト

リボンケーブルの電源ピン部分を切り離して、電線でリケーブルします。

画像9


参考サイトの様に5VピンにさしたらOK
rampsをRe-Armにさし、電源をつないでLCDが点灯すればOK

画像8


以上となります。
初回記事でしたが、Marlin2.0の初回手引きを日本語化できたと思います。これからMarlinは2.0が一般化するし日本語記事だなと思い書きました!

Marlin2.0以外にも32bit マイコン系やRepRapFirmware,4色フルカラーFDMヘッドの解説などしていく予定です。

今後は特殊な解説やマガジン化等有料記事も扱っていければと思いますので、ご支援よろしくお願いします。

この記事が気に入ったらサポートをしてみませんか?