Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.

Arduino Nano Complete Guide: Pinout, Programming & Projects

When clients ask me which microcontroller board to use for space-constrained projects, my answer is almost always the Arduino Nano. After working with dozens of different development boards over my career as a PCB engineer, I keep coming back to this tiny powerhouse for prototypes and production designs alike.

The Arduino Nano packs nearly all the functionality of the full-sized Uno into a board that’s less than half the size and fits perfectly on a standard breadboard. In this comprehensive guide, I’ll share everything you need to know about the Arduino Nano—from understanding its pinout to programming your first sketch and building practical projects.

What is the Arduino Nano?

The Arduino Nano is a compact, breadboard-friendly microcontroller board based on the ATmega328P (version 3.x) or ATmega168 (version 2.x). Developed by Arduino.cc in Italy around 2008, this small but mighty board has become one of the most popular choices for embedded projects where size matters.

Despite measuring just 45mm × 18mm and weighing approximately 7 grams, the Arduino Nano delivers virtually identical functionality to the larger Arduino Uno. The key differences are the smaller form factor, the use of a Mini-B USB connector instead of the standard USB-B, and the absence of a DC power jack.

What makes the Nano particularly appealing is its dual-row pin header design. With 15 pins on each side, the board plugs directly into a breadboard, leaving adjacent rows accessible for component connections. This breadboard-friendly design eliminates the need for jumper wire forests and simplifies prototyping dramatically.

Arduino Nano Technical Specifications

Understanding the specifications helps you determine if the Nano meets your project requirements and how to interface it properly with external components.

Core Specifications Table

ParameterSpecification
MicrocontrollerATmega328P (Nano 3.x)
Architecture8-bit AVR
Operating Voltage5V
Input Voltage (VIN)7-12V
Input Voltage (Limit)6-20V
Digital I/O Pins14 (6 PWM capable)
Analog Input Pins8 (A0-A7)
DC Current per I/O Pin20mA (40mA max)
Flash Memory32KB (2KB bootloader)
SRAM2KB
EEPROM1KB
Clock Speed16MHz
USB ConnectorMini-B USB
Dimensions45mm × 18mm
Weight~7g

Memory Architecture Explained

The ATmega328P at the heart of the Arduino Nano contains three types of memory, each serving specific purposes:

Flash Memory (32KB): This non-volatile memory stores your program code. The bootloader occupies 2KB, leaving 30KB for your sketches. For most projects, this is plenty of space, but complex programs with extensive libraries may approach these limits.

SRAM (2KB): Static RAM holds variables and data during program execution. This is often the constraining factor in complex projects. Monitor memory usage with the SRAM check tools if you experience strange behavior or crashes.

EEPROM (1KB): Electrically Erasable Programmable Read-Only Memory retains data when power is removed. Use this for storing configuration settings, calibration values, or other data that needs to persist between power cycles.

Arduino Nano Pinout Diagram Explained

The Arduino Nano features 30 pins arranged in two rows of 15. Understanding each pin’s function is essential for successful project development.

Complete Pin Reference Table

PinNamePrimary FunctionAlternate Functions
1D1/TXDigital I/OUART Transmit
2D0/RXDigital I/OUART Receive
3RESETResetActive LOW reset
4GNDGroundCommon reference
5D2Digital I/OExternal Interrupt 0
6D3Digital I/O, PWMExternal Interrupt 1
7D4Digital I/O
8D5Digital I/O, PWM
9D6Digital I/O, PWM
10D7Digital I/O
11D8Digital I/O
12D9Digital I/O, PWM
13D10Digital I/O, PWMSPI SS
14D11Digital I/O, PWMSPI MOSI
15D12Digital I/OSPI MISO
16D13Digital I/OSPI SCK, Built-in LED
173V33.3V Output50mA max
18AREFAnalog ReferenceExternal ADC reference
19A0Analog InputDigital I/O (D14)
20A1Analog InputDigital I/O (D15)
21A2Analog InputDigital I/O (D16)
22A3Analog InputDigital I/O (D17)
23A4Analog InputI2C SDA, Digital I/O
24A5Analog InputI2C SCL, Digital I/O
25A6Analog Input OnlyNo digital function
26A7Analog Input OnlyNo digital function
27+5V5V OutputRegulated power
28RESETResetActive LOW reset
29GNDGroundCommon reference
30VINVoltage Input7-12V external power

Digital Pins (D0-D13)

