Skip to content
EESP32S Wiki
Documentation/ESP32-S3-Pico: USB Ports, Arduino Upload and Memory Test
PRODUCT DOCUMENTATION

ESP32-S3-Pico: USB Ports, Arduino Upload and Memory Test

Get started with the Waveshare ESP32-S3-Pico, identify its USB/UART path and upload a serial test for the S3R2 board.

Updated Oct 21, 2026 · View product ↗
On this pageWhat this Pico-shaped board containsConnect and identify the upload pathArduino settings for this exampleUpload a minimal memory testConfirm that the program runsUse the correct GPIO mapTroubleshootingDownloads, references and validationCompatible product and related tutorials
Waveshare ESP32-S3-Pico — product reference photo
Product reference photo. Check the printed model, hardware revision and pin labels before wiring.

What this Pico-shaped board contains

This is the Waveshare ESP32-S3-Pico using ESP32-S3R2, 16 MB flash and 2 MB PSRAM. It runs ESP32 firmware, not RP2040 firmware. Its CH334 USB hub and CH343 serial bridge expose different development paths through one USB-C connector. The board’s physical similarity to a Raspberry Pi Pico does not make the electrical pin names interchangeable.

Connect and identify the upload path

Use USB-C and a data cable, with external wiring removed. Observe which USB devices and COM ports appear. For the CH343 UART path, install the WCH driver if the operating system needs it. For native USB, distinguish the boot/download port from the running application’s CDC port; they can have different names.

Arduino settings for this example

Option Setting
Board ESP32S3 Dev Module
Flash Size 16MB
PSRAM QSPI PSRAM for the documented S3R2 board
USB CDC On Boot Enabled
Serial Monitor 115200 baud

The downloadable example was compiled with Arduino-ESP32 3.3.0. Choose the upload mode/port for the USB path you are actually using. Do not copy the 8 MB OPI PSRAM configuration from an S3R8 display board.

Upload a minimal memory test

#include <Arduino.h>
void setup() {
  Serial.begin(115200);
  delay(2000);
}
void loop() {
  Serial.printf("%s | cores=%u | flash=%lu | PSRAM=%lu | free heap=%lu\n",
    ESP.getChipModel(), ESP.getChipCores(),
    (unsigned long)ESP.getFlashChipSize(),
    (unsigned long)ESP.getPsramSize(),
    (unsigned long)ESP.getFreeHeap());
  delay(2000);
}

For native USB download mode, hold BOOT while resetting or connecting the board, then release BOOT and upload. Press RESET afterwards if needed. Waveshare notes that manually entering boot mode is not normally needed for the UART upload path.

Confirm that the program runs

With CDC enabled, monitor the application USB CDC port at 115200. Expect an ESP32-S3 report, 16 MB flash and 2 MB PSRAM for the documented model. If uploading over CH343, the sketch’s Serial output can still appear on the separate CDC port rather than CH343. This distinction prevents mistaking a quiet monitor for a failed upload.

Use the correct GPIO map

Follow the Waveshare ESP32-S3-Pico pin map, which shows ESP32 GPIO names against the Pico-shaped header. A header position called GP0 in an RP2040 example does not mean ESP32 GPIO0. Native USB uses GPIO19/20; do not attach another device to those signals while relying on that USB connection. Reserve flash/PSRAM signals according to the specific board pinout.

Troubleshooting

Problem Check
No board detected USB cable, hub enumeration and CH343 driver
PSRAM error after reset S3R2 board selection and QSPI setting, rather than S3R8 OPI
Serial output invisible USB CDC option and which application COM port is open
RP2040 accessory fails Actual power rails and ESP32 GPIO mapping; mechanical fit alone is insufficient

Downloads, references and validation

Download the minimal Arduino sketch (.zip)

Reviewed 21 October 2026. The downloadable minimal sketch was compiled using Arduino-ESP32 3.3.0 with the board profile recorded in its README. This checks software compilation; wiring, sensor readings and supplied hardware have not been bench-tested.

Browse all product tutorials · Ask ESP32S support

Need help with your board?

Share the product link, hardware revision, software version and any error messages.

Contact ESP32S support →
Shop
Sidebar
Wishlist
0 items Cart
My account
Rates by ExchangeRate-API