Overview

The Arduino Nano is one of the most popular and enduring boards in the Arduino lineup. Introduced in 2008, it packs the same ATmega328P microcontroller found on the Arduino Uno R3 into a compact 18 × 45 mm form factor designed to fit directly into a breadboard. This combination of familiarity and small size has made the Nano a go-to choice for hobbyists, students, and engineers who want to move a project from a full-sized Uno to something more compact without rewriting code.

The board connects to a computer via a mini-USB port, which also powers the board. An onboard USB-to-serial bridge chip (FT232RL on original units, CH340 on many modern units and clones) handles communication between the USB port and the ATmega328P's hardware UART. The board runs at 5V logic, making it compatible with the broad ecosystem of 5V sensors and modules.

Because the Nano shares the same microcontroller as the Uno R3, virtually all sketches and libraries that work on the Uno will run unchanged on the Nano. This makes it an ideal choice for finalizing a prototype: develop on the larger Uno, then migrate to the Nano for the finished build.

Quick Overview

Feature Detail
Microcontroller ATmega328P (8-bit AVR)
Clock Speed 16 MHz
Operating Voltage 5V
Flash Memory 32 KB (2 KB used by bootloader)
SRAM 2 KB
EEPROM 1 KB
Digital I/O Pins 22
PWM Pins 6 (D3, D5, D6, D9, D10, D11)
Analog Input Pins 8 (A0–A7)
USB Interface mini-USB (FT232RL or CH340)
Dimensions 18 × 45 mm

Key Features

  • Same ATmega328P MCU as the Arduino Uno R3 — full code and library compatibility
  • Compact breadboard-friendly design with 0.1" (2.54 mm) pin spacing
  • 32 KB Flash, 2 KB SRAM, 1 KB EEPROM
  • 8 analog input channels (A0–A7); note A6 and A7 are analog-only with no digital function
  • 6 hardware PWM outputs on D3, D5, D6, D9, D10, and D11
  • Hardware I2C on A4 (SDA) and A5 (SCL)
  • Hardware SPI on D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK)
  • 1 hardware UART (D0 RX, D1 TX)
  • Mini-USB port for power and programming
  • Onboard power LED and user-accessible LED on D13
  • Operates from 5V USB or 7–12V on VIN pin

Technical Specifications

Parameter Value
Microcontroller ATmega328P
Architecture 8-bit AVR
Clock Speed 16 MHz
Operating Voltage 5V
Input Voltage (VIN) 7–12V recommended (max 20V)
USB Connector mini-USB
USB-to-Serial Bridge FT232RL (original) or CH340 (many modern units)
Flash Memory 32 KB (2 KB reserved for bootloader)
SRAM 2 KB
EEPROM 1 KB
Digital I/O Pins 22
PWM Channels 6 (D3, D5, D6, D9, D10, D11)
Analog Input Pins 8 (A0–A7)
ADC Resolution 10-bit
UART 1 (D0/D1)
I2C 1 (A4 SDA, A5 SCL)
SPI 1 (D10–D13)
DC Current per I/O Pin 40 mA
DC Current (3.3V Pin) 50 mA
Board Dimensions 18 × 45 mm
Weight ~7 g

Pinout

Arduino Nano pinout diagram

Digital Pins

Pins D0–D13 are digital I/O. D0 (RX) and D1 (TX) are shared with the hardware UART. D13 is connected to the onboard LED.

PWM Pins

D3, D5, D6, D9, D10, and D11 support analogWrite() for PWM output at approximately 490 Hz (D5 and D6 at ~980 Hz).

Analog Pins

A0–A5 are shared analog/digital pins. A6 and A7 are analog input only — they cannot be used as digital I/O.

Communication Pins

Interface Pins
UART D0 (RX), D1 (TX)
I2C A4 (SDA), A5 (SCL)
SPI D10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK)

Power Pins

Pin Function
VIN External supply input (7–12V recommended)
5V Regulated 5V output (from USB or onboard regulator)
3.3V 3.3V regulated output (up to 50 mA)
GND Ground
RESET Resets the microcontroller when pulled LOW
AREF Analog reference voltage for ADC

Power

The Arduino Nano can be powered in two ways:

  • Via the mini-USB port: the USB 5V rail powers the board directly through a small diode.
  • Via the VIN pin: accepts 7–12V (absolute maximum 20V) and steps it down through an onboard voltage regulator to 5V.

