Arduino Nano pinout
A small, breadboard-friendly Arduino with the same chip as the Uno. It uses 5 V logic, so 3.3 V-only sensors need a level shifter.
The real app with a simulated Arduino Nano, running in your browser. No install, nothing to plug in.
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:nano
- Live pin view in BoardPilot
- Yes (diagnostic agent available)
Pins to avoid or use with care
Input only: A6 (ADC6), A7 (ADC7)
Cannot drive outputs, and have no internal pull-up.
USB serial: RX0 (PD0), TX1 (PD1)
Used for uploading and the serial monitor. Anything connected here can break uploads.
Good pins for LEDs, buttons and signals
D2, D3, D4, D5, D6, D7, D8, D9
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).
- SPI
- MOSI = D11, MISO = D12, SCK = D13, CS = D10.
- Analog inputs
- A0, A1, A2, A3, A6, A7, A4, A5 (0–5 V)
How to flash it
Clones with the old bootloader upload at 57600 baud: choose “ATmega328P (Old Bootloader)” if uploads fail.
All 30 pins
| Pin | GPIO | Chip pin | Functions | Notes |
|---|---|---|---|---|
| D12 | 12 | PB4 | GPIO, SPI_MISO (default) | |
| D11 | 11 | PB3 | GPIO, PWM, SPI_MOSI (default) | |
| D10 | 10 | PB2 | GPIO, PWM, SPI_CS (default) | SPI chip select. Keep it an OUTPUT when using SPI, or SPI can stop working. |
| D9 | 9 | PB1 | GPIO, PWM | |
| D8 | 8 | PB0 | GPIO | |
| D7 | 7 | PD7 | GPIO | |
| D6 | 6 | PD6 | GPIO, PWM | |
| D5 | 5 | PD5 | GPIO, PWM | |
| D4 | 4 | PD4 | GPIO | |
| D3 | 3 | PD3 | GPIO, INT1, PWM | |
| D2 | 2 | PD2 | GPIO, INT0 | |
| GND | — | |||
| RST | — | RESET | Reset input. Pull it LOW (or press the button) to restart the board. | |
| RX0 | 0 | PD0 | GPIO, UART0_RX | Serial RX. Shared with the USB link: using it for parts can break uploads and the serial monitor. |
| TX1 | 1 | PD1 | GPIO, UART0_TX | Serial TX. Shared with the USB link: using it for parts can break uploads and the serial monitor. |
| D13 | 13 | PB5 | GPIO, SPI_SCK (default) | The built-in LED "L" is on this pin (also SPI clock). |
| 3V3 | — | 3.3 V from the USB chip (FT232RL, 50 mA max; often less on clones). Weak: fine for one small sensor only. | ||
| REF | — | ADC_REF | Analog reference input. Leave it unconnected unless your code calls analogReference(EXTERNAL); never power parts from it. | |
| 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). |
| A6 | 20 | ADC6 | ADC6 | Analog input only: no digitalWrite, no digitalRead and no internal pull-up. |
| A7 | 21 | ADC7 | ADC7 | Analog input only: no digitalWrite, no digitalRead and no internal pull-up. |
| 5V | — | 5 V output from USB or the on-board regulator. | ||
| RST | — | RESET | Reset input. Pull it LOW (or press the button) to restart the board. | |
| GND | — | |||
| VIN | — | Power input (7-12 V recommended) from the barrel jack or an external supply. It is not fed from USB, so do not use it to power parts. |
Questions
Which pins are I2C on the Arduino Nano?
SDA is A4 and SCL is A5 (the defaults of the Arduino Wire library). Only certain pins support I2C in hardware, so use these unless you know your core allows others.
Which Arduino Nano pins should I avoid?
RX0, TX1 (USB serial link); A6, A7 (input only).
Is the Arduino Nano 5 V tolerant?
The Arduino Nano runs at 5 V, so 5 V sensors connect directly. 3.3 V-only parts need a level shifter.
Which pins can read analog voltage on the Arduino Nano?
A0, A1, A2, A3, A6, A7, A4, A5, from 0 to 5 V.
How do I upload code to the Arduino Nano?
In the Arduino IDE pick the board arduino:avr:nano (core arduino:avr). Clones with the old bootloader upload at 57600 baud: choose “ATmega328P (Old Bootloader)” if uploads fail.
Wiring guides for the Arduino Nano
Step-by-step wiring, voltage checks and test code for the most used parts:
BME280 BMP280 DHT22 DHT11 HC-SR04 SSD1306 OLED MPU6050 DS18B20 WS2812B LED strip SG90 servo Relay module HC-SR501 PIR LCD 1602 I2C INA219 VL53L0X BH1750 MAX30102 RC522 RFID NEO-6M GPS Capacitive soil moisture sensor ADS1115 TM1637 28BYJ-48 stepper L298N Potentiometer Push button LED Joystick module SD card module AHT20
Compare
Arduino Uno R3 vs Arduino Nano Raspberry Pi Pico vs Arduino Nano
Learn the basics
Lesson: What is a microcontroller? Lesson: Hardware basics for software developers Lesson: GPIO: pins in and out Pinout GPIO Logic level (HIGH and LOW) Arduino Bootloader
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 Nano 3.0 Eagle design files, Board outline, J1/J2 header pads and nets (3V3 from FT232RL pin 17 3V3OUT)
- Arduino Nano datasheet (A000005), 5 Connector Pinouts; 6 Mechanical Information (43.2 x 18 mm, rows 15.24 mm apart)
- arduino/ArduinoCore-avr variants/eightanaloginputs/pins_arduino.h, A6 = 20, A7 = 21
- FTDI FT232R datasheet, 3V3OUT pin: 3.3 V LDO output, up to 50 mA
- 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