THE ULTIMATE GUIDE TO THE ARDUINO® NANO PINOUT

The Arduino® Nano is a compact yet powerful development board based on the ATmega328P microcontroller. Designed for small-scale projects and breadboard use, it offers all the core features of the Arduino® UNO in a much smaller footprint. Whether you’re building a sensor network, a wearable project, or automating something around the house, the Nano gives you everything you need — with flexibility and precision. In this guide, we’ll walk through the complete Arduino® Nano pinout — clearly and accurately — so you can start your project with confidence.

What is the Arduino® Nano?

Microcontroller:
The heart of the Arduino® Nano is the ATmega328P, an 8-bit AVR microcontroller by Atmel (now part of Microchip). It runs at 16 MHz, with 32KB of flash memory, 2KB of SRAM, and 1KB of EEPROM.

Board Format:
The Nano’s design is breadboard-friendly and includes a mini-USB port for programming, ICSP header, onboard voltage regulation, and 30 easily accessible pins.

Power Supply Options

You can power the Arduino® Nano in two primary ways:

  • VIN Pin: Accepts 7V–12V (recommended). It passes through the onboard voltage regulator. Supplying more than 12V may overheat the regulator; less than 7V might be insufficient.
  • USB (Mini-B): Supplies a regulated 5V directly to the board from your computer or power bank. Max current: 500mA (shared between board and peripherals).

Regulated Outputs:

  • 5V Pin: Outputs 5V from the onboard regulator or USB.
  • 3.3V Pin: Supplies 3.3V (max ~50mA), derived from the onboard regulator.
  • GND Pins (x2): Connect to ground. Essential for completing circuits and ensuring a common voltage reference.

RESET:

  • One reset button and two RESET pins (all connected). Pulling RESET low restarts the microcontroller.

** The Arduino Nano pinout is available for download at the end of this post in high resolution – for free!

Analog Input Pins

The Arduino® Nano provides 8 analog input pins (A0–A7).

  • ADC Resolution: 10-bit (0–1023)
  • Voltage Range: 0–5V (relative to AREF or Vcc)
  • Pins A6 and A7: Input only — not available as digital I/O

These pins use the onboard Analog-to-Digital Converter (ADC) to read voltages and convert them to digital values. Perfect for sensors, potentiometers, and analog monitoring.

Digital I/O Pins

There are 14 digital I/O pins on the Nano (D0–D13).

  • Each pin can act as input or output.
  • All pins support digital HIGH (5V) and LOW (0V) logic.
  • Pin 13 is connected to the onboard LED.
  • Current Limits:
    • Max per pin: 40mA (absolute max; recommended: 20mA)
    • Max total draw from all I/O: ~200mA

PWM (Pulse Width Modulation)

6 digital pins support PWM output:

  • PWM Pins: D3, D5, D6, D9, D10, D11
  • PWM Frequency: ~490Hz (default)
  • Duty Cycle: Configurable via analogWrite() (0–255)

Applications: Dim LEDs, control motor speed, generate audio signals.

Serial Communication

The Nano supports serial data exchange through:

  • Hardware Serial (UART):
    • RX (D0), TX (D1)
    • Used for USB programming and serial monitor
  • Software Serial: Additional serial ports can be simulated using the SoftwareSerial library (on any digital pins).

Note: Pins D0 and D1 are shared with USB communication. Avoid using them in regular sketches unless you handle serial carefully.

SPI Communication

The Nano includes an SPI interface for fast communication with peripherals:

  • SPI Pins (on I/O headers):
    • SS: D10
    • MOSI: D11
    • MISO: D12
    • SCK: D13
  • ICSP Header: Alternate SPI access, used for programming.

Applications: Connect to SD cards, shift registers, displays, etc.

I2C Communication

I2C enables communication with multiple devices using only two pins:

  • SDA (Data): A4
  • SCL (Clock): A5

Supports up to 255 devices on the same bus using unique addresses. Often used with sensors, real-time clocks, and displays.

External Interrupts

