最近ブログの更新が週1から2回のペースに落ちてしまいましたが…副業で色々面倒なのもありますが、新作シナモンブレードの設計が進んでいること等でなかなか書き込みができません…。
そんな傍ら、流行りのArduinoを使って色々と作っていましたが…
なぜかXbeeを使って無線通信での書き込みができません。
書き込みのときに、こんなエラーが出ますが…
avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51
書き込んでいるうちに、FIO本体下にあるLEDが高速に点滅しました。通常なら、1秒間に2回ぐらい点滅するのですが、これは1秒間に10回ぐらい点滅しています。
ちなみに、XBee自体は他のArduino FIOで問題なく書き込みができています。
FTDIケーブルで直接試したのですが、同じエラーが表示されます。
これは本体のブートローダーのエラーかな、とか思いながらブートローダーを書き換えようとしても失敗します。
次に試したのが、直接ISP経由でファームウェアの書き換えです。Arduinoも要はただのAVRなので、AVRライタを使って書き込めば行けるかな、と思いました。ですが、これが失敗でした。
Arduino IDEの中にある、arduino-0022\hardware\arduino\bootloaders\atmega\ATmegaBOOT_168_atmega328.hexを、http://institute-master.blogspot.com/2011/04/avr_04.htmlで作成したAVRライタを使って直接書き込もうとしました。
初めは、AVR Studio 4で書き込もうとしましたが、読み込み、消去は出来るものの書き込みができません。
続いて、avrdudeでAtmel AVR ISP mkIIのライタで書き込んでいる、という設定をして書き込もうとしましたがやはり失敗。
次は、元のファームウェアを改良したという、http://www.ladyada.net/library/arduino/bootloader.htmlを試しました。ですがやはり失敗。
とまあ、結局うまくいかず放置してあります。ここまでで自分が出した結論は「AVRライタが対応していない」です。
またAVRライタを作るのか…それとも買うか…結構苦労した覚えがあるのでまた作るとか大変…とか思っています。だからと言ってここで買うとそれこそこれまでの苦労が無駄になってしまいます…
いつかArduino FIOを復活させる日を夢見て…
ArduinoIDEで書きこむ際にXbeeモジュールを外しておいてから書いてみてはどうでしょう。
返信削除僕もXbee使ってますが、モジュールを外したり、シリアル接続用のピンヘッダを外して開放してやると結構書込うまくいきますよ。
takumaさん
返信削除毎度アドバイスありがとうございます。
こちらで色々と試しました。結論からいいますと、無事に復活しました。
アドバイスの通り、まずはXbeeを外してからFTDI書き込みをしてもうまくいかず、ファームウェアを書き変えました。
中のファームウェアの設定がおかしくなっていたようで、無事なFIOからhexファイルを吸い出して、それをそのまま書き込みました。
結局復活しましたが、原因を改めて究明しようと思います。