Arduino Unoでブートローダを書き込む

Arduino Duemilanoveではブートローダを簡単に新しいAVRマイコンに書き込むことができます。
最初から入っている「Arduino ISP」というスケッチを使えば簡単です。
しかし、Arduino Unoではそう簡単にはいきません。
Optibootという新しいブートローダが入ってるかららしいんですが・・・
今までUnoではできないと思っていたんですが違うスケッチを使えばいけるようです。
というか普通にいけました。

用意するものはArduinoとAVRマイコン(ATmega328P)のみ。
そして一番下にあるリンクからOptifix.zipをダウンロードしてください。
次にArduino UnoとATmega328Pを下図のように接続します。
SimpleBreadboardAVR

そしてダウンロードしたスケッチをコンパイルしてアップロードします。
次にSerial Monitorを起動して「19200 baud」を選択します。
Arduino IDE optifix

Arduinoに正しくAVRマイコンが接続されていない、または既にブートローダーが焼きこまれていると

OptiFix Bootstrap programmer.
2011 by Bill Westfield (WestfW)

Starting Program Mode [OK]

Reading signature: Bad value: 0
(no target attached?)

Type 'G' or hit RESET for next chip

このようなエラーメッセージが表示されます。
うまくいっていませんので、回路の確認等をしてみてください。

成功すると以下のような表示になります。

OptiFix Bootstrap programmer.
2011 by Bill Westfield (WestfW)

Starting Program Mode [OK]

Reading signature:950F
Searching for image...
Found "optiboot_atmega328.hex" for atmega328
Start address at 7E00
Total bytes read: 508

Setting fuses for programming
Lock: 3F FFE000 Low: FF FFA000 High: DE FFA800 Ext: 5 FFA400

Programming bootloader: 512 bytes at 0x3F00
Commit Page: 3F00:3F00
Commit Page: 3F40:3F40
Commit Page: 3F80:3F80
Commit Page: 3FC0:3FC0

Restoring normal fuses
Lock: F FFE000

Type 'G' or hit RESET for next chip

これでAVRマイコンにブートローダが書き込まれました。
あとはもともとArduinoにあったATmega328Pをこのブートローダを書き込んだものに入れ替えれば、いつも通りにArduinoの言語で開発ができます。

Arduino Forum – Uno Bootloader Fixer…

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1295516707

Optifix.zip

Download

追記

Arduino 1.0で書き込む場合は optiLoader.h の1行目を次のように変更してください。

変更前

#include <WProgram.h>

変更後

#include <Arduino.h>
2人の方がこの記事を「いいね!」と言っています。

Comment

  • Pingback: 空IKE飛行機! Blog» Mega328のTQFPをarduino化&PAK FA解体

  • K.Hanai

    大昔ワンボードマイコンをいじくった以外最近のマイコンは全くの初心者です。
    ArduinoUNOを使ってブートローダー焼き付けようと頑張っているのですが、焼蹴るのは
    手だけです。 漸くこのページに辿り着きダウンロードしたOptifixをコンパイルして初めてErrorなしで通る姿をみました。ですがその先シリアルモニターのメッセージは正しくAVR
    に接続されてないと言う6行のメッセージです。何度も接続回路見直しましたが正しい様です。 もう一つのATmega328Pを差し替えてアップロードしてみました。今度はシリアルモニターに成功したメッセージが確認できました。
    焼けた328PをUNOに差し替えてみたら正常に動作しました。 ありがとう御座いました。
     

    1. たまさ Post author

      コメントありがとうございます。
      お役に立ててなによりです。

      1つ目の時のエラーメッセージは既にOptfixが焼きこまれている可能性もありますので、一度差し替えて確認してみるといいかもしれません。