Boards and modules
Arduino Uno pinout
Every header pin on the Arduino Uno R3 and Uno R4, with PWM, serial, I2C and SPI functions and the current each pin can safely supply.
UNO R3 (ATmega328P) - headers, top view
Tap or hover any pin to see what it does.
The Arduino Uno has 14 digital pins (D0–D13) and 6 analog inputs (A0–A5) on two long headers, plus a power header and a 6-pin ICSP connector. Pins marked with a tilde (~) can output PWM. The classic Uno R3 uses the ATmega328P at 5 V; the Uno R4 Minima and WiFi use a Renesas RA4M1, still with 5 V-tolerant I/O, and add a real digital-to-analog converter on A0 and a CAN interface.
Two habits save boards: keep each pin well under its current limit (drive LEDs through a resistor, anything heavier through a transistor), and remember that D0 and D1 are the USB serial port on the R3, so wiring sensors there can stop uploads.
UNO R3 (ATmega328P): every pin
| Pin | Name | Function |
|---|---|---|
| D0 | D0 / RX | UART RX (serial receive); ATmega328P PD0 (RXD); Pin-change interrupt PCINT16Wired to the on-board USB-serial converter (ATmega16U2). Circuits on D0/D1 can block sketch uploads and Serial Monitor traffic. |
| D1 | D1 / TX | UART TX (serial transmit); PD1 (TXD); PCINT17Shared with the USB-serial converter, like D0. |
| D2 | D2 | External interrupt INT0; PD2; PCINT18 |
| D3 | ~D3 | PWM (Timer2, OC2B); External interrupt INT1; PD3; PCINT19PWM about 490 Hz. |
| D4 | D4 | PD4 (T0 counter input / XCK); PCINT20 |
| D5 | ~D5 | PWM (Timer0, OC0B); PD5 (T1 counter input); PCINT21PWM about 980 Hz. Timer0 also runs millis()/delay(), so very low duty cycles may not reach fully off. |
| D6 | ~D6 | PWM (Timer0, OC0A); Analog comparator AIN0; PD6; PCINT22PWM about 980 Hz, same Timer0 caveat as D5. |
| D7 | D7 | Analog comparator AIN1; PD7; PCINT23 |
| D8 | D8 | PB0 (ICP1 input capture / CLKO); PCINT0 |
| D9 | ~D9 | PWM (Timer1, OC1A); PB1; PCINT1PWM about 490 Hz. Using the Servo library disables PWM on D9 and D10. |
| D10 | ~D10 / SS | PWM (Timer1, OC1B); SPI SS (chip select); PB2; PCINT2Must stay an output (or be held high) when the board is SPI controller. |
| D11 | ~D11 / MOSI | SPI MOSI / COPI; PWM (Timer2, OC2A); PB3; PCINT3Same signal as ICSP pin 4. |
| D12 | D12 / MISO | SPI MISO / CIPO; PB4; PCINT4Same signal as ICSP pin 1. |
| D13 | D13 / SCK | SPI SCK; On-board LED (LED_BUILTIN); PB5; PCINT5Same signal as ICSP pin 3. On the R3 the on-board LED is driven through an op-amp buffer, so it barely loads the pin. |
| GND_TOP | GND | GroundGround pin on the digital-side header. |
| AREF | AREF | External reference voltage for the ADCOnly connect a reference voltage here after selecting analogReference(EXTERNAL) in code; keep it between 0 V and 5 V. |
| SDA | SDA | I2C data - same signal as A4Duplicate of A4 (PC4) placed next to AREF for R3-style shields. |
| SCL | SCL | I2C clock - same signal as A5Duplicate of A5 (PC5). |
| NC | NC | Not connectedReserved on the R3 power header (BOOT on UNO R4). |
| IOREF | IOREF | Reports the board's logic voltage to shields (5 V on UNO)Shields read this to pick 5 V or 3.3 V logic. |
| RESET | RESET | Active-low resetPull to GND to restart the sketch; same net as the reset button. |
| 3V3 | 3.3V | 3.3 V outputArduino rates this pin at 50 mA maximum. |
| 5V | 5V | 5 V rail - output from the regulator or USB, or a regulated 5 V inputFeeding 5 V in here bypasses the regulator and its protection; only use a clean, regulated supply. |
| GND1 | GND | Ground |
| GND2 | GND | Ground |
| VIN | VIN | Raw input to the 5 V regulator (same as the DC jack)7-12 V recommended, 6-20 V limits. When powered from the jack, VIN carries the jack voltage. |
| A0 | A0 | Analog input ADC0 (10-bit); Digital pin D14; PC0; PCINT8 |
| A1 | A1 | Analog input ADC1; Digital pin D15; PC1; PCINT9 |
| A2 | A2 | Analog input ADC2; Digital pin D16; PC2; PCINT10 |
| A3 | A3 | Analog input ADC3; Digital pin D17; PC3; PCINT11 |
| A4 | A4 / SDA | Analog input ADC4; I2C SDA; Digital pin D18; PC4; PCINT12Cannot be used as an analog input while the I2C bus (Wire) is in use. |
| A5 | A5 / SCL | Analog input ADC5; I2C SCL; Digital pin D19; PC5; PCINT13Same I2C caveat as A4. |
| ICSP-1 | MISO | SPI MISO / CIPO (same as D12)6-pin ICSP header for the ATmega328P (2 x 3, pin 1 marked on the silkscreen). |
| ICSP-2 | +5V | 5 V6-pin ICSP header for the ATmega328P (2 x 3, pin 1 marked on the silkscreen). |
| ICSP-3 | SCK | SPI SCK (same as D13)6-pin ICSP header for the ATmega328P (2 x 3, pin 1 marked on the silkscreen). |
| ICSP-4 | MOSI | SPI MOSI / COPI (same as D11)6-pin ICSP header for the ATmega328P (2 x 3, pin 1 marked on the silkscreen). |
| ICSP-5 | RESET | Reset (used by programmers)6-pin ICSP header for the ATmega328P (2 x 3, pin 1 marked on the silkscreen). |
| ICSP-6 | GND | Ground6-pin ICSP header for the ATmega328P (2 x 3, pin 1 marked on the silkscreen). |
UNO R4 Minima / WiFi (Renesas RA4M1): every pin
| Pin | Name | Function |
|---|---|---|
| D0 | D0 / RX | UART RX - Serial1 in sketches (Serial is the USB link)Not shared with USB on R4, unlike the R3. |
| D1 | D1 / TX | UART TX - Serial1 |
| D2 | D2 | Interrupt-capable; GPIO |
| D3 | ~D3 | PWM; Interrupt-capable |
| D4 | D4 | GPIO; CAN TX on UNO R4 Minima (CANTX0, needs an external transceiver) |
| D5 | ~D5 | PWM; CAN RX on UNO R4 Minima (CANRX0) |
| D6 | ~D6 | PWM |
| D7 | D7 | GPIO |
| D8 | D8 | GPIO |
| D9 | ~D9 | PWM |
| D10 | ~D10 / SS | PWM; SPI CS; CAN TX on UNO R4 WiFi (CANTX0) |
| D11 | ~D11 / MOSI | PWM; SPI COPI / MOSI |
| D12 | D12 / MISO | SPI CIPO / MISO |
| D13 | D13 / SCK | SPI SCK; LED_BUILTIN; CAN RX on UNO R4 WiFi (CANRX0) |
| GND_TOP | GND | GroundGround pin on the digital-side header. |
| AREF | AREF | External reference voltage for the ADCOnly connect a reference voltage here after selecting analogReference(EXTERNAL) in code; keep it between 0 V and 5 V. |
| SDA | SDA | I2C SDA - same signal as A4No I2C pull-up resistors are fitted on R4 boards (footprints only). |
| SCL | SCL | I2C SCL - same signal as A5No I2C pull-ups fitted. |
| BOOT | BOOT | Boot-mode selection input of the RA4M1Position 1 of the power header: NC on the R3, BOOT on the R4. |
| IOREF | IOREF | Reports the board's logic voltage to shields (5 V on UNO)Tied to 5 V - the R4 keeps 5 V logic. |
| RESET | RESET | Active-low resetPull to GND to restart the sketch; same net as the reset button. |
| 3V3 | 3.3V | 3.3 V output3.3 V output. On the R4 Minima it comes from the RA4M1's internal USB regulator (VCC_USB), not the buck converter, so keep loads light; on the R4 WiFi it comes from the 3.3 V LDO that also feeds the ESP32-S3. |
| 5V | 5V | 5 V rail - output from the regulator or USB, or a regulated 5 V input5 V rail: up to about 1.2 A available when powered from VIN, up to about 2 A when powered from USB-C. |
| GND1 | GND | Ground |
| GND2 | GND | Ground |
| VIN | VIN | Raw input to the 5 V regulator (same as the DC jack)6-24 V input to the on-board buck converter (same net as the DC jack). |
| A0 | A0 | Analog input (10-bit default, 12/14-bit selectable); DAC output, up to 12-bit (true analog out); Digital D14 |
| A1 | A1 | Analog input; Op-amp non-inverting input (OPAMP+); Digital D15 |
| A2 | A2 | Analog input; Op-amp inverting input (OPAMP-); Digital D16 |
| A3 | A3 | Analog input; Op-amp output (OPAMP OUT); Digital D17 |
| A4 | A4 / SDA | Analog input; I2C SDA (Wire); Digital D18Shared with the SDA pin; avoid analog reads while I2C is active. |
| A5 | A5 / SCL | Analog input; I2C SCL (Wire); Digital D19Shared with the SCL pin. |
| ICSP-1 | MISO | SPI MISO / CIPO (same as D12)6-pin SPI (ICSP) header, signals shared with D11-D13. |
| ICSP-2 | +5V | 5 V6-pin SPI (ICSP) header, signals shared with D11-D13. |
| ICSP-3 | SCK | SPI SCK (same as D13)6-pin SPI (ICSP) header, signals shared with D11-D13. |
| ICSP-4 | MOSI | SPI MOSI / COPI (same as D11)6-pin SPI (ICSP) header, signals shared with D11-D13. |
| ICSP-5 | RESET | Reset (used by programmers)6-pin SPI (ICSP) header, signals shared with D11-D13. |
| ICSP-6 | GND | Ground6-pin SPI (ICSP) header, signals shared with D11-D13. |
| OFF | OFF | Short to GND to switch off the 5 V buck converter (turns the board off)UNO R4 WiFi only, small header near the barrel jack. Works only when powered from VIN/jack, not from USB. |
| OFF-GND | GND | Ground for the OFF switch |
| VRTC | VRTC | Backup supply input for the real-time clockR4 WiFi only. Apply 1.6-3.3 V (e.g. a coin cell) to keep the RTC running when main power is removed. |
| QWIIC-GND | GND | Qwiic groundR4 WiFi Qwiic connector (4-pin JST-SH). |
| QWIIC-3V3 | 3.3V | Qwiic 3.3 V supply3.3 V only - do not connect 5 V modules. |
| QWIIC-SDA | SDA1 | Second I2C bus data (Wire1), RA4M1 P4013.3 V logic. |
| QWIIC-SCL | SCL1 | Second I2C bus clock (Wire1), RA4M1 P4003.3 V logic. |
| ESP-1 | ESP_IO42 | ESP32-S3 GPIO42 / MTMS (debug)ESP header pins are 3.3 V - never connect 5 V signals. |
| ESP-2 | ESP_IO41 | ESP32-S3 GPIO41 / MTDI (debug) |
| ESP-3 | ESP_TXD0 | ESP32-S3 UART transmit |
| ESP-4 | ESP_DOWNLOAD | ESP32-S3 boot/download control |
| ESP-5 | ESP_RXD0 | ESP32-S3 UART receive |
| ESP-6 | GND | Ground |
Key facts
- UNO R3: ATmega328P at 16 MHz with 5 V logic. 14 digital pins (D0-D13) and 6 analog inputs (A0-A5); the analog pins also work as digital pins D14-D19.
- UNO R3 PWM pins (marked ~): D3, D5, D6, D9, D10, D11. Frequency is about 490 Hz, except D5 and D6 at about 980 Hz.
- UNO R3 serial: D0 = RX, D1 = TX, shared with the on-board USB-serial chip. External hardware on these pins can stop uploads from working.
- UNO R3 I2C: SDA = A4, SCL = A5. The SDA/SCL pins beside AREF are the same two signals, not a second bus.
- UNO R3 SPI: SS D10, MOSI D11, MISO D12, SCK D13 - also brought out on the 6-pin ICSP header (1 MISO, 2 +5V, 3 SCK, 4 MOSI, 5 RESET, 6 GND).
- UNO R3 external interrupts: D2 (INT0) and D3 (INT1); every I/O pin also supports pin-change interrupts.
- UNO R3 current limits: the ATmega328P datasheet gives 40 mA per I/O pin and 200 mA through the VCC/GND pins as absolute maximum (damage) ratings. Arduino specifies 20 mA per I/O pin for normal use, and the 3.3 V pin is limited to 50 mA.
- UNO R3 port totals (datasheet guidance): sinking current should stay under 100 mA per pin group (C0-C5; B0-B5 + D5-D7; D0-D4) and sourcing under 150 mA per group.
- UNO R3 power: VIN / DC jack 7-12 V recommended (6-20 V absolute limits). The 5V pin is the regulated rail; feeding it directly bypasses the regulator.
- UNO R3 analog: 10-bit ADC; AREF sets an external reference. Never put more than 5 V on any pin - the chip's limit is VCC + 0.5 V.
- UNO R3 header positions: digital headers along the top edge (D0 at the right end), power and analog headers along the bottom edge (A5 at the right end). Arduino's newer docs call MOSI/MISO 'COPI/CIPO'.
- UNO R4 (Minima and WiFi): 32-bit Renesas RA4M1 (Arm Cortex-M4, 48 MHz) but still 5 V logic and the same header layout, so most 5 V shields fit.
- UNO R4 current: Arduino rates each RA4M1 GPIO at only 8 mA (the R3 allowed 20 mA). The Minima pinout sheet also gives 60 mA as the overall maximum. Drive LEDs through resistors sized for this and use transistors for anything bigger.
- UNO R4 analog: A0 is a true 12-bit DAC output; A1, A2, A3 are the built-in op-amp's +input, -input and output. analogRead() defaults to 10-bit but can be set to 12 or 14 bits; the default reference is 5 V (1.5 V internal option).
- UNO R4 PWM is on the same ~ pins (D3, D5, D6, D9, D10, D11) at about 490 Hz, 8-bit by default and up to 12-bit with analogWriteResolution().
- UNO R4 CAN controller (external transceiver required): R4 Minima uses D4 = CAN TX, D5 = CAN RX; R4 WiFi uses D10 = CAN TX, D13 = CAN RX.
- UNO R4 power: VIN / DC jack 6-24 V into a buck converter; USB-C must be 5 V. The 5V pin can supply about 1.2 A when running from VIN and about 2 A from USB.
- UNO R4: position 1 of the power header is BOOT (it is NC on the R3). The UART on D0/D1 is Serial1 in sketches; Serial is the USB connection. No I2C pull-up resistors are fitted.
- UNO R4 WiFi extras: ESP32-S3 module (3.3 V) for Wi-Fi/Bluetooth behind a level shifter; 12 x 8 red LED matrix; Qwiic connector on a second I2C bus (Wire1) at 3.3 V only; OFF pin (short to GND to shut the buck converter off when powered from VIN); VRTC pin to keep the RTC alive from a small battery.
Sources
Pin assignments were checked against these references on 2026-10-14. The diagram is our own drawing.
- Arduino UNO R3 product reference manual (datasheet), SKU A000066
- Arduino UNO R3 schematics (A000066-schematics.pdf)
- Arduino UNO R3 full pinout (A000066-full-pinout.pdf)
- Arduino UNO R3 tech specs (docs.arduino.cc / docs-content tech-specs.yml)
- Microchip ATmega48A/PA/88A/PA/168A/PA/328/P datasheet (DS40002061B)
- Arduino language reference - analogWrite()
- Arduino Servo library documentation
- Arduino UNO R4 Minima product reference manual, SKU ABX00080
- Arduino UNO R4 Minima full pinout (ABX00080-full-pinout.pdf)
- Arduino UNO R4 WiFi product reference manual, SKU ABX00087
- Arduino UNO R4 WiFi full pinout (ABX00087-full-pinout.pdf)
- Arduino docs - UNO R4 WiFi and UNO R4 Minima user manuals (cheat sheets)
- Arduino docs - UNO R4 Minima CAN and UNO R4 WiFi CAN tutorials
- Arduino docs - UNO R4 WiFi VRTC & OFF pins tutorial