Arduino Uno R3 pinout
The classic Arduino board for learning. It uses 5 V logic, so 3.3 V-only sensors need a level shifter.
At a glance
- Chip
- ATmega328P
- Processor
- 8-bit AVR ATmega328P at 16 MHz, 2 KB SRAM, 32 KB flash, 1 KB EEPROM
- Logic level
- 5 V. 3.3 V-only sensors need a level shifter.
- Flashing tool
- avrdude
- Arduino board (FQBN)
- arduino:avr:uno
- Live pin view in BoardPilot
- Yes (diagnostic agent available)
Pins to avoid or use with care
USB serial: TX→1 (PD1), RX←0 (PD0)
Used for uploading and the serial monitor. Anything connected here can break uploads.
Good pins for LEDs, buttons and signals
2, ~3, 4, ~5, ~6, 7, 8, ~9
Default pins in Arduino
- I2C
- SDA = A4, SCL = A5. Only these pins work with the Wire library defaults. I2C only works on A4 (SDA) and A5 (SCL); the SDA/SCL pins near AREF are the same signals.
- SPI
- MOSI = ~11, MISO = 12, SCK = 13, CS = ~10.
- Analog inputs
- A0, A1, A2, A3, A4, A5 (0–5 V)
All 31 pins
| Pin | GPIO | Chip pin | Functions | Notes |
|---|---|---|---|---|
| SCL | 19 | PC5 | GPIO, ADC5, I2C_SCL (default) | Same signal as A5 (I2C clock). |
| SDA | 18 | PC4 | GPIO, ADC4, I2C_SDA (default) | Same signal as A4 (I2C data). |
| AREF | — | ADC_REF | Analog reference input. Leave it unconnected unless your code calls analogReference(EXTERNAL); never power parts from it. | |
| GND | — | |||
| 13 | 13 | PB5 | GPIO, SPI_SCK (default) | The built-in LED "L" is on this pin (also SPI clock). |
| 12 | 12 | PB4 | GPIO, SPI_MISO (default) | |
| ~11 | 11 | PB3 | GPIO, PWM, SPI_MOSI (default) | |
| ~10 | 10 | PB2 | GPIO, PWM, SPI_CS (default) | SPI chip select. Keep it an OUTPUT when using SPI, or SPI can stop working. |
| ~9 | 9 | PB1 | GPIO, PWM | |
| 8 | 8 | PB0 | GPIO | |
| 7 | 7 | PD7 | GPIO | |
| ~6 | 6 | PD6 | GPIO, PWM | |
| ~5 | 5 | PD5 | GPIO, PWM | |
| 4 | 4 | PD4 | GPIO | |
| ~3 | 3 | PD3 | GPIO, INT1, PWM | |
| 2 | 2 | PD2 | GPIO, INT0 | |
| TX→1 | 1 | PD1 | GPIO, UART0_TX | Serial TX. Shared with the USB link: using it for parts can break uploads and the serial monitor. |
| RX←0 | 0 | PD0 | GPIO, UART0_RX | Serial RX. Shared with the USB link: using it for parts can break uploads and the serial monitor. |
| IOREF | — | Tells shields that this board uses 5 V logic. Connected to 5V; not meant to power parts. | ||
| RESET | — | RESET | Reset input. Pull it LOW (or press the button) to restart the board. | |
| 3.3V | — | 3.3 V output, 50 mA max. Enough for one or two small sensors. | ||
| 5V | — | 5 V output from USB or the on-board regulator. | ||
| GND | — | |||
| GND | — | |||
| Vin | — | Power input (7-12 V recommended, 20 V max) from the barrel jack or an external supply. It is not fed from USB, so do not use it to power parts. | ||
| A0 | 14 | PC0 | GPIO, ADC0 | |
| A1 | 15 | PC1 | GPIO, ADC1 | |
| A2 | 16 | PC2 | GPIO, ADC2 | |
| A3 | 17 | PC3 | GPIO, ADC3 | |
| A4 | 18 | PC4 | GPIO, ADC4, I2C_SDA (default) | Default I2C SDA (same signal as the SDA pin). |
| A5 | 19 | PC5 | GPIO, ADC5, I2C_SCL (default) | Default I2C SCL (same signal as the SCL pin). |
Check your wiring with BoardPilot
BoardPilot shows this board in 3D, flags risky pins as you wire, and flashes it safely with a backup first.
Download BoardPilotSources
- Arduino UNO Rev3 Eagle design files (UNO-TH_Rev3e), Board outline and header pad coordinates (IOH, IOL, POWER, AD)
- Arduino UNO R3 datasheet (A000066), Connector pinouts; IOREF connected to 5V; VIN 6-20 V
- Arduino UNO R3 full pinout (A000066)
- Microchip ATmega328P datasheet (DS40002061), 1 Pin Configurations; 14.3 Alternate Port Functions; 24 Analog-to-Digital Converter
- arduino/ArduinoCore-avr variants/standard/pins_arduino.h, Arduino pin numbers, SPI/I2C defaults, LED_BUILTIN, A0=14
- arduino/ArduinoCore-avr boards.txt, USB VID/PID, upload protocol and speed
- Board data file and source notes on GitHub