espressif / esptool

Espressif SoC serial bootloader utility
https://docs.espressif.com/projects/esptool
GNU General Public License v2.0
5.59k stars 1.39k forks source link

esptools cannot connect to ESP32-C3-WROOM-02 "no serial data received" (ESPTOOL-900) #998

Closed fachat closed 3 months ago

fachat commented 3 months ago

Operating System

Linux Mint 21.2 (based on Ubuntu 2.04)

Esptool Version

v4.7.0

Python Version

Python 3.10.12

Chip Description

ESP32-C3-WROOM-02

Device Description

A self-developed breakout board. The schematics is here: https://github.com/fachat/upet_wifi/tree/main/Board I have in the meantime added a pullup to pin 7 (GPIO 8) to reliably get into serial download mode.

Also, I have connected a USB-serial to RXD/TXD instead (with 1k/1.5k voltage divider to get from 5V to 3.3V; also disconnected TXA from the on-board UART to no interfere with the USB serial)

Hardware Configuration

GPIO 4,5,6,7 are connected as serial interface (to be used for AT commands)

How is Esptool Run

Terminal / command line

Full Esptool Command Line that Was Run

esptool.py -p /dev/ttyACM0 -b 115200 read_mac

Esptool Output

sptool.py v4.7.0
Serial port /dev/ttyACM0
Connecting......................................

A fatal error occurred: Failed to connect to Espressif device: No serial data received.
For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

More Information

I measured the RXD and TXD lines with the scope.

After normal reset I see a lot of "Invalid header: 0xffffffff" lines on TXD (from the ESP32 to the PC). I can see these when connecting to the /dev/ttyACM0 device with a terminal program (minicom).

After booting into serial boot loader mode, and running the esptool.py, I see data arriving at RXD on the scope, but no response coming from the ESP.

I scoped VCC, it seems to be rock solid. (I have a 10uF bulk capacitor as advised on one of your reference schematics IIRC)

I checked with "lsof" that there is no other process open on the serial device.

Other Steps to Reproduce

No response

I Have Read the Troubleshooting Guide

fachat commented 3 months ago

Additional comment: When I boot into download mode (pull GPIO9 low, pull GPIO8 high, pull EN low and release), I get:

invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xfESP-ROM:esp32c3-api1-20210207
Build:Feb  7 2021
rst:0x1 (POWERON),boot:0x4 (DOWNLOAD(USB/UART0/1))
waiting for download

Unfortunately, neither if I do that and control with minicom (and exit before calling esptool.py), or if I just check with the scope that no output is coming on the ESP TXD line, esptool.py behaves the same and cannot connect.

dobairoland commented 3 months ago

I'm sorry but this is out-of-scope for us, esptool developers. You have clearly trouble with the board design. This might help you: https://www.espressif.com/en/contact-us/circuit-schematic-pcb-design-review

Those all FFs mean that the flash is not yet flashed. That is expected in the given situation.

However, if you are able to reach that waiting for download state then you might be able to flash it with esptool. Keep those GPIOs connected and start esptool. It might succeed. If not then there might be other PCB design issues affecting the serial transfer.

fachat commented 3 months ago

I have a new PCB in production with the fixes I did so far.

There might be a chance that I have blown the RXD pin by exposing it to a 5V serial signal instead of 3.3V.

So, I'll test with the new PCB when it's there, and properly protected RXD.