Fixed pins for every bus
The ATmega328P has no pin matrix, so each peripheral has its own pins. I²C is on A4 (SDA) and A5 (SCL), repeated on the SDA and SCL pins next to AREF. SPI is on D10 to D13 and on the ICSP header, and the serial port on D0 and D1, shared with the USB chip. attachInterrupt() works only on D2 and D3.
PWM is on D3, D5, D6, D9, D10 and D11, marked with ~. Pins 5 and 6 run at about 980 Hz (976.6 Hz), the others at 490 Hz. The Servo library takes over the timer of pins 9 and 10, and tone() the one of pins 3 and 11.
Power header
VIN takes 6 to 20 V, 7 to 12 V recommended, for the onboard regulator; 5V is the regulated rail and 3V3 comes from a separate regulator rated for 50 mA. IOREF tells shields the logic voltage, 5 V on the UNO, and the first pin of the header is not connected.
Current limits
Arduino rates each I/O pin at 20 mA. The absolute maximum of the ATmega328P is 40 mA, and the whole chip must stay under 200 mA through its supply pins. Pins also share limits by group: at most 150 mA sourced by D0–D4 and A0–A5 together and 150 mA by D5–D13, and at most 100 mA sunk by each of A0–A5, D0–D4 and D5–D13. Use a transistor for anything heavier than a few LEDs.
Full UNO R3 pin table
| Pin | Port | Status | Analog | Functions | Notes |
|---|---|---|---|---|---|
| D0 | PD0 | Use with care | No | RXD | USB serial, UART RX |
| D1 | PD1 | Use with care | No | TXD | USB serial, UART TX |
| D2 | PD2 | Free to use | No | INT0 | No restrictions |
| D3 | PD3 | Free to use | No | PWM, INT1, OC2B | tone() timer |
| D4 | PD4 | Free to use | No | No | No restrictions |
| D5 | PD5 | Free to use | No | PWM, OC0B | PWM at about 980 Hz |
| D6 | PD6 | Free to use | No | PWM, OC0A | PWM at about 980 Hz |
| D7 | PD7 | Free to use | No | No | No restrictions |
| D8 | PB0 | Free to use | No | No | No restrictions |
| D9 | PB1 | Free to use | No | PWM, OC1A | Servo timer |
| D10 | PB2 | Free to use | No | PWM, OC1B, SS | Servo timer, SPI CS |
| D11 | PB3 | Free to use | No | PWM, OC2A, MOSI | tone() timer, SPI MOSI (TX) |
| D12 | PB4 | Free to use | No | MISO | SPI MISO (RX) |
| D13 | PB5 | Free to use | No | SCK | LED (buffered), SPI SCK |
| A0 | PC0 | Free to use | ADC0 | No | No restrictions |
| A1 | PC1 | Free to use | ADC1 | No | No restrictions |
| A2 | PC2 | Free to use | ADC2 | No | No restrictions |
| A3 | PC3 | Free to use | ADC3 | No | No restrictions |
| A4 | PC4 | Free to use | ADC4 | SDA | I²C SDA |
| A5 | PC5 | Free to use | ADC5 | SCL | I²C SCL |
Pins as numbered in the UNO R3 datasheet: J-ANALOG 1 to 14 is the power and analog header, J-DIGITAL 1 to 18 the digital header from D0 to SCL. The UNO R4 boards use another chip and are not covered here.
Frequently asked questions
Which Arduino UNO pins support PWM?
D3, D5, D6, D9, D10 and D11, marked with ~ on the board. D5 and D6 run at about 980 Hz (976.6 Hz), the others at 490 Hz.
Where are the I2C pins on the Arduino UNO?
A4 is SDA and A5 is SCL. The UNO R3 repeats them on the two pins next to AREF, so shields can use either.
How much current can the UNO 3.3 V pin supply?
50 mA, according to Arduino’s specifications. For more, use a separate 3.3 V regulator powered from 5V or VIN.
How much current can a UNO pin drive?
20 mA per pin as Arduino specifies, with 40 mA as the absolute maximum of the ATmega328P and 200 mA in total. Pins also share limits by group: at most 150 mA sourced by D0–D4 and A0–A5 together and 150 mA by D5–D13, and at most 100 mA sunk by each of A0–A5, D0–D4 and D5–D13. Drive motors, relays and LED strips through a transistor or a MOSFET.
Does this pinout apply to the UNO R4?
Only the header layout. The UNO R4 Minima and WiFi use a Renesas RA4M1, with different peripherals and electrical limits, so check their own documentation.