20100211

avrdude: stk500_getsync( ): not in sync: resp=0x00

Arduino プロジェクト (その2)で、報告したように、
avrdude: stk500_getsync( ): not in sync: resp=0x00
Stk500_disable( ): Protocol error, expect=0x14, resp=0x51
というエラーが出てスケッチがアップロードできなくなってしまったので、しばらくarduinoを触ることがなかったんだけど、このブログの読者の方から激励をいただき、もうちょっとやってみる気になった。

とりあえず、もう1枚Arduino Duemilanoveを買った(3200円)。


その真新しいDuemilanoveに適当なサンプルスケッチをアップロードしてみたらもちろんうまくいった。で、今度は最初に買ったDuemilanoveをおかしくさせる原因となったスケッチをアップロードしたら、それ以降アップロードができなくなった。分かったことは、変なスケッチをアップロードすると、Arduinoが暴走して、それ以降アップロードが不可能になってしまうのだ。たぶん。

あーあ。これじゃあ、もう1枚Duemilanoveを買った意味がないじゃん。 これでは、3200円(あるいは、6400円)をどぶに捨てるようなものだ。これではいけないと思ってどうにか解決策を探した。

それで、このstk500_getsync( ): not in sync: resp=0x00 というエラーは、日本人だけではなくて、世界中のAruduinoユーザを悩ませているエラーであることが分かった。IDEの設定を正しくすればいいとかいう単純な解決策で済む場合もあるのだが、実際はそうではないケースの方が圧倒的に多くて、その場合は決定的な解決策がない、あるいは、初心者には難しすぎて対処できない。

決定的な解決策ではないが、初心者にもどうにか対処できる方法

「i」家の趣向: avrdude: stk500_getsync(): not in sync: resp=0x00

でがんばってみることにした。

上のリンクにある方法というのは、

「arduino Duemilanove」のリセットボタンを押しながら、USBケーブルを抜いて、さらに押しながら再度挿入。

っていうのなんだけど、これで即解決っていうわけではなかった。この方法をアレンジして何度も繰り返した。アレンジというのは、再度挿入したあとリセットボタンを離してからもう一度リセットボタンを押して離した後、アップロードを開始するとか、リセットボタンを押下している時間を変えたりだとか、アップロード開始のタイミングとかをいろいろ変えたりした。

そうこうしているうちにアップロードが成功した。どうやったらうまくいったのか分からないので、もう一回やれといわれてもできないだろう。とにかく、初心者にとってはこんなことでしか解決できないエラーが発生する、そんなArduinoって本当はどうなの??って感じでArduinoというマイコンボードを使うということ自体に疑問が生じてきた。まあ、(初期のApple マッキントッシュのように)こういうところがカワイイっていう人がいるのかも知れんけど。

4 件のコメント:

love4nature さんのコメント...

リンク頂き、ありがとうございます。私もこのエラーをはじめて体験したときは、本当に頭を抱えて色々と調べました。今のところ、このエラーが出たときは、この方法で直っています。リセットボタンをかなり長押ししています。10秒くらいでしょうか・・・未だに根本的な原因は英語情報でも不明ですね。

the_dipper さんのコメント...

コメントありがとうございました。
たぶんこれからもlove4natureさんの記事に助けてもらうかも知れません。今後ともよろしくお願いします。

ardoumo さんのコメント...

こういうへその曲げ方はあまりかわいくないですね。スケッチによって再現性があるとの事、参考になります。
 それにしてもDuemilanoveをもう一枚とは頭が下がります。先にIDEのボードの選択間違いでは?との失礼なコメントをしてしまったようで申し訳ありませんでした。
 love4nature さんの言われるようにハード的に不安定な印象を受けますが、引き金は何かのソフト的な設定のような感じですね。早く解決されると良いですが。

the_dipper さんのコメント...

ardoumoさん、コメントありがとうございました。
失礼などとは思っておりませんので、ご心配なく。
ぼちぼちArduinoプロジェクトを再開していたいと思っています。