Phipps Electronics

Order within the next 

FREE SHIPPING OVER $199

50,000+ ORDERS

WORLDWIDE SHIPPING

SSL SECURED

The ESP32-S3 DevKitc-1 GPIO Pinouts Guide

Contents

Need to find a GPIO pin on the ESP32-S3 DevKitC-1? Want to learn how to configure it? Read this ESP32-S3 DevkitC-1 pinouts guide.

Introduction

The ESP32-S3 DevKitC-1 is the latest development kit from Espressif that uses its flagship ESP32 device. Once you get a new devkit, you get excited to test its functions. However, as any electronic hobbyist knows, the test usually starts with a Blinky Project. 

Here, you’ll get to know more than just creating a Blinky Project for your ESP32-S3 DevKitC-1. You get one step further by knowing all the available GPIO ports for the user. With this, you won’t find yourself scratching your head asking why one GPIO port doesn’t work.

The ESP32-S3 DevKitC-1 Block Diagram

To start off, here is the basic block diagram of the ESP32-S3 Devkit-C1.

As you can see, the devkit has a USB-to-UART converter module, an LDO, a USB Port, an RGB LED, a Boot and Reset pin, and two Header blocks, besides the main chip ESP32-S3-WROOM.

The ESP32-S3 DevKitC-1 GPIO Pins

Here are the available GPIO pins on the headers of your ESP32-S3 Devkit. Note that they are color-coded according to priority or optional functions. The entries are further explained in the next sections. However, as you’ll see later, not every GPIO pin functions out of the box as a GPIO Port.

ESP32-S3 DevKitC-1 GPIO Pinouts (Left Header)

Pin NumberMarkingFunction
13V33.3V
23V33.3V
3RSTReset Pin
44GPIO4
55GPIO5
66GPIO6
77GPIO7
815GPIO15
916GPIO16
1017GPIO17
1118GPIO18
128GPIO8
133GPIO3
1446GPIO46
159GPIO9
1610GPIO10
1711GPIO11
1812GPIO12
1913GPIO13
2014GPIO14
215Vin5V Supply from USB-C
22GNDGround

ESP32-S3 DevKitC-1 GPIO Pinouts (Right Header)

Pin NumberMarkingFunction
23GNDGround
24GNDGround
2519GPIO19
2620GPIO20
2721GPIO21
2847GPIO47
2948GPIO48
3045GPIO45
310GPIO0
3235GPIO35
3336GPIO36
3437GPIO37
3538GPIO38
3639GPIO39
3740GPIO40
3841GPIO41
3942GPIO42
402GPIO2
411GPIO1
42RXGPIO44
43TXGPIO43
44GNDGround

First Priority GPIO Ports

The first priority GPIO ports are the ones that can be used as GPIO ports after a system boot. These ports are already available at this point, no special setup is required. They are colored green on the header pins table.

  • GPIO1
  • GPIO2
  • GPIO4
  • GPIO5
  • GPIO6
  • GPIO7
  • GPIO8
  • GPIO9
  • GPIO10
  • GPIO11
  • GPIO12
  • GPIO13
  • GPIO14
  • GPIO15
  • GPIO16
  • GPIO17
  • GPIO18
  • GPIO21
  • GPIO38
  • GPIO47
  • GPIO48

With these ports, you just need to set up the GPIO mode to your liking and then proceed with your intended operation. See Working with ESP32 GPIO Ports in ESP-IDF to view more examples of this kind.

				
					    // Set as GPIO input or output
    gpio_set_direction(GPIO_NUM_1, GPIO_MODE_OUTPUT);
    gpio_set_direction(GPIO_NUM_2, GPIO_MODE_INPUT);
    gpio_set_direction(GPIO_NUM_4, GPIO_MODE_OUTPUT_OD);

				
			
				
					// use the GPIO
gpio_set_level(GPIO_NUM_1, 1);
gpio_set_level(GPIO_NUM_4, 0);

if(gpio_get_level(GPIO_NUM_2) == 0)
{
    // some statement
};
				
			

Second Priority GPIO Ports

The second priority GPIO pins have other functions that may affect a particular system or behavior. With this, you have to pay special attention if using them as GPIO affects that behavior. Here are those pins including the extra functions they have.

  • GPIO0 – Boot Strapping Pin Boot Mode
  • GPIO3 – Boot Strapping Pin JTAG
  • GPIO19 – USB
  • GPIO20 – USB
  • GPIO39 – JTAG/MTCK
  • GPIO40 – JTAG/MTDO
  • GPIO41 – JTAG/MTDI
  • GPIO42 – JTAG/MTMS
  • GPIO43 – UART0 TX/Debug
  • GPIO44 – UART0 RX/Debug
  • GPIO45 – Boot Strapping Pin VDD SPI Voltage
  • GPIO46 – Boot Strapping Pin Boot Mode / ROM Messages

Some of these pins might not get set to GPIO by default during bootup. With this, you have to explicitly state to have them set as GPIO. You can do this like what the example statements below do. You can check Working with ESP32 GPIO Ports in ESP-IDF for working examples.

				
					// declare a gpio_config_t variable
gpio_config_t myGPIOconfig;

// configure the GPIO port
gpio_config(&myGPIOconfig);
				
			
				
					// use the gpio_pad_select() function
esp_rom_gpio_pad_select_gpio(GPIO_NUM);
				
			

Optional GPIO Ports

These Optional GPIO ports can be used as long as they are not purposed for Octal SPI Flash or PSRAM functions. This really depends on the model of your ESP32-S3 DevKitC-1. Some models, especially the higher-end WROOM models, may use these pins as extra SPI communication pins for the Flash/PSRAM modules. It’s recommended to check your device datasheet.

  • GPIO35
  • GPIO36
  • GPIO37

SUBSCRIBE FOR NEW POST ALERTS

Subscribe to be the first to know when we publish a new article!
List Subscriptions(Required)

POPULAR POSTS

Scroll to Top