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 respondingavrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00avrdude: stk500_recv(): programmer is not respondingavrdude: 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のArduino IDE調子が悪いかもしれませんから、Arduino IDE最新版 1.8.3
- MacOSのArduino IDE調子が悪いかもしれませんから、Platformioでやっても同じエラーです。
- MacOSのArduino IDE調子が悪いかもしれませんから、Winows 10でもやりました。結果が同じエラーです。
- 書き込み時に、ボードのリセットを押す、これも同じエラーです。
- USBケーブルの問題かもしれませんから、5、6本のUSBケーブルを交換して試しても皆同じエラーです。同じケーブルで、正常に動作するArduino UNO ボードで試したらすんなり行けましたので、USBケーブルの可能性を排除できました。
- USBシリアルドライバーが古いかもしれませんから、https://qiita.com/snumano/items/e268ed48b34eba6b6af0?fbclid=IwAR05enkrKQtTCGc4aK3mudCNr7CyyRfTr5kflUGg628uRd-myfudiHLc8P4 これをやっても同じエラーです。
- CH340Gのドライバーが要らないかもしれませんから、https://makedojo.com/labo/2019/04/15/mojave-has-arduino-ch340-driver/?fbclid=IwAR0FA0J014a4qSt4giu8rCCPF-gx1VEvaio8hGwdmL_KTCV0pb9uvtJ92uQ#.X9AZ5hP7RTZ これをやっても、同じエラーのままです
- https://community.platformio.org/t/troubleshooting-ch340g-issues-on-macos/9522?fbclid=IwAR2TZNT2wwm18tXMmUieAjL4WKJZIhW5UjilIt1Spmjm-F82uBA0mwOPULQ こちらも試して同じエラーです。
- Baut Rateを9600にして、platformioで試しても同じです。
- 実はMCUは違うかもしれませんから、他のボードを選んで、書き込んでみる、これも全て試した訳で貼りませんが、なんとなく違うなと思っていました。
一連の試行錯誤して
大体解ったのは、MacOS、MacOSのArduinoIDE、USBシリアルドライバー、USBケーブル、スケッチ自身、ボードのタイプなどの問題ではなさそうです。
残っているのはbootloader!
Bootloaderが最初から書き込んでいないとか、書き込んだけど、なんらかの理由で正常に動作しなくなったという可能性が残っています。
Solutions!
(これは現象に過ぎず、他にもいろんな原因があるかもしれませんが、私の場合は)結論からいうと
bootloaderです!
(You just need to burn the bootloader to you board.)
動くArduino一台用意してArduino as ISP で問題のボードにboot loader を書き込むと治りました! pic.twitter.com/BRK4Dj6nyR
— 川島のITスキルサロン (@kokensha_tech) December 7, 2020
一台ちゃんと動作するArduinoを使って、問題のArduinoボードにbootloaderに書き込んであげれば解決します!
動作する様子 pic.twitter.com/daxICZzYDP
— 川島のITスキルサロン (@kokensha_tech) December 7, 2020
手順 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 UNO R3 (MEGAが一つ)ボードたち!(^。^)
代表だけ並べてみました。笑
各種類数枚ずつ持っています。
昨日の問題も解決して
一工夫が必要なものもありますが全部使えます。
Arduino MiniやESP32系もまた大量にありますが、今のところなんとか使えるようになっています。笑#arduino pic.twitter.com/JQs07o2RvU— 川島のITスキルサロン (@kokensha_tech) December 7, 2020
では、ご機嫌よう!
Arduinoファイルを楽しんでください!