ESP32-C3 Problems Flashing Device
Posted: Mon Oct 16, 2023 11:07 am
Hi All,
I have been using an ESP32-C3-Mini-1 module in my design, and have been using USB connection only to flash firmware and monitor the microprocessor. Recently, I had new PCBs manufactured with the exact same design I have been using and am now unable to flash or monitor the device. The old working ESP32-C3 modules had the marking “XXN4” on the front of their devices, and the new ones “M4N4”. After removing the front caps of both modules and looking at the date code, the working XXN4 modules were manufactured in 2021, and the M4N4 ones in 2023.
The following two posts are from July 2023 which make me wonder if there is an issue with USB connectivity in recently manufactured batches.
viewtopic.php?p=121906#p121906
https://esp32.com/viewtopic.php?f=12&t=34679
More information below.
Expected Behaviour
When the device is connected to the PC, it becomes discoverable as and my PC views it as “USB JTAG/serial debug unit” (when the command is executed via terminal). When using the IDF toolchain, the commands such as “idf.py flash”, “idf.py -p /dev/ttyACM1 flash”, “idf.py monitor” etc will result in either flashing firmware or monitoring the device.
Actual Behaviour
When the recently manufactured devices are plugged into the PC, the devices are still discoverable as /dev/ttyACM1 as expected and my PC views the device as a “USB JTAG/serial debug unit”. When using the IDF toolchain commands such as, , etc do not execute the commands and instead return “Errno 32: Broken Pipe”. Commands as basic as return the same error.
I have tried different serial monitors including puTTY and we are never able to access the device over USB.
If anyone has experienced anything similar I would really appreciate hearing your experience, particularly if connecting via UART or JTAG yields a different result.
Tools Used
IDF version: IDF 4.3.4
PC operating system: Ubuntu 22.04.2 LTS (have tried on a Windows 10 PC too and same issue)
Assembly house of new PCBs: PCBWay (SKU: 2021DP3313)
Supplier of ESP32 C3 modules: LCSC
GPIO Configuration:
GPIO8 is pulled high to 3V3 via a 3.3K Ohm resistor
GPIO0 is connected to a switch that when pressed pulls it low to ground
GPIO2 and GPIO9 are left unconnected
I have been using an ESP32-C3-Mini-1 module in my design, and have been using USB connection only to flash firmware and monitor the microprocessor. Recently, I had new PCBs manufactured with the exact same design I have been using and am now unable to flash or monitor the device. The old working ESP32-C3 modules had the marking “XXN4” on the front of their devices, and the new ones “M4N4”. After removing the front caps of both modules and looking at the date code, the working XXN4 modules were manufactured in 2021, and the M4N4 ones in 2023.
The following two posts are from July 2023 which make me wonder if there is an issue with USB connectivity in recently manufactured batches.
viewtopic.php?p=121906#p121906
https://esp32.com/viewtopic.php?f=12&t=34679
More information below.
Expected Behaviour
When the device is connected to the PC, it becomes discoverable as
Code: Select all
/dev/ttyACM1
Code: Select all
lusb
Actual Behaviour
When the recently manufactured devices are plugged into the PC, the devices are still discoverable as /dev/ttyACM1 as expected and my PC views the device as a “USB JTAG/serial debug unit”. When using the IDF toolchain commands such as
Code: Select all
idf.py flash
Code: Select all
idf.py -p /dev/ttyACM1 flash
Code: Select all
idf.py monitor
Code: Select all
esptool.py read_mac
I have tried different serial monitors including puTTY and we are never able to access the device over USB.
If anyone has experienced anything similar I would really appreciate hearing your experience, particularly if connecting via UART or JTAG yields a different result.
Tools Used
IDF version: IDF 4.3.4
PC operating system: Ubuntu 22.04.2 LTS (have tried on a Windows 10 PC too and same issue)
Assembly house of new PCBs: PCBWay (SKU: 2021DP3313)
Supplier of ESP32 C3 modules: LCSC
GPIO Configuration:
GPIO8 is pulled high to 3V3 via a 3.3K Ohm resistor
GPIO0 is connected to a switch that when pressed pulls it low to ground
GPIO2 and GPIO9 are left unconnected