Documentation

ShillehTek ESP32-S3 DevKitC-1 Dev Board Presoldered | ShillehTek Product Manual
Documentation / ShillehTek ESP32-S3 DevKitC-1 Dev Board Presoldered | ShillehTek Product Manual

ShillehTek ESP32-S3 DevKitC-1 Dev Board Presoldered | ShillehTek Product Manual

manualshillehtek

Overview

The ESP32-S3 DevKitC-1 is Espressif's official reference development board built around the powerful ESP32-S3 SoC. It pairs a dual-core Xtensa LX7 processor running at 240 MHz with Wi-Fi 4 (802.11 b/g/n) and Bluetooth 5 (LE) with Mesh support, giving you a modern, high-performance platform for IoT prototypes, AI-at-the-edge experiments, and connected product development.

Compared to the classic ESP32, the S3 brings more GPIO (up to 45 programmable pins), native USB support, vector instructions for machine learning acceleration, and a much larger pool of touch pins (14). This particular DevKitC-1 module ships with pre-soldered headers, dual USB-C ports (one CP2102 UART and one native USB), and an onboard addressable RGB LED on GPIO38 — everything you need to plug it into a breadboard and start building.

The board works out of the box with the Arduino IDE, ESP-IDF, PlatformIO, MicroPython, and CircuitPython. It's a great step up from UNO-class boards for projects that need serious processing power, wireless connectivity, or camera/audio peripherals.

At a Glance

Chipset
ESP32-S3-WROOM-1
Core
Dual Xtensa LX7 @ 240 MHz
Wireless
Wi-Fi 4 + BLE 5 Mesh
Operating Voltage
3.3V (5V USB in)
GPIO / Touch
45 GPIO / 14 Touch
USB
Dual USB-C (UART + Native)

Specifications

Parameter Value
Chip / Module ESP32-S3-WROOM-1
CPU Dual-core Xtensa LX7, up to 240 MHz
Operating Voltage 3.3V (5V input via USB-C)
Wi-Fi 802.11 b/g/n (2.4 GHz)
Bluetooth Bluetooth 5 (LE), BLE Mesh
SRAM 512 KB
ROM 384 KB
Flash 8 MB (typical) or 16 MB variants
GPIO Pins 45 programmable GPIOs
Touch Pins 14 capacitive touch channels
ADC 2× 12-bit SAR ADC, 20 channels
Communication UART ×3, I2C ×2, SPI ×4, I2S ×2, TWAI (CAN), USB OTG
USB Interfaces CP2102 USB-to-UART + native USB-OTG
Onboard LED Addressable RGB LED on GPIO38 (WS2812)
Dimensions ~68 × 28 mm

Pinout Diagram

ESP32-S3 DevKitC-1 pinout diagram showing 3V3, GND, EN, dual USB-C ports, GPIO0 BOOT, GPIO38 RGB LED, default I2C pins GPIO8/GPIO9, SPI pins GPIO10-13, and all 45 programmable GPIOs including 14 touch-capable pins

Wiring Guide

Powering the DevKitC-1

Power the DevKitC-1 through either USB-C port. The UART port (labeled USB) uses the CP2102 chip for flashing and serial monitor, while the USB port is connected directly to the ESP32-S3's native USB peripheral. For most projects, start with the UART port — it's the most forgiving for uploads.

ESP32-S3 DevKitC-1 Pin Function
5V / VBUS 5V input from USB
3V3 3.3V regulated output (up to 500 mA)
GND Ground (multiple pins)
EN Chip enable (active high, has pull-up)
3.3V logic: All GPIOs are 3.3V. Do not connect 5V signals directly — use a level shifter or voltage divider for 5V sensors and modules.

I2C Peripheral Wiring

The default I2C pins on the ESP32-S3 are GPIO8 (SDA) and GPIO9 (SCL), though you can remap I2C to almost any GPIO via software.

I2C Device Pin ESP32-S3 Pin
VCC 3V3
GND GND
SDA GPIO8
SCL GPIO9
Pull-ups: Most breakout boards include 4.7kΩ pull-ups to 3.3V. If your module doesn't, add them to SDA and SCL.

SPI Peripheral Wiring

The ESP32-S3 exposes multiple SPI peripherals. The default hardware SPI (FSPI / SPI2) maps to GPIO10 (CS), GPIO11 (MOSI), GPIO12 (SCK), and GPIO13 (MISO).

SPI Device Pin ESP32-S3 Pin
VCC 3V3
GND GND
SCK GPIO12
MOSI GPIO11
MISO GPIO13
CS GPIO10 (or any free GPIO)

UART Wiring

UART0 is shared with the CP2102 for programming and Serial Monitor output. For connecting external UART devices (GPS, LoRa, etc.), use UART1 or UART2 on any two free GPIOs.

