3Dプリンタ(4) Arduino Uno をISPプログラマ化する
- カテゴリ: 3Dプリンタ
- 投稿日時: 2016/08/08(月) 22:42:18
GEN6のファームウェア書き換えには外付けのISPプログラマが必要という話の続きです。
仕事でステッピングモータを使った簡単な治具をつくりたいと構想していた時期がありまして、その時に社内のその筋の人に何気なく相談したら、余ってるから持ってっていいよと。でもその後自分は別の部署に異動になったので日の目を見ず、今日までジャンク箱の肥やしになっていたものです。
Arduinoを使ってISPプログラマをつくりましょう。そうしましょう。失敗しても失うものはありませんよ。
参考にさせていただいたのはこちら。
kosakalab
外付けAVRライタ無しでBootloaderなどを書き込む(Arduino UNO Rev. 3 )
参考どころかまったくそのまんまつくりました。
ハンダ付けが必要なのは空きパターンにヘッダピンを取り付けるところのみ。あとは両端がメス-メスになっているケーブルで GEN6 と Arduino UNO を接続するだけです。あ、ショートソケットも必要でした。
なお「5. ブートローダを書き込む」の章は今回は必要ないので飛ばします。
また、Arduino IDEでATtiny他の開発(AVRISP編)で「Arduino IDE 1.0.xシリーズのver.1.0.5を使用する」とありましたので、ここは素直に1.0.5をダウンロード、インストールしておきます。
(後々この1.0.5はアンインストールすることになりますが、説明はその時に。)
さて、いきなりファームウェアの書き換えをして失敗するのも嫌なので、まずは工場出荷状態のファームウェアのバックアップをしようと考えました。
Wikiに手順が書いてあります。
Backing up the Factory Firmware
書き込みと読み出しは avrdude を使って行います。実は ArduinoIDE も 同じく avrdude を使って読み書きしていて、avrdude.exe は ArduinoIDE に同梱されています。これをコマンドプロンプトから実行します。
Wikiに書いてあるコマンドは
hardware\tools\avr\bin\avrdude -C hardware\tools\avr\etc\avrdude.conf
-v -p m644p -c usbtiny -U flash:r:factory_gen6.hex:i
(諸般の事情により改行していますが実際は一行です。)
すみません。これを解読するのにかなり手こずりました。
まず最初の avrdude というのは avrdude.exe のことです。なのでパスを切っていない場合はフルパスで指定しなけりゃなりません。
ArduinoIDE 1.0.5 を例えば C:\Program Files\Arduino にインストールした場合は、
"C:\Program Files\Arduino\hardware\tools\avr\bin\avrdude" と書く必要があります。ProgramとFilesの間にスペースがあるので、全体をダブルクォーテーションで囲むわけです。
次に avrdude.conf 。これもフルパスで "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf" とします。
なおフルパスで指定せずとも、カレントディレクトリをArduinoのメインフォルダにすればよいです。っていうかWikiにはそう書いてあります。
で、ハイフンのあとにアルファベット1文字が続いているのは avrdude の実行パラメータなのでそのまま。ただし -c のあとは usbtiny ではなくて avrispmkII に、書いてないけど大文字の -P のあとには続けて usb と記述する必要があります。
なので上に挙げたコマンドラインは正しくは
"C:\Program Files\Arduino\hardware\tools\avr\bin\avrdude"
-C "C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf"
-c avrispmkII -p m644p -P usb -U flash:r:factory_gen6.hex:i
(諸般の事情により改行していますが実際は一行です。)
になります。いやー、そんなことどこにも書いてないじゃんってな感じですよ>RepRapWiki
まあこの業界の人にとっては常識なんでしょうね。
コマンドプロンプトを起動して上のコマンドを実行すれば、カレントディレクトリに factory_gen6.hex というファイルが出来上がるはずです、ハイ。これがGEN6から吸い上げたファームウェアです。
…ええ、見事に失敗しました。
ちょっとコマンドが間違ってたんです。
サクッと消えてしまいました。ブートローダごと。
読み出しのつもりが書き込んでしまいまして、しかも存在しないファイルを書き込んでしまったのですべて消えてしまいました。
あ、上に書いたコマンドはあってますよ。心配でしたら調べてみてくださいね。
さあ、意地でも新しいファームウェアを書き込まねばならなくなりました。次回へ続きます。
Tweet
コメント
この記事へのコメントはありません