Arduino GPIO Reference & Pin Picker
Pick your board, click a pin, and see whether it's safe to use — before you wire anything up.
Quick scenarios
Highlight every pin on the current board that fits a common need.
Programming header (FTDI) — Pro Mini only
The Pro Mini has no onboard USB — this header is where an external FTDI/USB-serial adapter plugs in to upload sketches and talk over serial.
Pin composer
Pick pins from the current board, name each one, set it as input or output, and get a
minimal sketch — just the variable declarations and pinMode() calls. Nothing else.
No pins added yet — pick one above to get started.
// Add pins above to generate code.
Pin type glossary
What each pin type actually means, with a quick visual for how it's wired.
Digital I/O
A pin configured in software (via pinMode()) as either a digital input
or output — HIGH/LOW only, no in-between values.
PWM
Only certain pins can fake an analog output by rapidly switching HIGH/LOW
(analogWrite()) — used for LED dimming and motor speed control. Marked
with a ~ on most boards' silkscreens.
Analog input (ADC)
Reads a varying voltage (potentiometers, analog sensors) as a number via
analogRead() — these pins are typically labeled A0, A1, etc., separate
from the digital pin numbering.
I2C
A 2-wire bus (SDA for data, SCL for clock) that lets one board talk to many devices on the same two pins, each with its own address — common for OLEDs and sensor breakouts.
SPI
A fast 4-wire bus (MOSI, MISO, SCK, SS) for one device at a time per SS line — used for SD cards, TFT displays, and radio modules. Every classic AVR board has exactly one SPI bus, on fixed pins.
External interrupts
A small set of pins can trigger code immediately on a signal change
(attachInterrupt()) without waiting for the main loop to poll them —
useful for buttons, encoders, or timing-sensitive sensors.
About this tool
Why this exists
Every Arduino board has a different number of pins, a different SPI/I2C default, and a different set of PWM-capable pins — details that are easy to mix up between an Uno, a Pro Micro, and a Mega. This tool puts the exact capabilities of each pin one click away, instead of a datasheet search.
What it does
Pick a board, click any pin, and see whether it's safe for general-purpose output,
whether it supports PWM or analog input, and its default I2C/SPI role if any. Quick
scenarios highlight every matching pin at once, and the Pin Composer turns a handful of
chosen pins straight into a bare pinMode() sketch skeleton you can paste
into your project.
A note on accuracy
Pin capabilities are standard across genuine boards using these MCUs, but clones and variants sometimes differ slightly in header layout — always cross-check against your specific board's silkscreen before wiring anything permanent.
PS — image credits: Arduino Uno, Nano, and Mega 2560 diagrams via Last Minute Engineers; Pro Micro and Pro Mini diagrams via The Engineering Projects. All diagrams are hotlinked from their original sources and remain their creators' work — used here for reference only.