External Device ESP32-S3 Pin
VCC 3V3 (or 5V if device supports)
GND GND
Device TX GPIO18 (ESP32 RX)
Device RX GPIO17 (ESP32 TX)
3.3V only: Connecting a 5V TX signal to an ESP32-S3 GPIO can damage the chip. Always verify the logic level of your UART peripheral.

Code Examples

Onboard RGB LED (GPIO38)

rgb_blink.ino
// ESP32-S3 DevKitC-1 onboard RGB LED (WS2812 on GPIO38).
// Install "Adafruit NeoPixel" from Library Manager.

#include <Adafruit_NeoPixel.h>

#define LED_PIN   38
#define NUM_LEDS  1

Adafruit_NeoPixel led(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  led.begin();
  led.setBrightness(40);
  led.show();
}

void loop() {
  led.setPixelColor(0, led.Color(255, 0, 0)); led.show(); delay(500);
  led.setPixelColor(0, led.Color(0, 255, 0)); led.show(); delay(500);
  led.setPixelColor(0, led.Color(0, 0, 255)); led.show(); delay(500);
}

Wi-Fi Station Connect

wifi_connect.ino
#include <WiFi.h>

const char* ssid     = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("Connecting to WiFi...");

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println();
  Serial.print("Connected! IP: ");
  Serial.println(WiFi.localIP());
  Serial.print("RSSI: ");
  Serial.println(WiFi.RSSI());
}

void loop() { }

I2C Scanner

i2c_scanner.ino
#include <Wire.h>

#define SDA_PIN 8
#define SCL_PIN 9

void setup() {
  Serial.begin(115200);
  Wire.begin(SDA_PIN, SCL_PIN);
  delay(500);
  Serial.println("I2C Scanner starting...");
}

void loop() {
  byte count = 0;
  for (byte addr = 1; addr < 127; addr++) {
    Wire.beginTransmission(addr);
    if (Wire.endTransmission() == 0) {
      Serial.print("Found device at 0x");
      if (addr < 16) Serial.print("0");
      Serial.println(addr, HEX);
      count++;
    }
  }
  Serial.print("Total: "); Serial.println(count);
  delay(3000);
}

Capacitive Touch Read

touch_read.ino
// The ESP32-S3 has 14 touch-capable pins: T1-T14 (GPIO1 - GPIO14).
// Touch a wire connected to the pin to see the value change.

#define TOUCH_PIN T1   // GPIO1

void setup() {
  Serial.begin(115200);
}

void loop() {
  uint32_t value = touchRead(TOUCH_PIN);
  Serial.print("Touch value: ");
  Serial.println(value);
  if (value > 30000) Serial.println("Touched!");
  delay(200);
}

Frequently Asked Questions

Which board do I select in the Arduino IDE?
Select ESP32S3 Dev Module under the "esp32" board package (install via Boards Manager). Set Flash Size to 8MB (or 16MB depending on your variant) and USB CDC On Boot to "Enabled" if you want Serial output over the native USB port.
Which USB-C port should I use for flashing?
Use the UART port (the one routed through the CP2102 chip) for your first uploads — it handles auto-reset into bootloader mode reliably. The second USB port is the ESP32-S3's native USB, which is great for projects that need USB HID, USB MSC, or CDC-ACM, but requires the USB CDC feature to be enabled.
My uploads fail with "Failed to connect" — how do I fix it?
Hold down the BOOT button, tap RESET (EN), then release BOOT. The board is now in download mode — retry the upload. Also double-check you're using a data-capable USB-C cable (not charge-only).
Can I run machine learning on this board?
Yes. The ESP32-S3 includes vector instructions that accelerate INT8 matrix multiplies, making it suitable for small neural networks via TensorFlow Lite Micro or Edge Impulse. You'll get the best results when paired with PSRAM-equipped variants.
What languages and frameworks are supported?
Arduino IDE, ESP-IDF, PlatformIO, MicroPython, CircuitPython, Zephyr, and NuttX all support the ESP32-S3. Arduino is the easiest starting point; ESP-IDF gives you the most control over low-level features like USB OTG and Wi-Fi stacks.
How is it different from the original ESP32?
The S3 uses the newer Xtensa LX7 cores (vs LX6 on ESP32), adds native USB support, vector instructions for AI workloads, more GPIOs (45 vs 34), more touch channels (14 vs 10), and upgraded Bluetooth 5 LE. Both run at 240 MHz with Wi-Fi 4, but the S3 is better suited to modern IoT and AI-at-the-edge use cases.
What's the PlatformIO environment name?
Use board = esp32-s3-devkitc-1 in your platformio.ini. Pair it with platform = espressif32 and framework = arduino (or espidf) depending on your workflow.

Related Tutorials

We're building out step-by-step ESP32-S3 tutorials — check the ShillehTek Blog for the latest guides on Wi-Fi, Bluetooth, sensor integration, and AI-at-the-edge projects using this board.