Waveshare ESP32-S3-Zero vs Arduino Nano ESP32 — two S3 boards, two philosophies

Both run the ESP32-S3, but the S3-Zero is a bare castellated module with GPIO-numbered silk, a WS2812 on GPIO21 and a BOOT-to-download flow, while the Nano ESP32 is a u-blox NORA-W106 board with D0-D13/A0-A7 silk, factory USB flashing and a double-tap bootloader. A comparison with sources.

Question this page answers: "The Waveshare ESP32-S3-Zero and the Arduino Nano ESP32 both use the ESP32-S3 — how do they actually differ?"

Both boards put the same SoC family to work — the ESP32-S3, a dual-core Xtensa 32-bit LX7 running at up to 240 MHz — but they wrap it in opposite products. The S3-Zero strips everything down to a castellated board you integrate; the Nano ESP32 keeps the classic Nano experience, complete with an Arduino bootloader that flashes over USB out of the box.

The comparison

Waveshare ESP32-S3-ZeroArduino Nano ESP32Source
ESP32-S3 carrierchip on board: ESP32-S3FH4R2 (4 MB flash + 2 MB Quad SPI PSRAM stacked in the package, per Espressif datasheet v2.2 Table 1-1, PDF p.13; covers SKU 25081/25517 — N8R8 SKUs 33879/33549 differ)u-blox NORA-W106-10B module soldered as M1, embedding the ESP32-S3; 16 MB flash sits in chip U3 on the board, outside the moduleWaveshare wiki Features; Arduino datasheet component table
Flash / PSRAM4 MB + 2 MB in the chip package16 MB board flash (U3) + 8 MB PSRAM inside the moduleboth docs above
Download over USBone Type-C wired to the chip's native USB — no USB-to-UART chip on board; to flash, hold BOOT (GPIO0) while connecting the Type-C cableone Type-C (power, flashing, serial); the built-in Arduino bootloader flashes over USB, and if a sketch locks the board up, double-tap the reset button to enter bootloader modeWaveshare wiki Hardware Description; Arduino datasheet Board Recovery
On-board LEDa single WS2812 RGB on GPIO21 — no plain user LED, and GPIO21 is not an edge padtwo distinct things: D13 (LED_BUILTIN/SCK) maps to GPIO48 per the official arduino-esp32 variant, while the separate RGB (DL1) — three discrete R/G/B LEDs behind R10/R11/R12, not an addressable type — is driven by LED_RED/GREEN/BLUE = GPIO46/0/45Waveshare wiki Hardware Description; Arduino ABX00083 datasheet; ABX00083 schematic p.1; arduino-esp32 variant
Pin namingboard-edge silk prints native GPIO numbers (GP1-GP18, GP38-GP45 style; TX = GPIO43, RX = GPIO44)classic Nano silk D0-D13 / A0-A7; the GPIO number behind each label differs (D2 is GPIO5, D8 is GPIO17...)Waveshare pinout diagram (wiki/product resources); Arduino datasheet JP1/JP2 tables
Form factorcastellated half-holes for soldering onto a host board; within the FH4R2 scope (25081/25517) two SKUs (Zero without headers, Zero-M with); the N8R8 versions are separate SKUsNano footprint, 18 x 45 mm, 2 x 15 pins at 2.54 mm; sold with and without headersWaveshare wiki Introduction; Arduino datasheet
Power notesexternal input 3.7-6 V at the 5V castellated hole; ME6217C33 LDO3.3 V logic; VIN 6-21 V; no 5 V pin — VBUS supplies 5 V only from USBWaveshare wiki; Arduino datasheet power section

How to decide

  1. Embedding into your own PCB → S3-Zero. Castellated half-holes, a ceramic antenna on board and GPIO-numbered silk make it a drop-in module; remember the single WS2812 on GPIO21 when you allocate pins, and that GPIO33-37 are simply not led out on this PCB.
  2. Classic Arduino workflow, shields and tutorials → Nano ESP32. The board ships with the Arduino bootloader, so sketches upload over the one USB-C port without a BOOT dance; the Dn/An silk matches every Nano tutorial. See Nano ESP32 pin numbering for why bare numbers in code need one IDE setting checked.
  3. Recovering a bricked board: both paths are documented — hold BOOT and replug (S3-Zero) versus double-tap reset (Nano ESP32) — but only the Nano ESP32 promises a factory Arduino bootloader on the other side.
  4. Do not mix the naming schemes when following tutorials: a "pin 8" sketch means GPIO8 on the S3-Zero silk but the D8 pad (GPIO17) on the Nano ESP32 under the default Arduino pin-numbering mode.

What this page cannot tell you

  • The S3-Zero's full pad layout is published on this site's board record — 29 contact points known from the image (18 edge castellations + 3 front-inner + 8 back-inner) from the official pinout image, cross-checked against the schematic (silk 5V = net VBUS, P15 pad 18); USB 19/20, RGB 21 and BOOT 0 are board-internal wirings, not pads.
  • Prices and availability — retail territory, not documented here.

Boards

Sources

  • Waveshare wiki: ESP32-S3-Zero — ESP32-S3FH4R2, WS2812 on GPIO21, no USB-to-UART chip, BOOT (GPIO0) download flow, GPIO33-37 PSRAM reservation, castellated form. This wiki text also carries the Octal-PSRAM wording for GPIO33-37; the chip datasheet (v2.2 Table 1-1) lists R2 as Quad — see the board record for the recorded conflict.
  • Waveshare ESP32-S3-Zero product resources — official pinout diagram and schematic cross-checks.
  • Arduino Nano ESP32 documentation (arduino/docs-content commit cb938e9; datasheet) — NORA-W106-10B assembly, 16 MB U3 flash, single USB-C, double-tap bootloader, no-5V-pin rule.