見出し画像

3Dプリンタユーザーの為のファームウェアコンパイル講座

どもどもYanでっす。

本日のお題は「Marlin使いたいけどコンパイルって?という方向けコンパイル講座」でっす。(長い題名だ…)

最新のMarlin2系は基本的に32bitマザーボード向けなので、MEGAなど格安3Dプリンターには向きません。Marlin2.0が正式リリースされたけれど、世の中の格安プリンタは8bitマザーばかりなので1系も現役です。

僕はAnycubicのMEGAユーザーなのでMEGAに搭載されているTrigorilla向けに最低限ここだけ設定しておけば動くファームウェアのコンパイル(ビルドとも言います)のやり方を説明しようと思います。

用意するもの

Windows PC
MEGA用カスタムファームウェアのソースコード一式

Windows PCではMEGAで動くファームウェアをつくるためのソフトArduino IDEを使います。

ダウンロードしてインストールしておきます。さすがにここはキャプチャとかなしでスキップです。ここで躓くようなら、悪いことはいいません。ファームウェアコンパイルとかはやめておきましょう。どっか壊します。

MEGA用カスタムファームウェアはGitHubからダウンロードします。

画像1

赤い円で囲んだところをクリックしてzipファイルをダウンロードします。

zipファイルは2バイト文字を使っていないフォルダに解凍しておきます。

下準備

解凍したフォルダの中に「Marlin」というフォルダがあって、その中に「Marlin.ino」というファイルがあるのでダブルクリックでArduino IDEを使って開きます。Arduino IDEを起動してから、このファイルを開いてもいいんですけど何も開いてないArduino IDEも残るのでダブルクリックで起動推奨。

画像2

画像3

開いたら「ツール」→「ボード」→「Arduino/Genuino MEGA or MEGA 2560」を選択。

画像4

さらに、「ツール」→「プロセッサ」→「ATmega2560(Mega 2560)」を選択。

ここの作業はどのCPU(SoC)用にファームウェアを作るかという設定で、MEGAのマザーボードに搭載されているチップ用に選択しています。

これで下準備は完了。いよいよ設定すべき箇所を個別にみていきましょう。

「Configuration.h」を書き換えて設定変更

画像5

上のタブに「Configuration.h」という名前のタブがあるのでこれをアクティブに。これで画面に表示されている内容がこのファイルになります。

画像6

最初はここ、モータードライバの種類を変更する場所です。559行目あたり。(ファームウェアがバージョンアップすると行数変わるのでだいたいの数字です)

現在の状態は、僕のMEGAアップグレード計画で紹介したカスタムファームのTMC2208用と同じなのでTMC2208がすでに設定されてます。上のOptionsのとこに書かれている型番が使えるモータードライバの種類。

TMC2208とTMC2208_STANDALONEの違いは

TMC2208 マザーボードとTMC2208をケーブルで繋ぐことで電流などを変更できるようになる
TMC2208_STANDALONE ドライバに設定されている状態でしか使えない

アップグレード計画②の中で2208 UARTを買おうねと書いたのはTMC2208の方を使いたくなったときにハンダを使って細かいパターンをショートさせる作業が必要になるからです。アップグレード計画では特に不満を感じることはないはずなのでUART接続はしてませんが、興味のある人は調べてみてください。

なので、アップグレード計画と同じ構成の人は「TMC2208_STANDALONE」でOK。他のモータードライバを購入して使ってみるときは書き換えてください。

画像7

次はここらへん867行目あたり。

ここはモーターの回転方向を設定します。モーターを交換したときに、同じケーブルの色同士を結線しているのに回転が逆になることがあります。そんなとき、ここをfalseだったらtrueに、trueだったらfalseにしてあげるとモーターの回転方向を逆向きにできます。モータードライバも同じでTMC2208は最初からついているA4988とは回転させる信号が逆に出るのでstock driver(A4988)ではtrueのところをfalseにfalseのところはtrueに設定してあるというわけ。

テストで動かしてみて逆だったらここで変えられると覚えておきましょう。

画像8

次はここ899行目あたり。

ここはプリント可能エリアを設定します。ホーミングをした後に「Settings」→「Axis」でヘッドを動かすとここで設定した値以上移動しなくなります。ヘッドをカスタムすると右方向にプリントエリアが狭くなることが多く、ここを変更せずにAxisコマンドで移動させるとヘッドの右側がZキャリッジにぶつかってしまうことがあるんです。一度Axisコマンドで移動距離を数えながら(10mm単位で21回、1mm単位で3回とか)ぶつかる手前の数値を横方向なら「X_BED_SIZE」の右側の「215」のところに設定します。

