Arduino の avrdude: stk500_recv(): programmer is not responding エラー

Arduinoにスケッチをアップロードしようとして、「avrdude: stk500_recv(): programmer is not responding」エラーになったことがありませんか?(if you are encounter avrdude: stk500_recv(): programmer is not responding error when you try to upload program to your Arduino board, you are at the right place, please read on)

私はありました!

辛かったです!

苦しかったです!

笑

原因が分からなくて、Arduinoボードを捨てようと思いました!

現象 what happened?

私の MacOS(10.15.3 Catalina)のArduino IDE(1.8.13)で

Arduino UNO R3の互換機に

一番シンプルなLチカcスケッチをアップロードする際にエラーが発生しました。

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00

Arduino UNO R3の互換ボードは下の写真の通りです。

上の写真の中にあるこの二つのボードですが

なんか一回だけスケッチをアップロードできた気がします(はっきり覚えていません、最初からできなかったかもしれません)が、それ以降一向にスケッチのアップロードが出来なくなって、困っています。

ボードはUNOを選んで(他は全部デフォルトの設定で、別のボードでは問題なくスケッチの書き込みができます。)、サンプルのLチカのスケッチをアップロードしようとしたが、一番最初の写真のようなエラーになります。

色々検索もしましたが、まだ解決に辿り着いていません。

UNOの互換ボードだから、もしかしたら、何かHardware関連の設定をすれば行けるかもしれませんが(他の互換ボードそういうのがありました)、その辺の情報もなくて、当時購入したサイト(Ali)にも情報がなくて。。。

何か変なこともしたつもりがなく、目視した限りは物理的に良好な状態のようですが。。。

本当に立ち往生していました!

考えられる問題 possible problem

考えられる問題(あるいは対策)としては、

最初は一番疑ったのはやはりUSBのドライバやUSB周りの回路です。

この二つのボードはCH340Gチップと使っているようです。

しかし、目視ではありますが、物理的な回路はとても綺麗で、破損などもなく、私が何か変に大電流を流して壊した記憶もありません。

  • USBシリアルドライバーが古い →ドライバーを更新する
  • USBシリアルドライバーが要らない  →ドライバーを削除する
  • Baut rate が高過ぎ
  • 書き込み時に、ボードのリセットを押す
  • Bootloader(ISCPのコネクターにAVR32のライターをつないでファームウェアを上書きする)
  • MacOSのArduino IDEの調子が悪い(再インストール、Windows)
  • 実はMCUは違う、別のボードを選んでやる必要がある

 

何を試したか what did I tried

一連の試行錯誤して

大体解ったのは、MacOS、MacOSのArduinoIDE、USBシリアルドライバー、USBケーブル、スケッチ自身、ボードのタイプなどの問題ではなさそうです。

残っているのはbootloader!

Bootloaderが最初から書き込んでいないとか、書き込んだけど、なんらかの理由で正常に動作しなくなったという可能性が残っています。

 

Solutions!

(これは現象に過ぎず、他にもいろんな原因があるかもしれませんが、私の場合は)結論からいうと

bootloaderです!

(You just need to burn the bootloader to you board.)

一台ちゃんと動作するArduinoを使って、問題のArduinoボードにbootloaderに書き込んであげれば解決します!

 

手順 Steps

1)まず、別のちゃんと動作するArduinoをもう一台用意します。

2)ちゃんと動作するArduinoに、サンプルスケッチからArduinISPを書き込んで、ちゃんと動作するArduinoを「書き込み装置」にしておきます。

3)ワイヤリング:配線は公式サイトの通りになります。https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoISP

ジャンパーワイアが数本用意が必要です。

4)電源をつけて、ツールメニューから「bootloader書き込み(burn bootloader)」を実行します!

5)タダー!できました!

これで、「だめ」だと思ったボードが復活です!

まとめ

Arduinoはオープンソースのハードウェアプロジェクトで

誰でも自分のArduinoの互換機を作れます。

そのおかげで、ネット上で格安のArduino互換機も買えます。その恩恵を受けて、費用を抑えて、たくさん実験、たくさんの遊びができて、ありがたい反面、何か不具合が発生した場合、自力で解決するしかないですね。本来はシンプルなことですが、こういう状況になると、初心者が結構凹んでしまいますね。

自力で問題解決がまだ厳しい時はまず純正から始めるのが良いかもしれませんね。

[amazonjs asin=”B008GRTSV6″ locale=”JP” title=”Arduino Uno Rev3 ATmega328 マイコンボード A000066″]

純正は高いですが、下のELEGOOはちゃんと問題なく使えるし、値段も少し優し目!オススメです。

[amazonjs asin=”B06Y5TBNQX” locale=”JP” title=”ELEGOO Arduino用UNO R3コントロールボード ATmega328P ATMEGA16U2 +USBケーブル”]

最後、私のコレクションをご紹介して終わりにしたいと思います。笑

では、ご機嫌よう!

Arduinoファイルを楽しんでください!

 

 

Add a Comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です