Flash problems to ESP8266 boards
Note to self: sometimes I cannot write to ESP8266 boards. The solution appeared to be to disconnect serial devices first (e.g. MH-Z19B), then flash
Symptoms ¶
- Typically freshly bought boards (Wemos D1 mini Pro) running micropython
- esptool.py reports: A fatal error occurred: Failed to connect to Espressif device: Timed out waiting for packet header
- Arduino reports: error: espcomm_open failed error: espcomm_upload_mem failed
- Cannot interact or write to Micropython REPL prompt, commands are not fed back (i.e. I only have RX no TX capability)
Diagnosing ESP8266 boards ¶
To see what the board is doing, connect to USB, then run screen on the tty:
screen /dev/tty.usbserial-1420 {74880,115200}
Or use Arduino ‘Serial logger’ (adafruit.com). Use baud 74880 for boot loader, 115200 for programs running on the board (in my case). This gave me:
21:32:09.624 -> OSError: [Errno 2] ENOENT
21:32:09.624 ->
21:32:09.624 -> MicroPython v1.9.4-8-ga9a3caad0 on 2018-05-11; ESP module with ESP8266
21:32:09.624 -> Type "help()" for more information.
21:32:09.624 -> >>>
Once I found the board was running Micropython (i.e. ruling out HW problem), I found that I could connect but not write to the Micropython prompt.
Solution ¶
In my case the problem appeared to be that a sensor using the serial port blocked my input to the serial port for uploading. Disconnecting the sensor worked. HTH.