We're doing a network art installation and using many Olimex ESP32-PoE-ISO boards throughout the exhibits.
Unfortunately we are finding that these boards have starting losing their ability to be flashed, as they cannot connect, giving an error:
Failed to connect to Espressif device: Timed out waiting for packet header
This occurs when using either the Arduino IDE or the esptool.py to upload firmware.
Here is the output:
mm:~ $ esptool.py erase_flash
Found 6 serial ports
Serial port /dev/cu.usbserial-1430
/dev/cu.usbserial-1430 failed to connect: Failed to connect to Espressif device: Timed out waiting for packet header
Can you please provide some insight on how we can make these units programmable again?
If you searched online for "Failed to connect to ESP32: Timed out waiting for packet header" then you know it is widespread issue with a lot of possible causes. I believe it is caused by some improper timings and the auto-bootloader start-up. Probably the esptool misses the time window when the bootloader is active and the board had already existed bootloader mode. This can be caused by software or hardware reasons. My advice is:
1. First use the driver from the product's page site (under "USB drivers"). Some operating systems auto-install improper drivers when they update or upgrade. Make sure to test the drivers from this page: https://www.olimex.com/Products/IoT/ESP32/ESP32-POE/open-source-hardware
2. Try other USB ports and eventually another computer.
3. Try another USB cable.
4. Try older version of esptool and Arduino IDE, sometimes newer version introduce bugs related to the USB timings...
Here are few similar threads (the first two are for Olimex products):