目次
実行環境
対象デバイス: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ピンを電源に接続すると電源が入る)
 - データを書き込む
 
											
											
											
											
											
											
											
											
											