The 14 digital pins operate at 5V logic levels and can be configured as inputs or outputs using the pinMode() function. Each pin can source or sink up to 20mA safely (40mA absolute maximum). Keep the total current draw under 200mA across all pins to avoid damaging the microcontroller.

PWM Pins: Six digital pins (D3, D5, D6, D9, D10, D11) support Pulse Width Modulation, indicated by the tilde (~) symbol on most pinout diagrams. PWM enables analog-like output for LED dimming, motor speed control, and servo positioning.

External Interrupts: Pins D2 and D3 can trigger hardware interrupts for time-sensitive applications. Use attachInterrupt() to configure rising, falling, or change detection. Interrupt 0 (D2) has higher priority than Interrupt 1 (D3) if both trigger simultaneously.

Analog Pins (A0-A7)

The Arduino Nano has eight analog input pins—two more than the Uno. The 10-bit ADC converts 0-5V signals to values from 0 to 1023, providing approximately 4.88mV resolution per step.

Important Note: Pins A6 and A7 are analog input only. Unlike A0-A5, they cannot function as digital I/O pins. This is a common source of confusion when migrating projects from other Arduino boards.

Pins A4 and A5 double as the I2C interface (SDA and SCL respectively). When using I2C devices, these pins are unavailable for analog readings.

Communication Interfaces

The Arduino Nano supports three serial communication protocols:

UART (Serial): Pins D0 (RX) and D1 (TX) provide hardware serial communication. These pins connect to the USB-to-serial converter (CH340G or FT232RL depending on the board version), so they’re also used during programming.

I2C: Pins A4 (SDA) and A5 (SCL) form the Two-Wire Interface bus. I2C allows connection of multiple devices using only two wires, with each device having a unique address.

SPI: Pins D10 (SS), D11 (MOSI), D12 (MISO), and D13 (SCK) provide high-speed serial communication. The ICSP header also provides access to these signals.

Powering Your Arduino Nano

One of the most common beginner mistakes involves power supply selection. The Arduino Nano offers three powering methods, each with specific requirements.

Power Supply Options

MethodVoltageNotes
Mini-B USB5VDirect from computer or USB adapter
VIN Pin7-12VThrough onboard voltage regulator
+5V Pin5VBypasses regulator (not recommended)

USB Power: The simplest method—just connect a Mini-B USB cable to your computer or a 5V USB power adapter. This provides approximately 500mA current capacity.

VIN Pin: For standalone projects, apply 7-12V unregulated DC to the VIN pin. The onboard AMS1117-5.0 linear regulator converts this to stable 5V. Avoid voltages below 7V (unstable operation) or above 12V (regulator overheating).

+5V Pin Direct: You can apply regulated 5V directly to the +5V pin, bypassing the regulator. However, this provides no overvoltage protection, so use only with reliable power sources.

The Nano automatically selects the highest voltage power source available—a convenient feature when transitioning between USB-powered development and battery-powered deployment.

Programming the Arduino Nano

Getting your first program running on the Arduino Nano takes just a few minutes with the right setup.

Step 1: Install the Arduino IDE

Download the Arduino IDE from the official Arduino website. The software is available for Windows, macOS, and Linux at no cost. Install using the default settings.

Step 2: Install Drivers (If Needed)

Genuine Arduino Nano boards use the FT232RL USB-to-serial chip, which requires FTDI drivers. Clone boards typically use the CH340G chip, requiring separate CH340 drivers. If your computer doesn’t recognize the board, installing the appropriate driver usually resolves the issue.

Step 3: Connect and Configure

Connect your Arduino Nano using a Mini-B USB cable. In the Arduino IDE:

  1. Select Tools → Board → Arduino AVR Boards → Arduino Nano
  2. Select Tools → Processor (choose based on your board):
    1. ATmega328P for boards manufactured after January 2018
    1. ATmega328P (Old Bootloader) for older boards or clones
  3. Select the correct COM port under Tools → Port

Step 4: Upload Your First Sketch

Load the Blink example from File → Examples → 01.Basics → Blink and click the Upload button. If successful, the onboard LED connected to pin D13 will blink at one-second intervals.

Troubleshooting Upload Errors

If you encounter the dreaded “avrdude: stk500_recv(): programmer is not responding” error:

  1. Try switching between ATmega328P and ATmega328P (Old Bootloader) under Processor settings
  2. Verify the correct COM port is selected
  3. Disconnect any components connected to D0 and D1 (they interfere with programming)
  4. Test with a different USB cable (some cables are charge-only without data lines)

