Pin Selection of ESP32-S3-WROOM-1

I am working on an ESP32-S3 project and need to interface multiple peripheral devices using UART and I2C protocols. However, the datasheet does not clearly specify which GPIO pins correspond to specific UART and I2C ports, which is causing some uncertainty.

I have assigned the following GPIOs for communication and would like confirmation on whether this configuration will work correctly:

GPIO19 - I2C - SDA
GPIO20 - I2C - SCL

GPIO10 - UART - TX
GPIO11 - UART - RX

GPIO17 - UART - TX
GPIO18 - UART - RX

Also what If I swap GPIO10 TX with GPIO11 RX in assignment

DataSheet : https://www.espressif.com/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_en.pdf

Are you using any development boards or just the chip

Just the Chip.

For 12c
the default pins are
GPIO21 (Default for I2C SDA)
GPIO22 (Default for I2C SCL)

you can use these as alternatives
GPIO17 and GPIO16
GPIO5 and GPIO4
GPIO18 and GPIO19

It will work ,Your pin configuration is okay ,how do you plan on programming the ESP32

I will program using Platform IO

i meant the chip do you have a programmer something .

I will program through RX0 /TX0

1 Like

Sry for my doubts i have never uploaded code to chip i usually i use dev boards .So can you tell me how do you upload the code from your system to the chip

You pull the IO0 Pin to Ground then Reset the ESP32 by pulling EN Pin to Ground. This prodecure put ESP32 to BootLoad Mode. Then you upload the compile bin file thorugh RX0/TX0 pin.

I am using push button to pull-down pins.

After upload complete, Reset the ESp32 again to start running.

1 Like

so from usb line rx, tx and ground then 5v is reduced to 3.3v and connected to the device?

You just have to supply 3.3v Gnd Rx and Tx. You can use USB to TTL converter or any thing else. Your PC will right the BIN file to ESP32 thorugh TTL Protocol.

1 Like

Thanks buddy for the information :+1:

For your concerns
As long as you’re not using GPIO17 and GPIO18 for debugging (via the USB serial port), your pin assignments should work well. If you need UART0 for debugging, consider using other available GPIOs like GPIO16, GPIO14, or others for your UART connections.

Do remember that whilst you can use the default pins for interfaces, on the ESP32S3 you can easily re-assign the pins used by the UART,SPI,I2C and MMX interfaces.

Which simulator you are using

A post was split to a new topic: Which pins to use on ESP32-S3 camera dev board?