久しぶりのESPr。
ハマったこと①:Macからバイナリを流し込めなかった話
以前、MacからESPr Developerにコードを書き込もうとした事がありましたが、何故か書き込むことができず、それ以来ESPr Developerは放置して他の野良なESP8266ボードで開発していました。
ATコマンドは打てるので、MacからESPr Developerを認識できていると思うのですが、いざコードを流し込もうとすると、
warning: espcomm_send_command: cant receive slip payload data
みたいなエラーが発生して、書き込めません。そんな時はESPTOOLを使うと上手く書き込めるそうです。
結局、そのときはESPTOOLも有効な解決策になりませんでした。で、スイッチサイエンスさんのサイトを眺めていたら・・・
ESPr® Developer(ESP-WROOM-02開発ボード)www.switch-science.com
モード切替ボタンはIO0番ピンにつながっています。ボタンを押すとIO0がLOW、放すとIO0がHIGHになります。IO0がHIGHの状態でリセットされるとファームウェアの実行モードで起動しますが、IO0がLOWの状態でリセットされるとファームウェアの書き込みモードで起動します。
ファームウェア書き込みモードは電気信号的になされるものだと思ってましたが、ボタン操作によって書き込みモードにできるんですね・・・。ということは、Arduino IDEから書き込む前に、ボタン操作で書き込みモードにしてあげれば良いんじゃね?と思い試してみました。結果はOK、モード切替ボタンを押してからリセットボタンを押して、コードを流し込むと、問題なく書き込むことができました。今までの苦労は何だったんでしょうか。まぁ、いいや。これからはESPr Developerを可愛がっていこうと思います。
ハマったこと②:ESP8266でマイコン内蔵LEDが光らせることができなかった話
このあたりのLEDを扱う時に便利なのがAdafruitのNeoPixels ライブラリになるわけですが、どうもESP8266からは上手く動作せず、Arduinoからは動作できていました。もしかして、3.3V駆動が原因で動かなかったのかなと思い、レベル変換モジュールを秋月で買って色々やってみたものの、上手く行かず途方にくれていました。
これもしょーもない理由が原因だったんですが、ローカルにあったライブラリのバージョンが古く、Arduino IDEのライブラリマネージャーで最新のライブラリを取得してコンパイルしてESP8266に流し込んだところ、フツーにピカピカできました。しかも3.3Vのままでも動作しちゃってます。本当はアレだと思うんですが、動いてるのでこのまま開発しようと思います・・・(笑)
というわけで
くだらないトラブルに相当な工数を割いてしまいましたが、これでようやくESPr Developerで開発できそうです。
3月末のIoTLTさんで登壇させていただけそうなので、当面はそれに向けてガジェットを作成しようと思います。乞うご期待。
www.instagram.com
チカチカー。