The Enduring Standard: Understanding the Nano Arduino Pinout
Despite the explosion of 32-bit ARM Cortex boards and AI-capable microcontrollers in 2026, the classic 8-bit Arduino Nano remains a staple on workbenches worldwide. Its breadboard-friendly DIP-30 form factor, 5V logic levels, and robust ATmega328P microcontroller make it the undisputed king of rapid prototyping. However, its compact size often obscures critical hardware limitations. Whether you are wiring up an I2C OLED display, driving MOSFETs, or debugging a clone board with a CH340 USB-C interface, having a reliable nano arduino pinout reference is essential to avoid fried components and wasted hours.
Quick Hardware Specs (Nano V3 / ATmega328P)
• Microcontroller: ATmega328P-AU (8-bit AVR, 16 MHz)
• Operating Voltage: 5V Logic
• Digital I/O Pins: 22 (of which 6 provide PWM output)
• Analog Input Pins: 8 (A0-A7)
• DC Current per I/O Pin: 20 mA (Recommended) / 40 mA (Absolute Max)
• Flash Memory: 32 KB (2 KB used by bootloader)
The Definitive Nano Arduino Pinout Table
Below is the comprehensive mapping of the Nano's 30 physical header pins. Keep this matrix handy when assigning pins in your sketch to avoid peripheral conflicts.
| Pin | Name | Primary Function | Alternate / Notes |
|---|---|---|---|
| D0 | RX0 | Digital I/O | Hardware Serial RX (USB & Header) |
| D1 | TX0 | Digital I/O | Hardware Serial TX (USB & Header) |
| D2 | INT0 | Digital I/O | External Interrupt 0 |
| D3 | INT1 / PWM | Digital I/O | External Interrupt 1, PWM (Timer 2) |
| D4-D8 | Standard | Digital I/O | General purpose digital pins |
| D9 | PWM | Digital I/O | PWM (Timer 1) |
| D10 | SS / PWM | Digital I/O | SPI Slave Select, PWM (Timer 1) |
| D11 | MOSI / PWM | Digital I/O | SPI MOSI, PWM (Timer 2) |
| D12 | MISO | Digital I/O | SPI MISO |
| D13 | SCK / LED | Digital I/O | SPI SCK, Onboard LED |
| A0-A3 | Analog | Analog Input | Can be used as Digital I/O (D14-D17) |
| A4 | SDA | Analog Input | I2C Data (also D18) |
| A5 | SCL | Analog Input | I2C Clock (also D19) |
| A6-A7 | Analog Only | Analog Input | Cannot be used as Digital I/O or with internal pull-ups |
Power Delivery & Voltage Limits
Understanding the power architecture is where most beginners destroy their boards. The Nano offers three distinct power-related pins:
- USB 5V: When powered via USB, the 5V pin is directly tied to the USB VBUS. You can safely draw up to 500mA (if your USB port and polyfuse allow), but the board's traces are thin. Keep continuous draws under 400mA.
- Vin (Voltage In): Connect an unregulated 7V-12V DC source here. This feeds the onboard linear regulator (typically an NCP1117 5V). Warning: Because it is a linear regulator, stepping down 12V to 5V generates massive heat. If drawing more than 100mA from the 5V rail while using Vin, the regulator will thermally throttle or fail.
- 3.3V Pin: This is not powered by a dedicated buck converter. On genuine Nanos and high-quality clones, this 3.3V output is sourced directly from the internal voltage regulator of the USB-to-Serial chip (FT232RL or CH340G). It is strictly limited to 50mA maximum.
Nano Arduino Pinout FAQ
1. Where are the I2C and SPI pins on the Nano?
Unlike the Arduino Uno R4 or the Nano 33 IoT, the classic Nano does not have dedicated SDA/SCL pins near the AREF header. You must use A4 (SDA) and A5 (SCL) for I2C communication. For SPI, the hardware pins are mapped to D11 (MOSI), D12 (MISO), D13 (SCK), and D10 (SS). If you are using the Wire.h or SPI.h libraries, the compiler handles this routing automatically, but physical wiring must match these exact pins.
2. Why can't I use A6 and A7 as digital I/O?
This is the most common trap in the nano arduino pinout. On the ATmega328P chip used in the Nano, pins A6 and A7 are hardwired directly to the Analog-to-Digital Converter (ADC) multiplexer. They lack the internal digital output buffers and input pull-up resistors present on A0-A5. Attempting to use digitalWrite(A6, HIGH) or pinMode(A7, INPUT_PULLUP) will silently fail. Use A6 and A7 exclusively for reading analog sensors like potentiometers or voltage dividers. For a deep dive into AVR pin multiplexing, consult the official Arduino Nano hardware documentation.
3. How does the Nano handle PWM and Timer conflicts?
The Nano features 6 PWM-capable pins: D3, D5, D6, D9, D10, and D11. However, they are grouped by internal hardware timers. D9 and D10 share Timer1; D3 and D11 share Timer2; D5 and D6 share Timer0. If you use the tone() library to generate audio frequencies on D3, it will hijack Timer2, effectively disabling PWM functionality on D11. Similarly, altering Timer0 frequencies for high-speed PWM will break the millis() and delay() functions, as they rely on Timer0's default overflow interrupt.
4. Do I need logic level shifters for 3.3V sensors?
Yes. The Nano operates at 5V logic. While some modern 3.3V sensors (like certain Bosch BME280 breakout boards) feature 5V-tolerant I2C lines, connecting 5V digital outputs directly to the RX/TX or SPI lines of a strict 3.3V component (like an ESP-01 or a raw SD card module) will degrade or destroy the sensor over time. Always use a bidirectional logic level shifter (like the BSS138 MOSFET-based shifters) when bridging 5V Nano pins to 3.3V peripherals. Read more about voltage thresholds in this excellent guide on Logic Levels by SparkFun.
Breadboarding & Physical Layout Tips
The physical spacing of the Nano is exactly 0.6 inches (15.24mm) between the left and right header rows. When plugged into a standard 830-point solderless breadboard, this leaves exactly one hole free on either side of the board. This is perfect for inserting jumper wires, but it means you cannot easily plug in pre-soldered sensor modules directly across the Nano. Furthermore, the Mini-USB port (on older V3 clones) or USB-C port (on 2026 modern clones) overhangs the edge of standard breadboards, requiring you to position the board at the very end of the rails to avoid bending the connector.
2026 Clone Market: USB-C and the CH340 Driver
If you are purchasing Nano clones today, you will likely receive a board equipped with a USB-C connector and a CH340C or CH341A USB-to-Serial chip instead of the legacy FTDI FT232RL. While electrically identical in terms of the ATmega328P pinout, the CH340 requires specific drivers on older operating systems. Windows 11 and modern macOS distributions generally include CH340 drivers natively, but if your IDE fails to upload (showing a 'Serial Port not found' error), manually installing the latest WCH CH340 driver package resolves 99% of upload failures. Always ensure you select 'ATmega328P (Old Bootloader)' in the Arduino IDE if you encounter the classic avrdude: stk500_getsync() attempt 10 of 10 timeout error, as many cheap clones ship with the 57600-baud legacy bootloader rather than the standard 115200-baud Optiboot.
Summary
Mastering the nano arduino pinout goes beyond memorizing pin numbers; it requires understanding the underlying ATmega328P architecture, timer allocations, and strict power delivery limits. By respecting the 50mA limit on the 3.3V rail, avoiding digital writes to A6/A7, and properly shifting logic levels for modern sensors, your Nano-based projects will remain stable, reliable, and ready for deployment.