The Nano has two external interrupt pins:

  • INT0: D2
  • INT1: D3

These can trigger an interrupt on a signal change (RISING, FALLING, or CHANGE). Useful for rotary encoders, wake-on-event, or real-time triggers.

Pin Change Interrupts: Available on most other I/O pins via advanced programming.

Arduino® Nano GPIO Quick Reference Table

PinDigital I/OPWMAnalog InInterruptSpecial Function
D0Yes (RX)NoNoNoUART RX (Hardware Serial)
D1Yes (TX)NoNoNoUART TX (Hardware Serial)
D2YesNoNoINT0External Interrupt 0
D3YesYesNoINT1PWM Output, Interrupt
D4YesNoNoNo
D5YesYesNoNoPWM Output
D6YesYesNoNoPWM Output
D7YesNoNoNo
D8YesNoNoNo
D9YesYesNoNoPWM Output
D10YesYesNoNoSPI SS (Slave Select)
D11YesYesNoNoSPI MOSI
D12YesNoNoNoSPI MISO
D13YesNoNoNoSPI SCK, Onboard LED
A0YesNoYesPCINT14Analog Input 0
A1YesNoYesPCINT15Analog Input 1
A2YesNoYesPCINT16Analog Input 2
A3YesNoYesPCINT17Analog Input 3
A4YesNoYesPCINT18I2C SDA
A5YesNoYesPCINT19I2C SCL
A6NoNoYesNoAnalog-only
A7NoNoYesNoAnalog-only

AREF – Analog Reference

The AREF pin is used to set an external voltage reference for the ADC. Useful when using sensors with output ranges below 5V for increased accuracy.

ICSP Header

ICSP (In-Circuit Serial Programming) allows firmware flashing directly to the ATmega328P chip.

  • Pins: 6-pin header
  • Functions: MISO, MOSI, SCK, RESET, VCC, GND
  • Used by bootloaders and ISP programmers (e.g. USBasp, USBtinyISP).

Best Practices and Common Mistakes

Optimize your Arduino® Nano projects by avoiding these common pitfalls:

  • Don’t exceed 20mA per pin (even though 40mA is the absolute max).
  • Avoid using pins D0 (RX) and D1 (TX) unless you’re not using serial communication via USB.
  • Pins A6 and A7 are analog-only — don’t try to use them as digital I/O.
  • Always connect all GNDs in your circuit for a common reference.
  • Use decoupling capacitors (0.1µF) near sensors or modules to stabilize power.
  • Match voltage levels when interfacing with 3.3V devices — use logic level shifters if needed.
  • Don’t forget to debounce mechanical switches or use the Bounce2 library.

How to Program the Arduino® Nano

Development Environments:

You can write and upload code to the Arduino® Nano using:

  • Arduino IDE – Simple, widely supported, perfect for beginners and quick testing.
  • PlatformIO – Advanced development platform with auto-completion, debugging, and Git integration.
  • AVR-GCC / Atmel Studio – For low-level AVR development and professional control.

Programming Interface:

FunctionPinDescription
TXD1Transmit serial data to PC (via USB)
RXD0Receive serial data from PC
RESETRESET pin or buttonResets the microcontroller
ICSP6-pin headerUsed to burn the bootloader or reflash firmware

Steps to Upload Code:

  1. Connect the Nano via mini-USB.
  2. In the Arduino IDE, select Board: “Arduino Nano”.
  3. Select the correct Processor (usually ATmega328P or ATmega328P (Old Bootloader)).
  4. Choose the right COM port.
  5. Click Upload.

Conclusion: Compact Power, Infinite Possibilities

The Arduino® Nano may be small, but it’s built for serious development. From controlling LED’s and sensors to managing motors and displays, it has everything you need to build compact, powerful electronics. Understanding the Nano’s pinout unlocks your creativity and gives you full control over your project’s potential.

Happy building!

Download the Arduino® Nano Pinout in High Resolution

Download the Arduino® Nano pinout here in high resolution – for free*!

Free to use under the MIT license — attribution is required.

Scroll to Top