目次
実行環境
対象デバイス:ESP-WROOM-32(データシート)
書き込みソフト:Arduino IDE
使用したパソコン:windows10
症状
ESP-WROOM-32にプログラムを書き込もうとすると、コンパイルは成功するが、書き込み時に
A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header
と表示され、書き込みができない
原因1
ボードの設定が間違っている。
対処法1
ボードの設定を以下のように設定する。
設定項目 | 値 |
ボード | ESP32 Dev Module |
CPU Frequency | 240MHz |
Flash Frequency | 80MHz |
Flash Mode | QIO |
Flash Size | 4MB(32Mb) |
ボードの選択でESP32 Dev Moduleが存在しないときはこちらを参考にしてインストールしてください。
原因2
パソコンと ESP32の接続の仕方が間違っている。(特に電源に5Vを使用していないか確認してください。)
対処法2
USBリアルコンバータとESP32を以下のように接続する。
ESP32 | USBリアルコンバータ側 |
3V3 | 3V3 |
GND | GND |
RX | RXD |
TX | TXD |
※ESP32の3V3pinには必ず3.3Vの電源を接続してください。5V電源を接続しても壊れることはありませんが、データ通信ができません。
原因3
GPIO0をLOWにしていない。(GNDに接続していない)
対処法3
GPIO0ピンをGNDに接続する。
(GPIO0ピンをGNDに接続することで書き込みモードになります。逆にプログラムを実行する場合はGPIO0ピンはGNDに接続しないでください。)
原因4
USBリアルコンバータとESP32を接続してUSBリアルコンバータをパソコンに接続した後、ESP32のリセット処理(再起動)を行わずに書き込もうとしている。
(恐らく一番多い原因はこれ)
対処法4
USBリアルコンバータをパソコンに接続した後、以下の手順でESP32をリセット(再起動)する。
- ESP32のENピンを一度GNDに接続する。(ENピンをGNDに接続すると電源が切れる)
- ESP32のENピンを3V3ピンに接続する。(ENピンを電源に接続すると電源が入る)
- データを書き込む