Page 1 of 1

ESP32-S3 - 3 UARTs + USB possible?

Posted: Thu Feb 01, 2024 2:53 pm
by reb515
Hello,

I have a quick question to determine whether the ESP32-S3 is suitable for my project.
It is not clear to me if the USB interface uses one of the three available UART interfaces.
I need all three UARTs for peripherals and also want to use the USB CDC connection for programming and debug messages.
Is this possible?

Thanks

Re: ESP32-S3 - 3 UARTs + USB possible?

Posted: Mon Feb 05, 2024 1:02 am
by girishv6991
There are 2UART + USB in ESP32-C3

I am using the 2UARTS for application and USB-Serial device for programming and also logging. I have also tried JTAG successfully.

I suppose you can use 3 UART + USB in ESP32-S3

Re: ESP32-S3 - 3 UARTs + USB possible?

Posted: Wed Feb 14, 2024 9:36 am
by tore-espressif
Hi,
ESP32-S3 has 3 UARTs and 1 USB-OTG peripheral. So this is possible, but you must be very careful in you HW design:

Usually, ESP32-S3 devkits use UART0 as their main programming and logging interface. If you want to use UART0 in your application, you must
1. disable this feature in menuconfig (for both bootloader logs output and application logs output)

Code: Select all

Bootloader config → Bootloader log verbosity -> No output
Boot ROM Behavior → Permanently change Boot ROM output -> Permanently disable logging
Component config → ESP System Settings → Channel for console output -> USB Serial/JTAG Controller
2. make sure that there is no other device on the UART0 (on the standard devkits, there is typically a USB<->UART converter)

Then, you can use USB-Serial-JTAG for application programming and debugging. This is enabled be default, so there is no need to configure anything.

Just for completeness, if you use the USB-Serial-JTAG as your main debugging interface, you won't be able to use any other USB features (such as USB host, or TinyUSB device)