Arduino Nano vs Arduino Uno Comparison

Understanding the differences between Nano and Uno helps you choose the right board for your project.

FeatureArduino NanoArduino Uno
MicrocontrollerATmega328PATmega328P
Digital I/O Pins1414
Analog Inputs8 (A0-A7)6 (A0-A5)
PWM Pins66
Flash Memory32KB32KB
SRAM2KB2KB
Clock Speed16MHz16MHz
USB ConnectorMini-BType-B
DC JackNoYes
Breadboard FriendlyYesNo
Dimensions45 × 18mm68.6 × 53.4mm
Price Range~$20-25~$25-28

When to Choose Nano: Space-constrained projects, breadboard prototyping, wearables, embedded systems, any project where size matters.

When to Choose Uno: Learning environments (easier to handle), projects requiring shields, applications where the DC jack is beneficial.

Practical Arduino Nano Projects

The Arduino Nano’s compact size makes it perfect for numerous applications. Here are project ideas organized by difficulty level.

Beginner Projects

LED Blinking Patterns: Start with the classic blink sketch, then progress to more complex patterns using multiple LEDs and timing variations.

Temperature and Humidity Monitor: Connect a DHT11 or DHT22 sensor to display environmental conditions on an LCD or send data via serial.

Simple Alarm System: Use a PIR motion sensor to detect movement and trigger a buzzer or LED alert.

Intermediate Projects

Digital Clock with RTC: Combine a DS3231 real-time clock module with an OLED display for an accurate clock that maintains time even when powered off.

Weather Station: Integrate temperature, humidity, and barometric pressure sensors with an LCD display for a complete weather monitoring system.

Plant Watering System: Use soil moisture sensors to trigger water pumps automatically when plants need hydration.

Advanced Projects

Gesture-Controlled Devices: Implement accelerometer-based gesture recognition to control lights, music, or other electronics.

Fingerprint Security System: Interface a fingerprint sensor module for biometric access control applications.

Mini Robot Platform: Build a line-following or obstacle-avoiding robot using motor drivers, sensors, and the Nano as the brain.

Arduino Nano Variants Comparison

Arduino offers several Nano-format boards with different capabilities.

BoardProcessorClockFlashWiFi/BTVoltage
Nano (Classic)ATmega328P16MHz32KBNo5V
Nano EveryATmega480920MHz48KBNo5V
Nano 33 IoTSAMD2148MHz256KBYes3.3V
Nano 33 BLEnRF5284064MHz1MBBLE3.3V
Nano RP2040RP2040133MHz16MBNo3.3V

Nano Every: Drop-in replacement with more memory and processing power. Ideal when you’ve outgrown the classic Nano’s capabilities.

Nano 33 IoT: Adds WiFi and Bluetooth for connected projects. Note the 3.3V logic—not directly compatible with 5V components.

Nano 33 BLE: Optimized for Bluetooth Low Energy applications with impressive processing power. Includes onboard IMU.

ICSP Header and Advanced Programming

The Arduino Nano includes a 6-pin ICSP (In-Circuit Serial Programming) header on the bottom of the board. This header provides direct access to the SPI interface and enables advanced programming capabilities.

ICSP Header Pinout

PinNameFunction
1MISOMaster In, Slave Out
2VCC5V Power
3SCKSerial Clock
4MOSIMaster Out, Slave In
5RESETReset Line
6GNDGround

Uses for the ICSP Header

Bootloader Burning: If you’re building custom boards or your bootloader becomes corrupted, use an ISP programmer connected to the ICSP header to restore functionality.

Direct AVR Programming: Bypass the bootloader entirely for applications requiring maximum flash memory or faster startup times.

Using Arduino as ISP: One Arduino Nano can program another through the ICSP header, useful for production programming or bootloader recovery.

PCB Design Tips for Arduino Nano Integration

When designing custom PCBs that incorporate the Arduino Nano, consider these practical guidelines:

Footprint Specifications: The Nano uses two 15-pin headers spaced 15.24mm (0.6 inches) apart with standard 2.54mm (0.1 inch) pitch. Use socket headers for removable installation or solder directly for permanent mounting.

Power Distribution: Place 0.1µF ceramic bypass capacitors near the VCC pins on both sides of the board. Add 10µF electrolytic capacitors near VIN input for additional filtering.

