Quick Start Guide
This guide gets you from unboxing to blinking LED in about 5 minutes.
Prerequisites
- ESP32-S3-DevKitC-1-N16R8 board
- Micro-USB cable (data-capable, not charge-only)
- Computer with USB port
Connection
-
Connect the USB cable to the UART port (labeled on PCB).
-
Verify connection - The red power LED should illuminate.
-
Check device detection:
Terminal window dmesg | tail -10# Look for: cp210x converter now attached to ttyUSB0ls /dev/ttyUSB*Terminal window ls /dev/cu.usbserial*# orls /dev/cu.SLAB*Check Device Manager → Ports (COM & LPT) for “Silicon Labs CP210x”
First Blink (ESP-IDF)
-
Install ESP-IDF (if not already installed):
Terminal window mkdir -p ~/esp && cd ~/espgit clone -b v5.2 --recursive https://github.com/espressif/esp-idf.gitcd esp-idf && ./install.sh esp32s3source export.sh -
Create and configure project:
Terminal window cd ~/espcp -r $IDF_PATH/examples/get-started/blink .cd blinkidf.py set-target esp32s3idf.py menuconfigIn menuconfig, set
Example Configuration → Blink GPIO numberto:- 38 for V1.1 boards
- 48 for V1.0 boards
-
Build, flash, and monitor:
Terminal window idf.py buildidf.py -p /dev/ttyUSB0 flashidf.py -p /dev/ttyUSB0 monitor
The RGB LED should now be blinking! Press Ctrl+] to exit the monitor.
First Blink (PlatformIO)
-
Create project:
Terminal window mkdir esp32s3-blink && cd esp32s3-blinkpio init -b esp32-s3-devkitc-1 -
Configure for N16R8 - Edit
platformio.ini:[env:esp32-s3-devkitc-1]platform = espressif32board = esp32-s3-devkitc-1framework = arduino; N16R8 memory configurationboard_build.flash_mode = qioboard_build.psram_type = opiboard_upload.flash_size = 16MBboard_build.arduino.memory_type = qio_opimonitor_speed = 115200 -
Write the blink code - Create
src/main.cpp:#include <Arduino.h>// V1.1 uses GPIO38, V1.0 uses GPIO48#define RGB_LED_PIN 38void setup() {Serial.begin(115200);pinMode(RGB_LED_PIN, OUTPUT);Serial.println("ESP32-S3-DevKitC-1 Blink Example");}void loop() {digitalWrite(RGB_LED_PIN, HIGH);Serial.println("LED ON");delay(500);digitalWrite(RGB_LED_PIN, LOW);Serial.println("LED OFF");delay(500);} -
Build and upload:
Terminal window pio run -t uploadpio device monitor
Using the RGB LED Properly
For full RGB control with NeoPixel library:
#include <Arduino.h>#include <Adafruit_NeoPixel.h>
#define RGB_LED_PIN 38 // V1.1#define NUM_LEDS 1
Adafruit_NeoPixel led(NUM_LEDS, RGB_LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() { led.begin(); led.setBrightness(50); // 0-255}
void loop() { // Cycle through colors led.setPixelColor(0, led.Color(255, 0, 0)); // Red led.show(); delay(500);
led.setPixelColor(0, led.Color(0, 255, 0)); // Green led.show(); delay(500);
led.setPixelColor(0, led.Color(0, 0, 255)); // Blue led.show(); delay(500);}Add to platformio.ini:
lib_deps = adafruit/Adafruit NeoPixel@^1.12.0Troubleshooting
Board Not Detected
- Try a different USB cable (must be data-capable)
- Try the other USB port on the board
- Install CP210x drivers
Upload Fails
- Hold BOOT button while pressing RST, then release both
- Try lower upload speed:
upload_speed = 460800 - Check that no other program is using the serial port
LED Not Blinking
- Verify GPIO number matches your board version (38 vs 48)
- Check that you’re using the correct LED library for addressable LEDs