Safe GPIO pins
Arduino specifies a 20 mA maximum per I/O. The ATmega328P ratings of 40 mA per I/O and 200 mA through VCC/GND are absolute maxima, not operating targets; port-group current limits also apply.
Embedded hardware reference for engineers and makers
Arduino Uno R3 uses an ATmega328P at 5 V and 16 MHz. The main MCU clock comes from a ceramic resonator; a separate quartz crystal clocks the ATmega16U2 USB bridge.
Tap a row of pins to see it up close
ATmega328P
Before you wire
| Pin | Name | GPIO | Functions | ADC | Default role | Flags |
|---|---|---|---|---|---|---|
| digital_high:1 digital_high | SCL | GPIO19 | gpioi2cadc | ADC5 | GPIO | |
| digital_high:2 digital_high | SDA | GPIO18 | gpioi2cadc | ADC4 | GPIO | |
| digital_high:3 digital_high | AREF | — | input | — | GPIO | External reference voltage limits |
| digital_high:4 digital_high | GND | — | gnd | — | Ground | |
| digital_high:5 digital_high | D13 / SCK | GPIO13 | gpiospi | — | GPIO | Shared with an onboard component |
| digital_high:6 digital_high | D12 / MISO | GPIO12 | gpiospi | — | GPIO | |
| digital_high:7 digital_high | ~D11 / MOSI | GPIO11 | gpiospipwm | — | GPIO | |
| digital_high:8 digital_high | ~D10 / SS | GPIO10 | gpiospipwm | — | GPIO | |
| digital_high:9 digital_high | ~D9 | GPIO9 | gpiopwm | — | GPIO | |
| digital_high:10 digital_high | D8 | GPIO8 | gpio | — | GPIO | |
| digital_low:1 digital_low | D7 | GPIO7 | gpio | — | GPIO | |
| digital_low:2 digital_low | ~D6 | GPIO6 | gpiopwm | — | GPIO | |
| digital_low:3 digital_low | ~D5 | GPIO5 | gpiopwm | — | GPIO | |
| digital_low:4 digital_low | D4 | GPIO4 | gpio | — | GPIO | |
| digital_low:5 digital_low | ~D3 | GPIO3 | gpiopwm | — | GPIO | |
| digital_low:6 digital_low | D2 | GPIO2 | gpio | — | GPIO | |
| digital_low:7 digital_low | D1 / TX | GPIO1 | gpiouart | — | GPIO | Shared with the USB-UART bridge |
| digital_low:8 digital_low | D0 / RX | GPIO0 | gpiouart | — | GPIO | Shared with the USB-UART bridge |
| power:1 power | NC | — | nc | — | No Connection | |
| power:2 power | IOREF | — | power | — | 5.0 V Power | |
| power:3 power | RESET | — | reset | — | Reset / Enable | |
| power:4 power | 3V3 | — | power | — | 3.3 V Power | |
| power:5 power | 5V | — | power | — | 5.0 V Power | |
| power:6 power | GND | — | gnd | — | Ground | |
| power:7 power | GND | — | gnd | — | Ground | |
| power:8 power | VIN | — | power | — | 7.0–12.0 V Power | |
| analog:1 analog | A0 | GPIO14 | gpioadc | ADC0 | GPIO | |
| analog:2 analog | A1 | GPIO15 | gpioadc | ADC1 | GPIO | |
| analog:3 analog | A2 | GPIO16 | gpioadc | ADC2 | GPIO | |
| analog:4 analog | A3 | GPIO17 | gpioadc | ADC3 | GPIO | |
| analog:5 analog | A4 / SDA | GPIO18 | gpioi2cadc | ADC4 | GPIO | |
| analog:6 analog | A5 / SCL | GPIO19 | gpioi2cadc | ADC5 | GPIO | |
| icsp:1 icsp | MISO | GPIO12 | gpiospi | — | GPIO | |
| icsp:2 icsp | +5V | — | power | — | 5.0 V Power | |
| icsp:3 icsp | SCK | GPIO13 | gpiospi | — | GPIO | |
| icsp:4 icsp | MOSI | GPIO11 | gpiospipwm | — | GPIO | |
| icsp:5 icsp | RESET | — | reset | — | Reset / Enable | |
| icsp:6 icsp | GND | — | gnd | — | Ground | |
| icsp_usb:1 icsp_usb | MISO2 | — | icsp | — | GPIO | |
| icsp_usb:2 icsp_usb | +5V | — | power | — | 5.0 V Power | |
| icsp_usb:3 icsp_usb | SCK2 | — | icsp | — | GPIO | |
| icsp_usb:4 icsp_usb | MOSI2 | — | icsp | — | GPIO | |
| icsp_usb:5 icsp_usb | RESET2 | — | reset | — | Reset / Enable | |
| icsp_usb:6 icsp_usb | GND | — | gnd | — | Ground |
Grounded reference
Arduino Uno R3 is the foundational 8-bit development board based on the Microchip ATmega328P. It features standard 0.1" shield headers, 5 V logic, a removable DIP-28 MCU socket, and an onboard ATmega16U2 USB-serial bridge.
The drawing follows official Arduino A000066 through-hole Rev3e Eagle CAD: socketed ATmega328P, ATmega16U2 USB bridge and two separate six-contact ICSP headers. It shows 44 physical header contacts, including duplicated signals and power contacts.
Arduino specifies a 20 mA maximum per I/O. The ATmega328P ratings of 40 mA per I/O and 200 mA through VCC/GND are absolute maxima, not operating targets; port-group current limits also apply.
Pins A0-A5 provide 10-bit analog-to-digital conversion (0-1023) referenced to 5V (or AREF). Pins A4 (SDA) and A5 (SCL) are shared with the I2C bus.
UART on D0 (RX) and D1 (TX). SPI on D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK) and the 6-pin ICSP header. I2C on A4 (SDA) and A5 (SCL) plus dedicated top header pins.
No hardware strapping pins. D13 has an onboard LED buffer. D0/D1 are tied to the USB-to-serial converter (ATmega16U2).
All digital pins support bidirectional I/O with optional internal pull-up resistors (20-50 kΩ). Analog pins A0-A5 can also function as digital GPIO 14-19.
Short answers to the questions people ask about this board, each checked against the manufacturer or project documents linked under it.
Use D3, D5, D6, D9, D10 and D11. D8 does not provide hardware PWM. The 16-bit Timer1 drives D9/D10, while the 8-bit Timer0 and Timer2 supply the other PWM outputs. Timer settings may be shared with Arduino timing functions or libraries.
The ICSP header near the ATmega328P programs the main MCU and exposes MISO=D12, SCK=D13 and MOSI=D11. ICSP1 near the USB connector programs the separate ATmega16U2 USB bridge; its SPI and RESET signals belong to that chip. Both headers also carry 5 V and GND. Choose the header for the processor you intend to program.
Use USB 5 V or the recommended 7–12 V at VIN or the centre-positive DC jack. The 5 V rail’s available current depends on the source and regulator heating; do not treat the regulator rating as a guaranteed board output. Arduino specifies 50 mA for the 3.3 V pin and 20 mA maximum per I/O. The MCU absolute maxima and port-group limits are separate constraints.
Checked this pinout against your board or connector? Confirm it, or report a pin, voltage or orientation that does not match.
Opens a public form on GitHub with this page already filled in; a free GitHub account is needed. How reports and confirmations work