📌 Arduino Pinout Reference
Searchable pin diagram for Arduino Uno, Nano, Mega 2560 and ESP32. See each pin's type and its special functions — PWM, ADC, I2C, SPI, UART, interrupt — instantly. Everything runs in your browser.
| Pin | Type | Special functions |
|---|
Tip: click a pin row (or press Enter) to copy the pin name to your clipboard.
What is an Arduino Pinout (Pin Diagram)?
An Arduino pinout is a map of every physical pin on a development board and the function it performs. Picking the right pin decides whether a project works: call analogWrite() on a non-PWM pin and you cannot dim an LED, wire an I2C sensor to the wrong pin and communication never starts. This tool gives you a searchable reference for the Arduino Uno (R3), Arduino Nano, Arduino Mega 2560 and ESP32 DevKit v1, matching the official pinout diagrams. All data is embedded in the page and every operation runs locally in your browser.
How to use it
- Choose your board from the dropdown (Uno, Nano, Mega or ESP32). The table updates instantly with that board's pins.
- Type a pin name or function in the search box — for example SDA, MISO, PWM, touch or A0. The table filters as you type.
- Click a PWM, Analog, I2C, SPI, UART or Interrupt chip to list only the pins that support that function.
- Click a pin row and its name (e.g.
D9) is copied to the clipboard, ready to paste into your sketch.
Board summaries
Arduino Uno (R3): ATmega328P, 5V logic. 14 digital pins (0-13) and 6 analog inputs (A0-A5). PWM pins are 3, 5, 6, 9, 10, 11. I2C is on A4/A5; SPI is on 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). D2 and D3 support external interrupts.
Arduino Nano: same ATmega328P core as the Uno but with 8 analog inputs (A0-A7). Key difference: A6 and A7 are analog-input only — they cannot be used as digital I/O or with internal pull-ups.
Arduino Mega 2560: ATmega2560 with 54 digital pins (15 PWM) and 16 analog inputs (A0-A15). It has 4 hardware UARTs and 6 external interrupts. Note: I2C here is on D20 (SDA) / D21 (SCL) — different from the Uno. SPI is on D50-D53 and the ICSP header.
ESP32 DevKit v1: 240 MHz dual-core with Wi-Fi + Bluetooth, but 3.3V logic (not 5V-tolerant!). It offers many GPIOs, two DACs (GPIO25/26), 10 capacitive touch channels and ADC1/ADC2. Default I2C is GPIO21/22; default SPI (VSPI) is MOSI=23 / MISO=19 / SCK=18 / SS=5.
Common gotchas
- ESP32 input-only pins: GPIO34, 35, 36 (VP) and 39 (VN) cannot drive an output and have no internal pull-up/pull-down. Reading a button on them needs an external resistor.
- ESP32 flash pins: GPIO6-11 connect to the on-board SPI flash; using them will hang the board.
- ESP32 strapping pins: GPIO0, 2, 12, 15 must sit at a specific level at boot; wiring them wrong stops the board from starting.
- Uno A4/A5 = I2C: while an I2C device is connected you cannot use A4/A5 as analog inputs — the two functions share the same hardware.
- I2C moves on the Mega: when porting Uno code to a Mega, remember to move SDA/SCL to D20/D21.
- Nano A6/A7: read them only with
analogRead();digitalWrite()andpinMode()do not work on these pins.
This reference is a practical companion for electronics learners, anyone prototyping with Arduino and ESP32, and anyone drawing a schematic. It does not replace the official datasheets; for critical designs always confirm against the manufacturer's documentation.
Frequently Asked Questions
Which pins support PWM on the Arduino Uno?
On the Uno R3 the PWM-capable pins (marked ~) are 3, 5, 6, 9, 10 and 11. They accept a 0-255 value via analogWrite(). Click the PWM chip to list every PWM pin for the selected board.
Which pins are I2C (SDA/SCL) on Arduino?
On the Uno and Nano, I2C is on A4 (SDA) and A5 (SCL). On the Mega 2560 it is on D20 (SDA) and D21 (SCL). On the ESP32 the default is GPIO21 (SDA) and GPIO22 (SCL), remappable with Wire.begin().
Which ESP32 pins are input-only?
GPIO34, GPIO35, GPIO36 (VP) and GPIO39 (VN) are input-only; they cannot be outputs and have no internal pull-up/pull-down. GPIO6-11 are tied to the on-board flash and must not be used either.
Is the pin data sent to a server?
No. The tool runs entirely in your browser; all pin data is embedded in the page, no network requests are made and nothing is stored.