Nexinon

Pinout Reference

Look up pin functions, peripherals, and safety warnings for Arduino Uno, Nano, and ESP32.

ATmega328P · 5V logic
ATmega328PAREF — External voltage reference for the analog-to-digital converter — used only when analogReference(EXTERNAL) is called in the sketch.AREFGND — The board's ground reference (0V) — present on more than one header pin.GNDD13 — The SPI bus's SCK (clock) line — also the onboard LED (LED_BUILTIN).D13D12 — The SPI bus's MISO/CIPO line.D12D11 — General-purpose digital pin with PWM output (Timer2) and the SPI bus's MOSI/COPI line.D11D10 — General-purpose digital pin with PWM output (Timer1) and the SPI bus's Chip Select (SS).D10D9 — General-purpose digital pin with PWM output (Timer1).D9D8 — General-purpose digital pin, no PWM.D8D7 — General-purpose digital pin, no PWM.D7D6 — General-purpose digital pin with PWM output (Timer0) — the same timer used internally by millis()/micros()/delay().D6D5 — General-purpose digital pin with PWM output (Timer0) — the same timer used internally by millis()/micros()/delay().D5D4 — General-purpose digital pin, no PWM.D4D3 — General-purpose digital pin with PWM output (Timer2) — also supports external interrupt (INT1).D3D2 — General-purpose digital pin — supports external interrupt (INT0), useful for reacting to an event without polling.D2D1 — Serial transmit (TX) — also used by the USB-serial bridge while uploading a sketch.D1D0 — Serial receive (RX) — also used by the USB-serial bridge while uploading a sketch.D0IOREF — Signals the board's logic voltage (5V on the Uno) to shields that need to adapt automatically — doesn't exist on the Nano.IOREFRESET — Resets the microcontroller when pulled low — the board itself uses it for the automatic reset before every upload.RESET3V3 — Regulated 3.3V output, 50 mA maximum current — never a power input.3V35V — The board's 5V rail — powers the microcontroller and any attached peripheral.5VGND — The board's ground reference (0V) — present on more than one header pin.GNDVIN — Unregulated external power input, 7-12V recommended — feeds the onboard regulator that produces the 5V rail.VINA0 — Analog input (ADC0) — 10-bit resolution, 0-5V.A0A1 — Analog input (ADC1) — 10-bit resolution, 0-5V.A1A2 — Analog input (ADC2) — 10-bit resolution, 0-5V.A2A3 — Analog input (ADC3) — 10-bit resolution, 0-5V.A3A4 — Analog input (ADC4) and the I2C bus's SDA line — the board's only I2C bus.A4A5 — Analog input (ADC5) and the I2C bus's SCL line — the board's only I2C bus.A5
27 of 27 pins
Digital/analog pins

Serial receive (RX) — also used by the USB-serial bridge while uploading a sketch.

Serial transmit (TX) — also used by the USB-serial bridge while uploading a sketch.

General-purpose digital pin — supports external interrupt (INT0), useful for reacting to an event without polling.

General-purpose digital pin with PWM output (Timer2) — also supports external interrupt (INT1).

General-purpose digital pin, no PWM.

General-purpose digital pin with PWM output (Timer0) — the same timer used internally by millis()/micros()/delay().

General-purpose digital pin with PWM output (Timer0) — the same timer used internally by millis()/micros()/delay().

General-purpose digital pin, no PWM.

General-purpose digital pin, no PWM.

General-purpose digital pin with PWM output (Timer1).

General-purpose digital pin with PWM output (Timer1) and the SPI bus's Chip Select (SS).

General-purpose digital pin with PWM output (Timer2) and the SPI bus's MOSI/COPI line.

The SPI bus's MISO/CIPO line.

The SPI bus's SCK (clock) line — also the onboard LED (LED_BUILTIN).

Analog input (ADC0) — 10-bit resolution, 0-5V.

Analog input (ADC1) — 10-bit resolution, 0-5V.

Analog input (ADC2) — 10-bit resolution, 0-5V.

Analog input (ADC3) — 10-bit resolution, 0-5V.

Analog input (ADC4) and the I2C bus's SDA line — the board's only I2C bus.

Analog input (ADC5) and the I2C bus's SCL line — the board's only I2C bus.

Special

External voltage reference for the analog-to-digital converter — used only when analogReference(EXTERNAL) is called in the sketch.

Resets the microcontroller when pulled low — the board itself uses it for the automatic reset before every upload.

Signals the board's logic voltage (5V on the Uno) to shields that need to adapt automatically — doesn't exist on the Nano.

Power

Regulated 3.3V output, 50 mA maximum current — never a power input.

The board's 5V rail — powers the microcontroller and any attached peripheral.

The board's ground reference (0V) — present on more than one header pin.

Unregulated external power input, 7-12V recommended — feeds the onboard regulator that produces the 5V rail.

One reference, three different boards

