The Arduino Nano is one of the most popular microcontroller boards ever made. Its compact size, full ATmega328P feature set, and breadboard-friendly design have made it a staple in hobbyist labs, school STEM kits, and professional prototypes worldwide. But to use it effectively, you need to understand every pin — what it does, its electrical limits, and when to use it.
This is the most complete Arduino Nano pinout reference you will find in 2026. Whether you are a beginner wiring your first LED or an engineer designing a sensor array, this guide covers everything you need to know.
Table of Contents
- Arduino Nano Overview
- Full Pinout Diagram Reference
- Power Pins Explained
- Digital I/O Pins
- Analog Input Pins
- Communication Pins: SPI, I2C, UART
- PWM Pins and Their Uses
- Practical Wiring Tips and Current Limits
- Projects You Can Build
- Frequently Asked Questions
Arduino Nano Overview
The Arduino Nano measures just 45mm × 18mm, making it dramatically smaller than the Arduino Uno while offering nearly identical features. At its heart sits the ATmega328P microcontroller running at 16 MHz, with 32 KB of flash memory, 2 KB of SRAM, and 1 KB of EEPROM. It connects to your computer via a Mini-USB port (older revisions) or Micro-USB, and it draws a mere 19 mA at 5 V when idle.
The Nano has 30 pins in total — 14 digital I/O pins, 8 analog input pins, a set of power pins, and the AREF and RESET pins. It runs at 5 V logic and is powered either from the USB port, the VIN pin (6–20 V), or the 5 V pin directly.
Newer variants like the Arduino Nano Every (ATmega4809), Arduino Nano 33 IoT (SAMD21 + WiFi), and Arduino Nano RP2040 Connect have expanded the family, but the classic Nano with ATmega328P remains the most widely used. This guide focuses on the classic Nano, with notes on variants where relevant.
Full Pinout Diagram Reference
The Arduino Nano’s 30 pins are arranged in two rows of 15 along the board’s long edges. Here is a complete textual reference:
Left side (top to bottom): D1/TX, D0/RX, RESET, GND, D2, D3/PWM, D4, D5/PWM, D6/PWM, D7, D8, D9/PWM, D10/PWM/SS, D11/PWM/MOSI, D12/MISO
Right side (top to bottom): D13/SCK/LED, 3.3V, AREF, A0, A1, A2, A3, A4/SDA, A5/SCL, A6, A7, 5V, RESET, GND, VIN
The board also has a ICSP (In-Circuit Serial Programming) header at one end — a 6-pin header that exposes MOSI, MISO, SCK, RESET, VCC, and GND for bootloader burning.
Power Pins Explained
Understanding power pins is critical to avoid damaging your Nano or connected components.
VIN: This is the raw voltage input pin. Connect an unregulated supply of 6–20 V here and the onboard regulator will bring it down to 5 V. Anything below 6 V may cause instability; anything above 20 V will likely destroy the regulator. For most bench setups, a 9 V or 12 V supply works well.
5V: This pin outputs regulated 5 V when the board is powered from USB or VIN. You can also use it as an input if you have a clean, regulated 5 V supply — but be careful not to use both 5V and VIN at the same time, as this can backfeed voltage in unexpected ways.
3.3V: A regulated 3.3 V output capable of supplying up to 50 mA. Useful for powering sensors or logic level devices that operate at 3.3 V. Note: the ATmega328P itself is a 5 V device, so driving its pins directly from 3.3 V logic may cause unreliable readings; use a level shifter where needed.
GND: There are two GND pins on the Nano. They are internally connected. Use either or both for your circuit ground.
RESET: Pulling this pin LOW resets the microcontroller. It is used during programming. Adding a 100–220 Ω resistor in series protects this pin in custom PCB designs.
AREF: The Analog Reference pin sets the reference voltage for the ADC. By default, the ADC uses the internal 5 V reference. Connect an external precision voltage source (0.1–5 V) here and call analogReference(EXTERNAL) in your sketch to improve ADC accuracy.
Digital I/O Pins
The Arduino Nano has 14 digital I/O pins numbered D0 through D13. Each pin can be set as INPUT or OUTPUT. As an output, each pin can source or sink up to 40 mA, but the total current from all pins combined must not exceed 200 mA. Always use a current-limiting resistor when driving LEDs.
D0 (RX) and D1 (TX): These are the hardware UART pins. D0 receives data; D1 transmits. When uploading a sketch via USB, these pins are in use by the programmer. Avoid connecting components to these pins if your project uses serial communication for debugging or logging via the Serial Monitor.
D2 and D3: These are the only two pins that support external hardware interrupts via attachInterrupt(). D3 also supports PWM output. Use D2 and D3 for time-critical inputs like buttons, encoders, or motion sensors.
D4 through D8: Standard digital I/O pins with no special functions beyond basic input/output. D4, D7, and D8 do not support PWM.
D13: Connected to the onboard LED (the small LED near the USB port). This makes D13 the universal test pin — blink the LED in your code to confirm the sketch is running. Note that the onboard LED adds a series resistor to D13, which slightly affects readings if you try to use D13 as an input with a pullup.
Analog Input Pins
The Nano has 8 analog input pins: A0 through A7. All of them connect to the ATmega328P’s 10-bit ADC, which means readings range from 0 to 1023 corresponding to 0 V to the reference voltage (5 V by default).
A0 through A5 are exposed on the standard pin headers and can also be used as digital I/O (D14 through D19). A4 and A5 double as SDA and SCL for the I2C bus. A6 and A7, however, are analog-only — they do not have internal pullup resistors and cannot be used as digital pins.
ADC resolution: with a 5 V reference, each ADC step equals 5000 mV / 1024 = 4.88 mV. This is sufficient for most sensor readings. For higher precision, use an external reference and consider an external ADC chip like the ADS1115 over I2C.
Avoid connecting analog inputs to voltages outside the 0–5 V range without protection. Exceeding this range, even briefly, can latch-up the ADC and produce erratic readings across all analog channels.
Communication Pins: SPI, I2C, UART
The Arduino Nano supports three standard serial communication protocols: UART, SPI, and I2C. Knowing which pins each protocol uses helps you plan your circuit layout.
UART (Serial): D0 (RX) and D1 (TX). The hardware UART connects to the USB-to-serial chip (CH340 on clones, FT232RL on genuine boards), which is how you upload sketches and use the Serial Monitor. If you need a second UART, use the SoftwareSerial library on any two digital pins.
SPI: D10 (SS/Slave Select), D11 (MOSI), D12 (MISO), D13 (SCK). SPI is a synchronous, full-duplex protocol used by many displays, SD card modules, and RF modules. Multiple SPI devices can share MOSI, MISO, and SCK, with each device getting its own SS pin.
I2C: A4 (SDA) and A5 (SCL). I2C is a two-wire protocol ideal for connecting multiple sensors. The Nano can be I2C master or slave. Each device gets a unique 7-bit address. The bus requires 4.7 kΩ pullup resistors on both SDA and SCL lines (many breakout boards include these).
When planning a project with multiple peripherals, I2C is the most pin-efficient option — you can connect up to 127 devices on just 2 wires. SPI is faster and better for high-throughput devices like displays. UART is point-to-point and best for GPS modules, Bluetooth adapters, and similar single-device connections.
PWM Pins and Their Uses
PWM (Pulse Width Modulation) lets a digital pin simulate analog output by rapidly switching between HIGH and LOW. The Arduino Nano has 6 PWM-capable pins: D3, D5, D6, D9, D10, and D11. In your sketch, use analogWrite(pin, value) where value ranges from 0 (always off) to 255 (always on).
All Nano PWM outputs run at approximately 490 Hz by default, except D5 and D6 which run at ~980 Hz. This frequency is usually inaudible and fine for most applications. However, if you are driving a motor and hear a whine at a certain duty cycle, you may need to change the timer prescaler to push the PWM frequency above 20 kHz.
Common PWM uses:
- LED dimming: Vary brightness without flickering at low frequencies
- Motor speed control: Feed a PWM signal to a motor driver (L298N, DRV8833, etc.)
- Servo control: The
Servo.hlibrary uses PWM to position servos (uses Timer 1, conflicts with D9 and D10 PWM) - Audio generation: Simple tone generation via
tone()function - DAC simulation: Pass PWM through an RC low-pass filter to create a rough analog voltage
Practical Wiring Tips and Current Limits
Getting your wiring right from the start prevents frustrating debugging sessions later. Here are the most important electrical rules for the Arduino Nano:
Pin current limits: Each digital pin can safely source or sink 40 mA. Exceeding this permanently damages the ATmega328P. For LEDs, use a 220–470 Ω resistor in series. For relays, always use a transistor driver or a relay module with built-in isolation.
Total current: The sum of all I/O pin currents must not exceed 200 mA. If you are driving many LEDs or servos, use external power with a common ground.
5 V vs. 3.3 V sensors: Some sensors (MPU-6050, BMP280 modules) have onboard regulators and work at 5 V even though their MCU runs at 3.3 V. Others require 3.3 V strictly. Consult the datasheet and use a level shifter if the sensor’s data lines are 3.3 V and you are driving them from 5 V Nano pins.
Decoupling capacitors: For noise-sensitive analog readings, add a 100 nF ceramic capacitor between the 5 V and GND pins near your sensor. This filters power supply noise that can affect ADC readings.
Breadboard layout: The Nano’s 18-pin width fits perfectly in a 400-point breadboard, leaving one row free on each side. Orient the Nano so the USB port hangs off the end of the breadboard for easy access.
Projects You Can Build with the Arduino Nano
The compact size and full feature set of the Nano make it ideal for projects where an Uno is too bulky but a bare ATmega chip is too difficult to program.
Temperature and humidity monitor: Connect a DHT22 to D2, a 0.96-inch OLED display to A4/A5 (I2C), and power from USB. You get a self-contained environmental monitor that fits in an enclosure the size of a matchbox.
GPS tracker: Connect a NEO-6M GPS module to D3/D4 with SoftwareSerial, store location data on an SD card via SPI, and run for days from a LiPo battery with sleep modes.
Automatic plant watering: Use A0 to read a capacitive soil moisture sensor, D3 to trigger a relay-controlled pump, and D13 to blink status. The whole circuit runs from a 9 V battery for weeks.
RC receiver decoder: Use D2 and D3 (interrupt pins) to decode PWM signals from an RC receiver, then use D9/D10/D11 PWM outputs to drive servos or ESCs.
Frequency counter: Leverage the Nano’s timer and interrupt capabilities to measure signal frequencies from audio to RF. A popular weekend project.
Frequently Asked Questions
How many PWM pins does the Arduino Nano have?
The Arduino Nano has 6 PWM pins: D3, D5, D6, D9, D10, and D11. These are marked with a tilde (~) in most pinout diagrams. Each supports analogWrite() with values from 0 to 255. Note that using the Servo library occupies Timer 1, which disables PWM on D9 and D10 for motor control via analogWrite().
Can I use the Arduino Nano analog pins as digital pins?
Yes — A0 through A5 can be used as digital pins D14 through D19 by calling pinMode() and digitalWrite() with the pin number (e.g., pinMode(A0, OUTPUT)). However, A6 and A7 are analog-only and cannot be used as digital outputs. They do not have internal pullup resistors either.
What is the difference between Arduino Nano and Arduino Nano Every?
The classic Nano uses the ATmega328P (16 MHz, 32 KB flash, 2 KB SRAM). The Nano Every uses the ATmega4809 (20 MHz, 48 KB flash, 6 KB SRAM) and has the same physical pin layout but different pin numbers internally. The Every is faster and has more memory, but older libraries written for the 328P may need minor modifications. Both use 5 V logic.
Why does my Arduino Nano show COM port but fail to upload?
This is almost always a driver issue. Genuine Arduino Nanos use the FTDI FT232 USB-to-serial chip and are plug-and-play on most systems. Many affordable clones use the CH340G chip, which requires a separate driver installation on Windows and older macOS. In the Arduino IDE, also ensure you select the correct board (Arduino Nano) and processor (ATmega328P or ATmega328P Old Bootloader for older boards).
How do I power the Arduino Nano from a battery without USB?
Use the VIN pin with 6–12 V (a 9 V battery or 2S LiPo pack works well), or apply regulated 5 V directly to the 5V pin. For long battery life, reduce power consumption: run at 8 MHz, lower the supply voltage to 3.3 V (requires a 3.3 V regulator), disable the onboard LED (add a jumper to cut the LED connection), and use the ATmega’s sleep modes via the LowPower library to reduce current draw to under 1 µA.
Start Your Arduino Nano Project Today
The Arduino Nano’s tiny footprint hides a surprisingly capable microcontroller. With 14 digital I/O pins, 8 analog inputs, PWM on 6 pins, and hardware support for SPI, I2C, and UART, it can handle the vast majority of embedded electronics projects. Master the pinout and electrical limits, and you will rarely need a bigger board.
Ready to get started? Browse the full Arduino collection at Zbotic — including Nano variants, shields, sensor modules, and complete starter kits. Everything you need to go from pinout diagram to working prototype is in stock.
Add comment