【ESP32】DOIT ESP32 DEVKIT V1 互換ボードへの書き込み方法

・Windows 10 (1809)
・Arduino 1.8.7
Amazon:KKHMF ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetooth デュアルコアCPU低消費電力

上記で確認してますが、互換ボードならほぼ同じかと思います。

設定の確認

【ESP32】Arduino IDEでESP32開発ボードが使えるように設定する
Windows 10 (1809)で確認しました2018年8月から、導入方法が簡単になったArduinoIDEを用いた開発のセットアップ手順(Windows) (2018/8月から

ボード:DOIT ESP32 DEVKIT V1
UploadSpeed :921600bps
シリアルポート:Windowsのデバイスマネージャーで確認したもの

この3つを正しそうな値にしてください。

ボードにステッチを書き込む

初心者なので、どれがボードに直接書き込むメニューかわからなかったのですが・・。

「スケッチ」=>「マイコンボードに書き込む」が正解のようです。これを選ぶと、スケッチ(プログラム)のコンパイルから転送までやってくれます。

DOIT ESP32 DEVKIT V1 互換ボード特有の話

esptool.py v2.3.1
Connecting ......._____.

この文字が出てきたタイミングで、開発ボード側の「BOOT」というスイッチを押します。押し続けた状態で、画面が流れたら、ボタンを離します。

うまくいかない場合は、いったんBOOTボタンを離して、再度、押し続けるとよいみたいです。

うまくいくと、こんな感じで画面が流れて行って、書き込み成功して、スケッチが実行されます。

「esptool.py」というのが書き込みアプリのようです。

エラー時

Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____.....____スケッチの書き込み中にエラーが発生しました
_

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header

BOOTボタンを押さないときは、何回かリトライを繰り返した後、上記のようなエラーになるかと思います。

補足

BOOTボタンを押さないと書き込めないのは、「DOIT ESP32 DEVKIT V1」の仕様のようです。

Amazonのレビューやブログ記事では、「EN端子とGND端子に0.1μFのコンデンサーを挟むと自動で書き込まれる」ようです。

問題は USB経由だとUARTの制御線(RTSやDTR)をあまり高速に変化させることができないということです。制御線を変化させるには、USBにパケットを送出する必要があるので、高速にはできないのです。RTSがENに、DTRがIO0に直結されていれば、時間がかかってもDTRをLowにしたあとRTSをHiにすればいいのですが、上の回路を介しているためDTR=RTS=Lowの期間はEN=IO0=Hiになってしまいます。


こんな波形だと、プログラム書込みモードに入れることの方が不思議ですが、ENの立ち上がりでIO0の状態を見ているわけではなく、ENの立ち上がり、つまりリセットの解除で動き始めたプログラムが、あるタイミングでIO0の状態を取り込んでいるのではないかと想像しています。ESP8266で問題が起きなかった回路がESP32になり、処理が高速になり問題が発生したのかもしれません。
ESP32のプログラム書込みを安定させる - Qiita

原因としては、上記の説明がわかりよい気がします。あと、EN端子とGND端子にコンデンサーですが、上記の引用先の方法がはんだ付けしやすそうな気がします。ENボタンのところにもEN端子?が出てるんですね。

スポンサーリンク
タグ#ESP32
コメント一覧
  • 名前:管理人 :

    コメントは、まだありません。