Y軸方向は特にぶつかるってことはないのだけど、ベッドからはみ出してしまうのが嫌だったらX軸と同じようにギリギリの場所を見つけて「Y_BED_SIZE」の値を変更しましょう。

MEGA-S、MEGA-S化した人向け

MEGA-Sを買った人やMEGA-S化キットを使っている人はここも。

画像9

617行目の黄色い印をつけたところ「92.6」→「384」に。

そうアップグレード計画に沿って静音化をした人はやってるはずのREPETIER-HOSTでコマンド送って書き換えた場所です。エクストルーダーキャリブレーションで書き換える部分でもあります。

すでにエクストルーダーキャリブレーションを行っていて数値が分かっている人はここを「384」ではなくキャリブレーションで算出した数値にしておくと、ファームウェアをコンパイルしたものに書き換えたとしてもここで入力した数値になっているのでREPETIER-HOSTで書き換え直さなくていいので少し楽になります。

基本的にはここまで説明した部分の書き換えでほとんど問題ないです。BLTouchを使ってオートレベリングをするとかだと別の部分の設定変更も必要になるんですけど、今回はコンパイルの仕方なので別の機会に。

さぁコンパイル!

設定を変更したらいよいよMEGAに書き込むためのファームウェアを作成します。コンパイル(ビルド)しましょう。

画像10

「スケッチ」→「コンパイルしたバイナリを出力」を実行します。

画像11

左下にこんな感じで表示されます。

画像12

赤い文字で何やら不穏な言葉が表示されますが、「コンパイルが完了しました。」と出ていれば成功しています。

赤い文字の意味はマザーボードのメモリギリギリまでファームウェアが使ってるからもしかしたら動作不安定になるかもしれないよという警告です。

ギリギリまでメモリ使ってても問題なく動くファームウェアなのでこの警告は無視してもOK!ということ。

画像13

コンパイルが成功すると、Marlin.inoがあるフォルダに「Marlin.ino.mega.hex」というファイルと「Marlin.ino.with.bootloader.nega.hex」という2つのファイルが生成されています。このうち「Marlin.ino.mega.hex」がMEGAに書き込むファームウェアです。CURAで書き込めます。ファイル名は拡張子の.hexを消さなければ任意の1バイト文字列に変更しても大丈夫。

コンパイルするたびにこのファイルは存在していても上書きされて出力されるので、前のファームウェアも取っておきたいというときはファイル名を変えるなどしておきましょう。

これで3DプリンターユーザーがMarlin1系をコンパイルする基本的な手順はおしまい。今回はMEGA用にカスタムされたMarlinのソースファイルで紹介しているので設定箇所はかなりスキップしてます。

他のプリンタはそれ用のファームウェアがソースごとThingiverseやGithubにあると思うので、そちらのソースを使うことになるかと。

あとファームウェアの書き換えでプリンタ内部のEEPROMに保存した設定が上書きされない部分があります。設定変更箇所次第では不具合の原因になるのでファームウェアを書き換えたら。

M502 (ファームウェア初期値を読み込み)
M500 (EEPROMにセーブ)

上のコマンドをREPETIER-HOSTから実行して初期化しましょう。

ホットエンドやベッドのPIDチューンの値も初期化されるので再実行して書き換えは終わりという感じになります。

まとめ

どうでしたでしょうかファームウェアのコンパイル。実はかなり簡単です。素のMarlin1のソースはMEGA用に作られたものではないのでUIも違えば設定もいろいろと違うのでかなりたくさんの場所で変更が必要ですが、MEGA用のものがあるのでこれだけの設定変更で済んでます。

僕としてはファームウェアのコンパイルが出来るようになってからオートベッドレベリングやダイレクトmod化はした方がいいんじゃないかなと思っているので(でないとトラブル時に対処できないと思う)、このタイミングで記事を書いてみました。

そんなに難しいことではないので、チャレンジしてみてください。何かおかしい動きをしたと思ったら、前のファームウェアを上書きすればその状態に戻ります。

もしこの記事が役に立った、面白かったと思ったら購入、サポートよろしくお願いします!

ここから先は

101字

¥ 100

僕のノートが役に立った、面白かったと思っていただけたら、スキ、フォロー、サポートお願いします!