Protoship Finish my build

Arduino Nano ESP32: pinout, pin numbering, power and ESPHome

The Arduino Nano ESP32 (ABX00083) is an ESP32-S3 board built on the u-blox NORA-W106 module, with 16 MB flash, 8 MB octal PSRAM and USB-C. Each pin has two numbers, the Arduino label and the ESP32-S3 GPIO, and they differ: D2 is GPIO5. In ESPHome use the board arduino_nano_esp32 with flash_size: 16MB, psram: mode: octal and GPIO numbers.

Pin map

From Arduino's cheat sheet. I2C is on A4 and A5.

Arduino pinGPIOArduino pinGPIO
D044D1247
D143D1348
D25A01
D36A12
D47A23
D58A34
D69A4 (SDA)11
D710A5 (SCL)12
D817A613
D918A714
D1021BOOT046
D1138BOOT10

Pin numbering: Arduino pins or GPIO numbers

The Arduino IDE has a setting under Tools, Pin Numbering: "By Arduino pin (default)" and "By GPIO number (legacy)". With the default, digitalWrite(2, HIGH) drives D2, which is GPIO5. Libraries that talk to the hardware directly, such as OneWire, FastLED and ESP32Servo, need "By GPIO number". If a library ignores your pin or drives the wrong one, this setting is the first thing to check.

ESPHome's board entry for the Nano ESP32 defines no D-pin names, so in YAML you always write GPIO numbers: D2 is GPIO5, A4 is GPIO11.

Power

USB-C
4.8–5.5 V.
VIN
6–21 V recommended in the datasheet; the cheat sheet says 5–18 V.
3.3 V rail
From an MP2322GQH buck converter. Arduino does not state how much current external parts may draw from it in the documents we read.
5 V
There is no 5V pin. VBUS carries 5 V only while the board runs from USB.
Pins
3.3 V only. Each GPIO sources up to 40 mA and sinks up to 28 mA.

Servos and LED strips need 5 V from the supply side, not from the board; see ESP32 power over USB-C.

ESPHome config

ESPHome assumes 4 MB flash unless told otherwise, and on the ESP32-S3 the PSRAM mode has to be set. The settings below are derived from ESPHome's ESP32 and PSRAM documentation together with the board's datasheet (16 MB flash, 8 MB octal PSRAM); we validated the file with esphome config on ESPHome 2026.10.2.

esphome:
  name: nano-esp32

esp32:
  board: arduino_nano_esp32
  flash_size: 16MB
  framework:
    type: esp-idf

psram:
  mode: octal

logger:

api:

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

STEP file for a case

Arduino publishes a STEP model (the zip contains NANO_ESP32.step). Model the case around it and leave the USB-C opening wide enough for the plug and a hole to reach the reset button. More in ESP32 case.

Recovery when uploads stop working

Double-press the reset button while the RGB LED flashes. A slow green pulse means the board is in bootloader mode and accepts an upload again. On some early boards green and blue are swapped, so the pulse may be blue.

Let your agent check it

check_project reads your sketch, ESPHome or PlatformIO file and flags D-numbers used where GPIO numbers are expected, plus pins that clash with the ESP32-S3's strapping or PSRAM pins. Connect the Protoship MCP server once:

claude mcp add --transport http protoship https://mcp.protoship.dev
codex mcp add protoship --url https://mcp.protoship.dev

An agent without MCP calls GET https://protoship.dev/api/check?url=… with the link to your repo or config file.

Questions

Why does pin 2 not work on my Arduino Nano ESP32?

Pin numbers depend on the Pin Numbering setting. By default, 2 means D2, which is GPIO5. Libraries such as OneWire, FastLED and ESP32Servo need "By GPIO number", and ESPHome always uses GPIO numbers.

Does the Arduino Nano ESP32 have a 5V pin?

No. VBUS carries 5 V only while the board is powered over USB. Pins are 3.3 V only.

How do I put the Nano ESP32 into bootloader mode?

Double-press the reset button while the RGB LED flashes. A slow green pulse (blue on some early boards) means bootloader mode.

Which ESPHome settings does the Nano ESP32 need?

board: arduino_nano_esp32, flash_size: 16MB and psram mode: octal, with GPIO numbers for pins. Derived from ESPHome's ESP32 and PSRAM docs and the datasheet; validated with ESPHome 2026.10.2.

Finish my build Let your agent check your project

Sources

Read on 4 November 2026.