ESP32-C3 from LCSC faulty?
ESP32-C3 from LCSC faulty?
Hi all,
We have designed a few PCB's recently using Easy Eda.
We typically get the board manufactured and pick and placed at JLCPCB (They use LCSC stock for the PNP)
I was unable to flash the microcontroller over USB like I would normally be able to so I went through a great troubleshooting list as we have never had this issue before
After a great deal of bodges (increasing 3v3 capacitance, removing any unrelated device, playing with some USB capacitance) I ended up replacing the ESP with one previously purchased from Mouser
The device immediately was able to be programmed and all was well in the world
Unfortunately there is a good 8 hours gone and during that process we redesigned one PCB to use an ESP32-S3.
Attached I have pictures of the "New" chip from mouser and the "Old" chip that was pick and placed
Unfortunately there were many hundereds spend on these PCB's
There are two of one type and five of another. All exhibit the same problem and are able to be fixed by microcontroller replacement
My question is if its possible there is a faulty batch of chips that LCSC is PNPing right now?
What if there is a minor hardware revision that is not allowing programming
My test method is simply flashing a blink sketch onto the board using Arduino IDE (Platformio the same)
The flashing program will give an error of some description such as "communication port not found" or "device not recognized" or "timeout"
I still have several of these boards that have the "old" microcontroller on them, how do we go about diagnosing what is going on here
Thanks,
Reuben
We have designed a few PCB's recently using Easy Eda.
We typically get the board manufactured and pick and placed at JLCPCB (They use LCSC stock for the PNP)
I was unable to flash the microcontroller over USB like I would normally be able to so I went through a great troubleshooting list as we have never had this issue before
After a great deal of bodges (increasing 3v3 capacitance, removing any unrelated device, playing with some USB capacitance) I ended up replacing the ESP with one previously purchased from Mouser
The device immediately was able to be programmed and all was well in the world
Unfortunately there is a good 8 hours gone and during that process we redesigned one PCB to use an ESP32-S3.
Attached I have pictures of the "New" chip from mouser and the "Old" chip that was pick and placed
Unfortunately there were many hundereds spend on these PCB's
There are two of one type and five of another. All exhibit the same problem and are able to be fixed by microcontroller replacement
My question is if its possible there is a faulty batch of chips that LCSC is PNPing right now?
What if there is a minor hardware revision that is not allowing programming
My test method is simply flashing a blink sketch onto the board using Arduino IDE (Platformio the same)
The flashing program will give an error of some description such as "communication port not found" or "device not recognized" or "timeout"
I still have several of these boards that have the "old" microcontroller on them, how do we go about diagnosing what is going on here
Thanks,
Reuben
- Attachments
-
- Faulty Micro
- PXL_20230717_044321932.jpg (167.45 KiB) Viewed 4896 times
-
- Before Microcontroller Replacement.jpg (2.09 MiB) Viewed 4896 times
-
- esp32 Schematic.PNG (200.9 KiB) Viewed 4896 times
-
- Posts: 9764
- Joined: Thu Nov 26, 2015 4:08 am
Re: ESP32-C3 from LCSC faulty?
If anything, your schematic is faulty; BOOT on the ESP32C3 is GPIO9, not GPIO0. Can you force that low on one of the 'broken' boards on powerup/reset and see if you can program them then? Additionally, you probably want to have GPIO2 and GPIO8 to be high on bootup, see the 'strapping' section of the datasheet for more information. (Generally, if you design a PCB, please make sure to properly read the datasheet and the relevant sections of the hardware design guidelines, that will help you to get your board running the first time)
Re: ESP32-C3 from LCSC faulty?
The boot pin is definitely in the wrong location however I have experimented a significant amount with getting the actual boot pin (9) low to get into bootloader mode
It does show up as a different device on device manager (I think) however it will not take a flash.
There is another PCB we made that has the boot pin in the correct location but still no joy (Actually that was the first batch of unflashable parts)
It does show up as a different device on device manager (I think) however it will not take a flash.
There is another PCB we made that has the boot pin in the correct location but still no joy (Actually that was the first batch of unflashable parts)
- Attachments
-
- Distribution board schem.PNG (61.8 KiB) Viewed 4857 times
Re: ESP32-C3 from LCSC faulty?
That was a mistake on my part with that board however I have attempted to put it in bootloader mode using IO9
This did not fix the issue, although it did behave differently in device manager
Another board (attached schematic) also has the same issues
I am certain there is some form of hardware issue on the micro that is not related to the PCB as swapping the microcontroller worked fine.
We always follow the design recommendations
With some PCBs we left the boot button off as we never had to use it, even for first flash
This did not fix the issue, although it did behave differently in device manager
Another board (attached schematic) also has the same issues
I am certain there is some form of hardware issue on the micro that is not related to the PCB as swapping the microcontroller worked fine.
We always follow the design recommendations
With some PCBs we left the boot button off as we never had to use it, even for first flash
- Attachments
-
- Distribution board schem.PNG (61.8 KiB) Viewed 4857 times
-
- Posts: 9764
- Joined: Thu Nov 26, 2015 4:08 am
Re: ESP32-C3 from LCSC faulty?
And the additional thing I mentioned of having GPIO2 and 8 high on bootup? Also, what's your 3.3V power supply like, as in how is it generated?
Re: ESP32-C3 from LCSC faulty?
I have measured GPIO 2 and found it to be low (but it may come to bite us later if the microcontroller boots during CANRX)
GPIO 8 is an output with a 10k pull down
The power supply is a simple LDO
I have scoped this rail and there is no oddities
Note there is substantially more capacitance on the rail than indicated in the screenshot blow
GPIO 8 is an output with a 10k pull down
The power supply is a simple LDO
I have scoped this rail and there is no oddities
Note there is substantially more capacitance on the rail than indicated in the screenshot blow
- Attachments
-
- LDO.PNG (35.26 KiB) Viewed 4751 times
-
- Posts: 9764
- Joined: Thu Nov 26, 2015 4:08 am
Re: ESP32-C3 from LCSC faulty?
That LDO is far from enough to drive an ESP32-C3: the datasheet says "If you use a single power supply, the recommended output current is 500 mA or more." and yours can only provide 100mA. It's pretty likely your ESP32 is browning out.
Re: ESP32-C3 from LCSC faulty?
Running the device from a bench top power supply still yeilds no fix
I have since bodged in an alternative power supply as attached below
Scoping 3v3 shows no issues
As I said in an earlier post, replacing the microcontroller fixed the issue
We still have 4x boards that have not powered up as yet and will have the same dead microcontroller issue
Replacing the micro with one from stock (mouser) does repair the board
I have since bodged in an alternative power supply as attached below
Scoping 3v3 shows no issues
As I said in an earlier post, replacing the microcontroller fixed the issue
We still have 4x boards that have not powered up as yet and will have the same dead microcontroller issue
Replacing the micro with one from stock (mouser) does repair the board
- Attachments
-
- SMPS 5a 5v-3v3.PNG (42.59 KiB) Viewed 4671 times
-
- Posts: 9764
- Joined: Thu Nov 26, 2015 4:08 am
Re: ESP32-C3 from LCSC faulty?
Well, to be honest, I'm not saying it can't happen but I find it pretty unlikely that LCSC stocks multiple faulty ESP32 modules; they're usually a reliable outfit in my experience, hence me trying to find other reasons why your PCB may not work. (And note that e.g. the power supply thing would have bitten you later on, even if the modules turned on without it fixed.) If you're willing to still try to see if the issue is the modules, another thing to check might be to de- and resolder the 'faulty' modules: it may not be the modules that are faulty, but the soldering process, and replacing the module fixed it purely because they're soldered anew.
Re: ESP32-C3 from LCSC faulty?
Hi all,
I don't mean to add to any necessary hysteria, but I ordered 30 PCBs from PCBWay of a design we have always had PCBs of who confirmed they ordered the device's ESP32-C3-Mini modules from LCSC, and I have had the same issues. For added context, my flashing method is below:
- We flash over USB directly, the USB d+ and d- pins go straight to the module, we use no USB-UART chip on board
- Our new PCBs when plugged in are still discoverable as /dev/ttyACM1
- I use the ESP IDF toolchain for flashing, which in turn uses ESPTOOL
- When flashing is attempted, I am returned with "Errno 32: Broken Pipe". The issue is identical for other interfacing operations such as attempting to read the module's MAC address
- GPIO8 is pulled down via a 3.3kR resistor, GPIO9 is left disconnected, GPIO0 is pulled down by a switch via a 330R resistor. People on this thread may disagree with this arrangement but to echo OP, this has always been in our design and has never been an issue for us
- The serial numbers on our modules are the same as those on OP's
I am in contact with Espressif, and am yet to swap out modules, but will update if I find anything significant
I don't mean to add to any necessary hysteria, but I ordered 30 PCBs from PCBWay of a design we have always had PCBs of who confirmed they ordered the device's ESP32-C3-Mini modules from LCSC, and I have had the same issues. For added context, my flashing method is below:
- We flash over USB directly, the USB d+ and d- pins go straight to the module, we use no USB-UART chip on board
- Our new PCBs when plugged in are still discoverable as /dev/ttyACM1
- I use the ESP IDF toolchain for flashing, which in turn uses ESPTOOL
- When flashing is attempted, I am returned with "Errno 32: Broken Pipe". The issue is identical for other interfacing operations such as attempting to read the module's MAC address
- GPIO8 is pulled down via a 3.3kR resistor, GPIO9 is left disconnected, GPIO0 is pulled down by a switch via a 330R resistor. People on this thread may disagree with this arrangement but to echo OP, this has always been in our design and has never been an issue for us
- The serial numbers on our modules are the same as those on OP's
I am in contact with Espressif, and am yet to swap out modules, but will update if I find anything significant
Who is online
Users browsing this forum: No registered users and 63 guests