The Arduino Uno and Nano use the same microcontroller (ATmega328P) and so share nearly all their pinout — the real difference is the physical form factor, the USB connector, and two extra analog pins (A6/A7) that only the Nano exposes. The ESP32 DevKit is a completely different board under the hood: a different microcontroller, a different logic voltage (3.3V instead of 5V), and a much more flexible peripheral architecture (almost any pin can become PWM, I2C, or SPI). Pick a board at the top of this page before searching for a pin.

What each peripheral acronym means

ADC reads an analog signal (a varying voltage, e.g. a potentiometer or sensor) and converts it into a number; PWM fakes an analog output by varying the width of a very fast digital pulse (e.g. controlling an LED's brightness); I2C and SPI are two communication buses for talking to other chips (sensors, displays, memory), each with its own wiring protocol; UART is the classic serial port, also used to flash firmware; DAC (ESP32 only) produces a real analog output, without PWM's pulse-based approximation; and Touch (ESP32 only) detects a finger touch directly through a change in capacitance, with no external sensor needed.

5V on Uno/Nano, 3.3V on ESP32 — why it matters

Wiring a 5V signal directly to an ESP32 pin can permanently damage it — ESP32 pins aren't 5V tolerant, unlike the Uno and Nano. A sensor or module designed for 5V (most classic Arduino modules) needs a voltage divider or logic-level converter before it reaches an ESP32 GPIO. The reverse path — a 3.3V signal read by a Uno/Nano — usually works without adaptation, since 3.3V still reads as a high level to the ATmega328P, even if outside the ideal range. See the Voltage Divider to quickly set up that adaptation.

What strapping pins are

On the ESP32, a small group of pins (GPIO0, 2, 5, 12, and 15) plays a double role: at the exact moment the board powers up or resets, the electrical level of these pins decides how the chip boots — which memory to load the program from, which mode to enter. After that initial moment, they go back to behaving as regular GPIOs. The practical risk is connecting something that forces one of these pins to the wrong level right at startup — the most common symptom is the board simply failing to start, or dropping into flashing mode on its own. GPIO0 is the best-known one (wired to the BOOT button), but on this board it's only wired internally to the button — it isn't broken out as its own header pin, so it has no card in the list below. The Arduino Uno and Nano have no such concept — all of their digital pins behave the same way, on or off.

Frequently asked questions

Every board manufacturer chooses how to print the pin's name on the silkscreen. In this tool, the main name is the one most common on the physical board most people actually buy (the generic 30-pin clone, in the ESP32's case); alternate names appear alongside it, including the official name used by the chip manufacturer's documentation.

No. Some pins are input only (GPIO34-39), some are physically wired to the module's internal flash memory and should never be used (GPIO6-11 — they don't even appear on this board's header for that reason), and others are boot strapping pins that need care if used as an output wired to another component. Each pin's card in this tool lists whatever warnings apply to it.

The classic symptom of a strapping pin being pulled to the wrong level at the moment of startup. GPIO0 is the most common culprit (wired internally to the BOOT button, even though it isn't broken out as a header pin on this board); GPIO12 is the most critical one among the pins actually on the header, since it also decides the internal flash voltage. Disconnect anything wired to a boot pin, see if the problem goes away, and check the 'What strapping pins are' section above.

Not without adaptation — ESP32 pins run at 3.3V and aren't 5V tolerant; a direct 5V signal can permanently damage the pin. Use a voltage divider (see the dedicated tool) or a bidirectional logic-level converter between the sensor and the ESP32.

The same microcontroller and (almost) the same pinout — the practical difference is the USB connector (Type-B on the Uno, Mini-B on the Nano), the USB-serial bridge chip (ATmega16U2 on the Uno, FTDI FT232RL on the Nano), and two extra analog pins that only the Nano exposes (A6/A7, which only work as analog inputs).

Because in the package used by the Nano, those two pins were never wired to a digital I/O port on the chip — they exist only as inputs to the analog-to-digital converter. It isn't a software limitation; there's no way to enable them as digital.

On the ATmega328P (Uno/Nano), PWM only comes out of pins physically wired to one of the chip's three timers (3, 5, 6, 9, 10, 11). On the ESP32, the PWM peripheral (called LEDC) can be routed to almost any output pin through an internal connection matrix (the GPIO Matrix) — which is why so many more pins support PWM.

The ESP32 has two analog-to-digital converters, ADC1 and ADC2. The chip's Wi-Fi driver uses ADC2 internally, so analog reads on those pins become unavailable or inaccurate whenever Wi-Fi is on — a hardware/driver limitation documented by Espressif itself, not a Nexinon bug. If your project uses Wi-Fi and needs reliable analog reads, always prefer an ADC1 pin (GPIO32 to 39).

Nexinon Principles

Privacy

Your data never leaves your browser.

No account needed

Use it now, no account or password.

Free

No usage limits, no paid plan.

Trustworthy content

Full explanation behind every tool, not just the result.
See the live proof — Trust Center

Other Electronics tools

View all