USB Access: Provide 3-5mm clearance around the Mini-B USB connector for cable insertion and strain relief.

Reset Circuit: For automatic programming, connect DTR from your serial interface through a 0.1µF capacitor to the RESET pin. Add a 10kΩ pull-up resistor from RESET to VCC.

Common Mistakes and How to Avoid Them

Over years of working with Arduino Nano boards, I’ve seen (and made) plenty of mistakes. Here’s how to avoid the most common ones:

Exceeding Current Limits: Each I/O pin handles 20mA safely. Driving LEDs without resistors or connecting motors directly to pins damages the microcontroller. Always calculate current requirements and use appropriate drivers.

Incorrect Bootloader Selection: The new bootloader introduced in 2018 causes upload failures if you select the wrong option. If uploads fail, try the other bootloader option before investigating further.

Using A6/A7 as Digital Pins: Unlike A0-A5, pins A6 and A7 are analog input only. They cannot function as digital I/O pins, regardless of how you configure them in software.

Powering Through +5V Pin: While possible, this bypasses voltage regulation and protection circuitry. Any voltage spike or reverse polarity destroys the board instantly.

Blocking Serial Communication During Programming: Components connected to D0/D1 interfere with sketch uploads. Disconnect them before programming, or design circuits that don’t block these lines.

Useful Resources for Arduino Nano Development

ResourceDescription
Arduino Nano DocumentationOfficial specifications and guides
ATmega328P DatasheetComplete microcontroller reference
Arduino IDE DownloadProgramming software
Arduino ForumCommunity support and discussions
Arduino Project HubProject tutorials and inspiration
Arduino Nano SchematicHardware design files
Arduino Nano Pinout PDFDownloadable pin reference

Frequently Asked Questions

What’s the difference between Arduino Nano and Nano Every?

The Arduino Nano Every uses the ATmega4809 microcontroller instead of the ATmega328P, providing 50% more flash memory (48KB vs 32KB), 200% more RAM (6KB vs 2KB), and slightly faster operation (20MHz vs 16MHz). It’s pin-compatible with the classic Nano but requires a different board selection in the Arduino IDE. The Every is ideal when you’ve outgrown the original Nano’s capabilities.

Can I use Arduino Uno code on an Arduino Nano?

Yes, in most cases code written for Arduino Uno works directly on Arduino Nano without modification. Both boards use the same ATmega328P microcontroller and share identical digital pin assignments. The main difference is that Nano has two additional analog pins (A6 and A7). Some shield-specific code may need adjustment if it relies on hardware not present on the Nano.

Why won’t my Arduino Nano upload sketches?

The most common causes are incorrect processor selection (try both ATmega328P options), wrong COM port, faulty USB cable (use a data-capable cable, not charge-only), or components connected to pins D0/D1 blocking serial communication. Clone boards often require the “Old Bootloader” option even if recently purchased.

How do I power an Arduino Nano without USB?

Apply 7-12V DC to the VIN pin, which passes through the onboard voltage regulator. Alternatively, connect a regulated 5V supply directly to the +5V pin (bypassing the regulator). For battery power, a 9V battery with barrel connector to VIN works well for short-term projects, while 4×AA batteries (6V) may cause unstable operation.

Is the Arduino Nano 3.3V or 5V?

The classic Arduino Nano operates at 5V logic levels. However, the newer Nano 33 series (Nano 33 IoT, Nano 33 BLE, Nano 33 BLE Sense) operates at 3.3V and is NOT 5V tolerant. Connecting 5V signals to Nano 33 boards will damage them. Always verify your specific board version before connecting components.

Conclusion

The Arduino Nano remains one of the most versatile and practical microcontroller boards available. Its combination of compact size, breadboard compatibility, and full Arduino functionality makes it the go-to choice for countless projects from simple LED circuits to sophisticated embedded systems.

Whether you’re just starting your electronics journey or you’re an experienced developer looking for a space-efficient solution, the Arduino Nano delivers remarkable capability in a tiny package. The key is understanding its pinout, respecting its electrical limits, and choosing the right variant for your specific needs.

Start with simple projects to build confidence, then progressively tackle more complex challenges. The Arduino community provides extensive resources, example code, and support to help you along the way. Before long, you’ll be designing custom solutions that leverage this little board’s impressive capabilities.

Now grab your Arduino Nano, fire up the IDE, and start building something amazing.

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.

  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.

Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.