【備忘録】Anycubic MEGA Proのファーム書き込み失敗してブートローダが逝ってしまい、PCから接続できなくなったのを復活させた
初めにお断りしますが、聞きながら勉強しながら成功させたので自分用のメモ。間違いがあるかしれませんが、素人でもなんとかなった事例という事で許して下さい。
1.ファームウェアを更新しようとして失敗
OctoPrintのPluginでFirmwareUpdaterを使って更新中に誤ってブラウザを閉じてしまったところOctoPrintでプリンタを認識しない。
PCとUSB接続もできない
3Dプリンタの液晶画面の温度表示は0/0度(現在の温度/ターゲット温度)。通常ならば24/0 という具合に分子側は室温にちかい温度になってるはず。
液晶画面を操作して「About」の画面を見ると
ファームウェアの欄がブランクになってて明らかにおかしい。
試行錯誤するも全く埒があかずお手上げ状態。
2.Arduinoというやつ
とにかく状況が呑み込めないのでTwitterで情報を求めると
「ブートローダが飛んだ可能性あり」という話。またそのブートローダを書き直せばなんとかなるかもしれない。でもそのブートローダを書き込むにはArduino というマイコンボードが必要。どうせ一回しか使わないだろうからとメルカリで探したら800円弱で売ってた。(安っ!)Arduino 互換と書いてあるけど、まぁ失敗しても800円なので買いました。
(終わってから感動したのでArduinoを真剣に勉強したくなりました)
3.Arduinoを書き込み装置にする
Arduino IDEという、ファームウェアをコンパイルするヤツを使って買ってきたArduinoのボードに何かを書き込む必要がある
まずは、USBケーブルを使ってArduinoとPCを接続し、ツールメニューからボードの種類を選択。今回はArduino UNOを買ったのせそれに設定。
Arduinoが接続されているCOMポートを選択、今回はCOM5
IDEのメニューから、「ファイル」→「スケッチ例」とたどり、「ArduinoISP」を選択。
スケッチーマイコンボードに書き込む、または上部の「→」アイコンを選択すると、勝手にコンパイルし書き込みが始まりすぐに終わる。
これでArduino UNOが「書込み装置」になった。
4.Trigorillaとの接続
このTrigorillaという3DプリンタのボードもArduinoベースなので、Arduinoのブートローダを書き込む事で復活する。
6P使って2つのボードを接続。
右側は小さいけど、3Dプリンタのボードに「ISP」と書かれたピンが3x2列で並んでいる部分を見つけて下の図を参考に接続。
(この時は、3Dプリンタ電源オフ、ArduinoUNOはUSBケーブルを抜いておく)
確実に差し込む、抜けないように注意する。(途中で抜けたりすると最悪再起不能になる)
ArduinoUNO - Trigorilla ISP
12 - 1
5V - 2
13 - 3
11 - 4
10 - 5
GND - 6(GND)
接続が間違いないか3回ぐらい確認して、Arduino UNO にUSBケーブルを接続。(下の写真、なんか光る。3Dプリンタ側のボードも電源入れてないのに一部光る)
5.ブートローダの書き込み
ArduinoUNOは「書込み装置」になっているので、ArduinoIDEの設定を変更する。
ボード Arduino Mega or Mega 2560
プロセッサ ATmega2560(Mega2560)
書込み装置 "Arduino as ISP" ※ArduinoISPと間違えないように。
↑↑↑Arduino ISP という書込み装置を使ってATmega2560に書き込むという設定になっている。
再度結線状態を確認してから ツール - ブートローダを書き込む で書込み」開始
6.書込み完了
書込みが正常に終了したら、Arduino UNO を外して、3Dプリンタの電源を入れ、USB接続で認識出来たら完了。
↑通常はここまでで終わるという事らしい↑
7.ファームウェアをArduinoUNO経由で書込み
実は、ブートローダを書き込んでもPCやOctoprintから認識できず、ファームウェアの書き込みが出来なかったので引き続きArduino UNO を書き込み装置として使い、ArduinoIDE - Arduino UNO - Trigorillaへ直接ファームウェアを書き込む。
8、再結線
結線方法は上と同じ様に、Arduino UNOとISPを6Pで接続。
9.ファームウェアの書き込み
Arduio IDEでファームウェアを書き込むにはhexファイルだけではできないのでソースファイルを入手する必要がある。
Anycubic MEGA Pro の純正ソースは、サポートに送ってもらったのがこちらにあります。その他の機種の場合サポートに依頼するなり、ネット上で公開されているのを探して入手する。
ファームウェアのソースをArduinoIDEで開いて
ボード Arduino Mega or Mega 2560
プロセッサ ATmega2560(Mega2560)
書込み装置 "Arduino as ISP"
に設定を変更
「スケッチ」-「書込装置を使って書き込む」を選ぶとコンパイルしてエラーがなければ書込みが始まり、数分で完了。(長く感じるけど途中で絶対に止めたりしないで待つ)
10.無事完了
ArduinoUNOを外して、3Dプリンタの電源を入れると無事に起動、About画面にもファームウェアのバージョンが表示され、PCやOctoprintからも素直に接続できる様になった。
もし気に入って頂けたのであればサポートお願いします。 今後の励みになります!