When both USB and VIN are connected, VIN takes precedence if it is above the USB voltage. The 3.3V pin provides up to 50 mA from a secondary regulator.

The board does not have an onboard power switch. Current draw is typically 15–20 mA at idle, not counting any attached peripherals or pin outputs.

Getting Started

Install the Arduino IDE

Download and install the Arduino IDE from https://www.arduino.cc/en/software. The Nano appears under Tools > Board > Arduino AVR Boards > Arduino Nano.

Select the Correct Processor

If your Nano uses a CH340 bridge (common on lower-cost units), you may need to install the CH340 driver separately. In the Arduino IDE, under Tools > Processor, select ATmega328P (Old Bootloader) if you encounter upload errors with the default setting.

Blink Example

// Blink the onboard LED on pin 13 void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); // LED on delay(1000); digitalWrite(13, LOW); // LED off delay(1000); }

Read an Analog Sensor

// Read a potentiometer on A0 and print to Serial Monitor void setup() { Serial.begin(9600); } void loop() { int value = analogRead(A0); // 0–1023 float voltage = value * (5.0 / 1023.0); Serial.print("ADC: "); Serial.print(value); Serial.print(" Voltage: "); Serial.println(voltage); delay(200); }

Programming

The Arduino Nano is programmed using the Arduino IDE or any compatible environment (PlatformIO, VS Code with Arduino extension, etc.). Select Arduino Nano under the Arduino AVR Boards package. Sketches are uploaded via the mini-USB port.

The bootloader occupies 2 KB of the 32 KB Flash, leaving 30 KB for user code. The board uses the STK500 protocol for uploads.

// I2C scanner — finds all connected I2C devices #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("Scanning I2C bus..."); for (byte addr = 1; addr < 127; addr++) { Wire.beginTransmission(addr); byte error = Wire.endTransmission(); if (error == 0) { Serial.print("Device found at 0x"); if (addr < 16) Serial.print("0"); Serial.println(addr, HEX); } } Serial.println("Scan complete."); } void loop() {}

Package Contents

Item Quantity
Arduino Nano board 1
Mini-USB cable 1 (included with some retail versions; check listing)

Applications

  • Breadboard prototyping and compact embedded projects
  • Sensor data logging (temperature, humidity, soil moisture, etc.)
  • Small robotics and motor control
  • LED matrix and strip controllers
  • Custom keyboards and input devices (with external USB HID libraries)
  • Wearables and compact enclosure builds
  • Teaching and educational projects
  • Replacing larger Uno-based designs in final products

Where to Buy

Retailer Link
Arduino Official Store https//store.arduino.cc/products/arduino-nano
Amazon https//www.amazon.com/s?k=Arduino+Nano

Equivalent Boards

Board Key Difference
Arduino Nano Every Same form factor, ATmega4809 MCU, more memory (48 KB Flash, 6 KB SRAM), 20 MHz
Arduino Uno R3 Same ATmega328P, larger DIP form factor, Type-B USB
Arduino Pro Mini Same ATmega328P, no onboard USB, even smaller, requires external USB adapter

Documentation

Resource Link
Official Product Page https//store.arduino.cc/products/arduino-nano
Documentation & Pinout https//docs.arduino.cc/hardware/nano
Arduino IDE Download https//www.arduino.cc/en/software
ATmega328P Datasheet https//ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf

Notes

  • A6 and A7 are analog-input-only pins. They cannot be used with digitalWrite() or digitalRead().
  • Many Nano units sold today use the CH340 USB-to-serial chip rather than the original FT232RL. Windows users may need to install the CH340 driver manually. The board functions identically once the driver is installed.
  • When uploading to CH340-based Nanos, select ATmega328P (Old Bootloader) under Tools > Processor if the default setting fails.
  • The 3.3V pin is output only (up to 50 mA from the regulator) — do not apply external voltage to it.
  • The Nano does not have a built-in voltage regulator indicator; always verify your VIN supply is within range.
  • I/O pins operate at 5V logic — compatible with most 5V sensors and modules but not directly compatible with 3.3V-only peripherals without a level shifter.

Community

Revision History

Version Date Notes
v1.0 2026-06 Initial entry