-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Description
Board
Custom PCB with ESP32-PICO-D4
Device Description
I have a custom PCB with an ESP32-PICO-D4 (placed by JLCPCB partnr. C193707) connected with a CP2102N-A02-GQFN24R UART bridge from SILICON LABS (JLCPCB partnr C969151).
Hardware Configuration
During troubleshooting GPIOs except IO0 have been disconnected manually on the PCB from any in or output. All are floating.
Version
latest master (checkout manually)
IDE Name
PlatformIO
Operating System
Windows 11
Flash frequency
40MHz
PSRAM enabled
no
Upload speed
115200, also tried lower
Description
When trying to communicate with the flash chip a warning about not being able to reach flash. This seems to be regardless of sketch, upload method and so on.
The behaviour is pretty much the same as in issue #7519. Sadly none of the suggested fixes have worked for my problem. GPIO 12 was connected to a status LED and was disconnected like all other GPIOs (removed resistors and so on on the PCB to let pins float). Additionally the described step of burning the efuse for the flash voltage was executed sucessfully. The message can be found in the debug section.
I have five PCBs of the same type and all of them show the same behavior. I have tried multiple computers running Windows 10 and 11 without success. I've tried connecting at different baudrates down to 19200. I've tried uploading blink examples using Ardino IDE, PlatformIO in VSCode and the espressif flash tool version 3.9.5. Also just burning the bootloader using the Arduino IDE or the espressif flash tool fails.
I've checked the power supply during the flash attemts with an oscilloscope and did not find a problem(stable at 3.36V). The PCB draws 1.17W at 24V, there are two buck converters and two LDOs (5V and 3.3V) for a stable power supply. The power consumption seems somewhat reasonable. Still, I also tried supplying 5V directly using lab bench. This did not change anything either.
Even though the UART bridge seems to be working fine, I also manually installed the newest drivers by Silicone Labs.
I understand that it is near impossible for a community member to reproduce this issue, but I'm all out of guesses and don't know how to proceed with debugging. I'm happy to try any debugging suggestions you have.
There is an interesting difference between the error message shown issue #7519 and my Debug Message 2. Manufacturer: ff and Device: ffff vs. Manufacturer: 00 and Device: 0000. Does this mean all my ESPs are just fried?
Sketch
Any blink example will do.
Debug Message
Debug Message 1: on command "esptool.py -p com9 flash_id"
esptool.py v4.7.dev1
Serial port com9
Connecting...
Failed to get PID of a device on com9, using standard reset sequence.
..
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting...
Failed to get PID of a device on com9, using standard reset sequence.
..
Detecting chip type... ESP32
Chip is ESP32-PICO-D4 (revision v1.1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 64:b7:08:90:d7:30
Uploading stub...
Running stub...
Stub running...
WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.
Manufacturer: 00
Device: 0000
Detected flash size: Unknown
Hard resetting via RTS pin...
Debug Message 2: on command "espefuse.py -p COM9 set_flash_voltage 3.3V"
espefuse.py v4.7.dev1
Connecting......
Detecting chip type... Unsupported detection protocol, switching and trying again...
Connecting.....
Detecting chip type... ESP32
=== Run "set_flash_voltage" command ===
Enable internal flash voltage regulator (VDD_SDIO) to 3.3V.
VDD_SDIO setting complete.
Check all blocks for burn...
idx, BLOCK_NAME, Conclusion
[00] BLOCK0 is not empty
(written ): 0x0000000401082226000004330000aab000bd64b70890d73000000000
(to write): 0x00000000000000000001c00000000000000000000000000000000000
(coding scheme = NONE)
.
This is an irreversible operation!
Type 'BURN' (all capitals) to continue.
BURN
BURN BLOCK0 - OK (all write block bits are set)
Reading updated efuses...
Successful
Debug Message 3: Part of the espressif flash tool log:
*************************** START ****************************
START TIME: 202310011014
CONNECT BAUD: 115200
set state: ESP_DL_SYNC
serial port opened
-----------
baud:115200
root baud:115200
-------------
===============BAUD : 115200===============CALL DEVICE SYNC
connecting...
mac l: 0x890d730
mac h: 0xbd64b7
crc_cal: 189
crc_read: 189
crc_test: 0
ESP32 MAC CRC OK
get mac res: 1
get flash id : 0x00000000
manufacturer_id: 0x0
device_id: 0x0
set STOP FLG: Trueset state: ESP_DL_STOP
Other Steps to Reproduce
No response
I have checked existing issues, online documentation and the Troubleshooting Guide
- I confirm I have checked existing issues, online documentation and Troubleshooting guide.