ESP32 - JTAG Non-Functional w/ Stock Firmware
Posted: Sun Oct 06, 2019 8:53 pm
Hello Everyone,
I purchased 4 raw ESP32-WROOM-32 modules from Digi-key, soldered them to my hardware, and then attempt to flash them over the JTAG interface. Every attempt of programming the module left me with the dreaded all ones seen blah blah blah error.
All of the existing documentation online suggested a hardware fault so I went into hardware troubleshooting mode until I became fully confident the hardware was not an issue. After much thrashing around, I finally noticed the module were pre-programmed as they were dumping data over the UART port. I managed to re-flash the hardware using the UART interface instead and then the JTAG interface was accessible.
This left me with the following understanding:
1. It's possible for the firmware to "brick" the JTAG interface
2. ESP32 modules from espressif can potentially come with firmware pre-installed.
I have a few questions:
1. Can the existing OpenOCD scripts be modified to some how latch the JTAG interface before the user application disables it? I'm looking how to avoid this issue in manufacturing without switching to the UART interface. I'm also concerned with users potentially locking themselves out of the product if they incorrectly program the device.
2. Can Espressif please add a warning / disclaimer to their Github page for JTAG or the ESP32's datasheet.
Thanks,
Tyler
I purchased 4 raw ESP32-WROOM-32 modules from Digi-key, soldered them to my hardware, and then attempt to flash them over the JTAG interface. Every attempt of programming the module left me with the dreaded all ones seen blah blah blah error.
All of the existing documentation online suggested a hardware fault so I went into hardware troubleshooting mode until I became fully confident the hardware was not an issue. After much thrashing around, I finally noticed the module were pre-programmed as they were dumping data over the UART port. I managed to re-flash the hardware using the UART interface instead and then the JTAG interface was accessible.
This left me with the following understanding:
1. It's possible for the firmware to "brick" the JTAG interface
2. ESP32 modules from espressif can potentially come with firmware pre-installed.
I have a few questions:
1. Can the existing OpenOCD scripts be modified to some how latch the JTAG interface before the user application disables it? I'm looking how to avoid this issue in manufacturing without switching to the UART interface. I'm also concerned with users potentially locking themselves out of the product if they incorrectly program the device.
2. Can Espressif please add a warning / disclaimer to their Github page for JTAG or the ESP32's datasheet.
Thanks,
Tyler