Was able to upload to ESP32S3 once, but not able to upload anymore

Hello,

I created a custom board for the ESP32S3-WROOM-16R8, after fiddling around with the ESP32-S3-DevKitC-1 and getting everything to work.

Two days ago I was able to upload code to the board, but now I am unable to and get the error:

A serial exception error occurred: Write timeout

Note: This error originates from pySerial. It is likely not a problem with esptool, but with the hardware connection or drivers.

For troubleshooting steps visit: https://docs.espressif.com/projects/esptool/en/latest/troubleshooting.html

The way I upload to the board is:

  1. Get the board into boot mode with pressing/holding GPIO0 & Pressing/releasing RESET
  2. A new COM port appears, so I select that in the IDE
  3. Select UPLOAD.

The settings used are:
USB CDC On Boot: Enabled
CPU Frequency: 240MHz
Core Debug Level: Debug
USB DFU On Boot: Disabled
Erase All Flash Before Sketch Upload: Enabled
Events Run On: Core 1
Flash Mode: DIO 80MHz
Flash Size: 16MB
JTAG adapter: Disabled
Arduino runs on: Core 1
USB Firmware MSC On Boot: Disabled
Partition scheme: 8m with spiffs
PSRAM: OPI PSRAM
Upload Mode: UART0/HardwareCDC
Upload Speed: 115200
USB Mode: Hardware CDC and JTAG
Zigbee Mode: Disabled

Im pretty sure the connection between the PC and MCU is solid, since the code uploaded on the first day writes over serial and looks as the following:

I cannot upload the schematics, but here are some pics:


Also I have tried:

  1. A different PC with a clean Arduino IDE install
  2. A second (Similar board), Which has the same issue. Able to upload once but not anymore after.
  3. The Devkit which has no issues whatsoever

I cant seem to figure out what is going on, does anyone have Ideas or dealt with a similar issue?

Kind regards,
Yari

@jim-p do you happen to have an Idea?

Did you try the troubleshooting steps suggesed in the error message?

@jim-p
Hello Jim,

Yes, I did.

the powersupply is a crisp supply at 3.3V with the possibilty to draw 1A.
This was checked with the scope.

All required GPIO's (for esp32s3 there seem to be different then for esp32) are disconnected.

I cannot check if the bootloader is missing, since I am not able to connect to the device.

Also I tried erasing flash via esptool.py, but this gives the same error.

The Serial port is working, since the code uploaded yesterday talks over the serial.
This also indicates that the cable is fine.

Kind regards,
Yari

I think that the Flash Mode should be QIO 80MHz
Try a slower download speed (115200)

Found the issue!

GPIO46 was left floating, this shouldnt be an issue because there is an internal pull down.
However when checking there was 1.6v on the pin, if pulled down it uploads!

1 Like

That is true.
Can't explain the 1.6V
Glad you got it working