Page 1 of 1

Programming ESP32-S3 in custom board

Posted: Tue Sep 24, 2024 8:55 am
by AndreaS73
I'm developing a custom board for ESP32-S3. I mounted a quick and dirty prototype and it seems to work, but I have some confusion about the settings in Visual Studio Code and the actual behavior of the board.

The hardware is pretty straight-forward:
  • pull-up on chip-enable
  • all the bootstraping pins are left unconnected
  • USB D- and D+ connected to GPIO19 and GPIO20
Then I set Visual Studio Code with the ESP-IDF extension as follow:
  • ESP-IDF version: 5.3.0
  • Device targer: ESP32-S3
  • Flash method: UART (/dev/ttyACM0)
I can successfully build and flash the firmware. But at the end extension says:

> Hard reset using RST pin

but the RST pin is *not* connected!
It would be if I had used the external USB/UART chip with the BJT circuit to control GPIO0 and RST pins...

Is it correct that using the "native" USB connection (so the "UART" flash method seems misleading to me) I don't need to control GPIO0 and RST at all? I can also remove the push-buttons on my board to manually force them?

Re: Programming ESP32-S3 in custom board

Posted: Wed Sep 25, 2024 8:04 am
by ESP_Sprite
AndreaS73 wrote:
Tue Sep 24, 2024 8:55 am
Is it correct that using the "native" USB connection (so the "UART" flash method seems misleading to me) I don't need to control GPIO0 and RST at all? I can also remove the push-buttons on my board to manually force them?
Mostly, yes. The internal USB-serial-JTAG converter can usually get your ESP32 in or out of bootloader mode all by itself. Note the 'usually' there: there are ways to 'break' the USB connection, e.g. by going into sleep mode immediately, or by reconfiguring the USB pins to something else. That's why you probably want to keep the GPIO0 button, just in case you need it. The RESET button you can probably remove if you can easily cut the power to the ESP32 (on/off switch, pull the plug, ...)