「簡単にWiFiに繋がる開発ボード」として気軽に使えるESPr。
https://www.switch-science.com/catalog/2500/
ファームウェアの書き込み時にハマってしまったので、備忘録代わりにメモしておきます。
現象
書き込み時に下記のようなエラーが発生
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
- ArduinoIDE再起動
- PC再起動
- ブレッドボード交換
- USBケーブル交換
などトラブルシューティングを一通り試すも、状況変わらず。
ファームウェア書き込みモード
前述のスイッチサイエンスさんの商品ページに下記説明がありました。
リセットボタンを押すとリセットがかかります。
モード切替ボタンはIO0番ピンにつながっています。
ボタンを押すとIO0がLOW、放すとIO0がHIGHになります。
IO0がHIGHの状態でリセットされるとファームウェアの実行モードで起動しますが、
IO0がLOWの状態でリセットされるとファームウェアの書き込みモードで起動します。
赤枠がリセットボタン、青枠がIO0ボタンです。
つまり、ArduinoIDEからESPrにプログラムを書き込む際は、
IO0を押下した状態でリセットボタンを押す必要がある。
ということで、書いてある通りにやってみたけど、上手くいかない....なぜ.....
突然の解決
試しに、リセットボタンを押した後もIO0を押し続けたままにしてみたところ、
上手くいきました。
つまり、
IO0とリセットボタンを同時に押した後、ボタンを離してしまうのではなく、
**「IO0は押し続けたままで書き込み開始を待つ」**必要があったのです。
ハードウェアあるある
友人曰く、「ハードウェアあるあるだよね」とのこと。えぇ・・・
だって一回ボタン押したら手離しても大丈夫って思うじゃないですか・・・
電気回路に詳しかったら、「リセット時にボタン押しっぱなしは当然でしょ」の知識があるのかもしれませんが、今回はそこまで思い至りませんでした。
この辺りのTipsはとにかく場数踏んで、肌感で掴んでいくしかなさそうです。もしくはマニュアルを熟読できるようになるとかでしょうか。
強く生きます。
追記(2016.11.10)
コメントでご指摘頂きました、Reset Method
をnodemcu
にすることで自動的に書き込みできるようになるとのことでした。
参考URL:http://trac.switch-science.com/wiki/esp_dev_arduino_ide