Arduino Nano Pinout: Complete Guide to All 30 Pins
The Arduino Nano gives you 30 pins to work with: 14 digital I/O, 8 analog inputs, and a handful of power and specialty pins. That’s more than the UNO offers, crammed into a board that fits side-by-side on a breadboard. If you’ve ever wired something wrong because the pinout wasn’t clear, this guide fixes that.
This article breaks down every single pin on the Arduino Nano, what it does, what voltage it expects, and how much current you can safely draw. All technical data comes from the official Arduino documentation and verified manufacturer sources.
Arduino Nano Technical Specifications
Before diving into individual pins, here’s the board in context:
| Specification | Value |
|---|---|
| Microcontroller | ATmega328P |
| Operating voltage | 5V |
| Input voltage (VIN) | 7V to 12V |
| Digital I/O pins | 14 (D0 to D13) |
| PWM-capable pins | 6 (D3, D5, D6, D9, D10, D11) |
| Analog input pins | 8 (A0 to A7) |
| ADC resolution | 10-bit (0 to 1023) |
| Max current per I/O pin | 40mA |
| Max current at 3.3V | 50mA |
| Flash memory | 32KB (2KB used by bootloader) |
| SRAM | 2KB |
| EEPROM | 1KB |
| Clock speed | 16MHz |
| Communication | 1x UART, 1x I2C, 1x SPI |
| USB interface | Mini-B |
| Dimensions | 45mm x 18mm |
| Weight | 7 grams |
The ATmega328P at 16MHz sits at the heart of this board. It’s the same chip that powers the Arduino UNO, which means you can run the same code on both boards with minimal changes.
Understanding the 30-Pin Layout
The Nano’s 30 pins fall into three functional zones: digital, analog, and power. Each zone has its own rules.
Digital I/O Pins (D0 to D13)
These 14 pins handle binary signals. They read HIGH (5V) or LOW (0V), and you control them with pinMode(), digitalWrite(), and digitalRead() in your code.
General-purpose digital pins: D2 through D13 (except the six PWM pins listed below) work as standard digital I/O. They can source or sink up to 40mA each.
TX and RX (D1 and D0): D1 carries transmit data, D0 receives it. These two pins handle UART serial communication between the Nano and your computer via the USB-to-serial converter. When you’re uploading code, these pins light up. Don’t connect anything to them unless you’re doing serial work, or your uploads will fail.
PWM pins: Six digital pins output pulse-width modulation: D3, D5, D6, D9, D10, and D11. PWM simulates analog output by rapidly toggling between HIGH and LOW. You control the effective voltage (0V to 5V) by varying the duty cycle with analogWrite(). Use these for LED dimming, motor speed control, or tone generation.
D13 (built-in LED): Pin D13 connects to the on-board LED. It’s also the SCK pin for SPI communication, so when you’re using SPI devices, this pin carries the clock signal.
Analog Input Pins (A0 to A7)
The Nano gives you eight analog inputs, two more than the UNO. These pins read variable voltages (0V to 5V) and convert them to digital values using the ATmega328P’s 10-bit analog-to-digital converter (ADC). The output range is 0 to 1023, giving you 1,024 possible steps.
A0 to A5: These five pins work as both analog inputs and digital I/O. You can use them with analogRead() for sensors, or reconfigure them with pinMode() as regular digital pins.
A6 and A7 (analog-only): These two pins are the exception. They’re input-only and cannot function as digital outputs. On boards with the ATmega328P, A6 and A7 are analog measurement channels with no digital counterpart.
Use analog pins for sensors like potentiometers, LDRs (light-dependent resistors), temperature sensors, and any component that outputs a variable voltage rather than just HIGH or LOW.
Power Pins
The Nano supplies power in three voltages, plus ground connections.
5V pin: This pin outputs a regulated 5V from either the USB connection or the onboard voltage regulator. You can use it to power external components, sensors, or modules that need 5V. Maximum current depends on your power source: from USB, you’re limited to around 500mA (USB spec), and through the regulator, the board itself draws about 30mA, leaving the rest for your peripherals.
3.3V pin: The onboard regulator also produces 3.3V. This pin can supply up to 50mA maximum. Use it for 3.3V sensors, SD card modules, or other low-power peripherals. Never feed 3.3V back into this pin.
GND pins: The Nano has two ground pins. Both connect to the board’s ground plane. Use one or both for your circuit’s ground reference. If you’re working with multiple sensors, tie all grounds together at one of these pins.
VIN pin: This is your external power input. Apply 7V to 12V here, and the onboard regulator steps it down to 5V for the board. The Nano can also be powered this way without USB. If you’re running from a battery or wall adapter, VIN is the connection point. Note that the voltage regulator gets warm under load, especially above 9V, so keep it within the 7-9V range for efficiency.
Communication Interfaces
The ATmega328P supports three standard microcontroller communication protocols. The Nano breaks these out to specific pins.
UART (TX/RX)
UART is serial communication between two devices. On the Nano, D0 (RX) receives data, and D1 (TX) transmits it. The USB-to-serial chip on the board converts USB from your computer to UART signals on these pins, which is why code uploads use them.
Beyond uploading, you can use UART to communicate with GPS modules, Bluetooth modules (HC-05/HC-06), or another microcontroller. In your code, use the Serial library with Serial.begin(9600) and related functions.
I2C (SDA/SCL)
I2C needs two wires: data (SDA) and clock (SCL). On the Nano, A4 carries SDA and A5 carries SCL. This protocol lets multiple devices share the same two wires, each with a unique address. Libraries like Wire.h handle the protocol.
Common I2C devices include OLED displays (SSD1306), magnetometers (HMC5883L), and temperature sensors (TMP102). The beauty of I2C is that you can connect up to 128 devices on the same two pins, as long as each has a different address.
SPI (MOSI/MISO/SCK)
SPI is faster than I2C and uses four wires. The Nano maps these to: – D11 (MOSI): Master Out, Slave In – D12 (MISO): Master In, Slave Out – D13 (SCK): Serial Clock – D10 (SS): Slave Select
Use SPI for high-speed devices like SD card readers, TFT displays, or shift registers. The SPI library handles the protocol, and you control individual slave devices by toggling their SS pin LOW.
Special Pins
AREF (Analog Reference)
This pin sets the reference voltage for analog readings. By default, the ADC uses 5V as its reference, mapping 0-5V to 0-1023. If your sensor outputs 0-3.3V instead, applying 3.3V to AREF lets you read it at full resolution instead of losing two-fifths of your range.
Use analogReference(EXTERNAL) in your setup, then connect your reference voltage to AREF. Just don’t exceed 5V.
RST (Reset)
The reset pin, when pulled LOW, restarts the Nano’s code from the beginning. It’s the same as pressing the small reset button on the board. For automated projects, you can connect this to a physical button or a signal from another device to trigger a reboot without physically touching the board.
ICSP Connector
The 2×3 pin header near the USB connector is the In-Circuit Serial Programming header. It provides direct access to the ATmega328P’s SPI interface for bootloader burning or firmware flashing, bypassing the USB interface entirely.
Use the ICSP header when: – The bootloader is corrupted and you can’t upload code normally – You need to program the chip before installing it in a project – You’re using the Nano as an ISP programmer to program another chip
Pin Current and Voltage Ratings
Knowing these limits prevents board damage.
| Parameter | Value | Notes |
|---|---|---|
| Operating voltage | 5V | Logic level for all I/O |
| Max I/O pin current | 40mA | Per pin, absolute maximum |
| Recommended continuous | 20mA | Safe operating limit per pin |
| 3.3V pin current | 50mA max | Limited by onboard regulator |
| Total board current | ~200mA | Including the chip itself |
| VIN input range | 7V to 12V | Absolute range, 7-9V recommended |
Drawing more than 40mA from a single pin can damage that pin’s output transistor. If you need more current for motors or high-power LEDs, use a driver circuit or MOSFET. The 5V pin can supply more current than individual I/O pins, but you’re still limited by the USB’s 500mA or the regulator’s thermal capacity.
How to Power Arduino Nano
Three ways to feed the board, each with tradeoffs.
USB power (5V): The Mini-B USB connector supplies 5V directly. This is the cleanest option for development and debugging. Your computer’s USB port should deliver up to 500mA, though some ports are limited to 100mA.
VIN power (7-12V): Connect an external supply here. The onboard regulator converts it to 5V. This works for battery-powered or remote projects. Stay within 7-9V to keep the regulator from overheating. Above 12V risks permanent damage.
5V pin (regulated 5V): You can supply 5V directly through this pin, bypassing the regulator. Only do this with a regulated 5V source. Too high or too low damages the board instantly.
Automatic selection: When more than one power source is connected, the board uses the highest voltage automatically. The regulator only activates when VIN exceeds roughly 6.6V.
Arduino Nano vs UNO vs Mega
If you’re choosing between boards, here’s how they compare.
| Feature | Nano | UNO | Mega |
|---|---|---|---|
| Dimensions | 45mm x 18mm | 68.6mm x 53.4mm | 101.5mm x 53.3mm |
| Breadboard-compatible | Yes | No | No |
| Digital I/O pins | 14 | 14 | 54 |
| PWM pins | 6 | 6 | 15 |
| Analog input pins | 8 | 6 | 16 |
| USB connector | Mini-B | Type-B | Type-B |
| SRAM | 2KB | 2KB | 8KB |
| EEPROM | 1KB | 1KB | 4KB |
The Nano wins for space-constrained projects. The UNO’s larger size makes it easier to connect shields. The Mega is overkill for most projects but handles complex builds with many sensors.
Frequently Asked Questions
How many pins does Arduino Nano have?
The Arduino Nano has 30 pins total: 14 digital I/O (D0-D13), 8 analog inputs (A0-A7), and 8 power/specialty pins (5V, 3.3V, GND x2, VIN, AREF, RST x2).
Is Arduino Nano 3.3V or 5V?
Arduino Nano operates at 5V logic level. The microcontroller runs at 5V, and all digital I/O pins output or expect 5V signals. It does have a 3.3V output pin for powering 3.3V peripherals, but the logic is 5V, not 3.3V.
Can I use Arduino Nano pins with 3.3V sensors?
You can receive signals from 3.3V sensors safely, since the Nano reads any voltage between 0-1.5V as LOW and anything above 3V as HIGH. For output to 3.3V devices, use a level shifter to avoid damaging them.
What is the maximum current per Arduino Nano pin?
Each digital or analog I/O pin can source or sink a maximum of 40mA. Design your circuits to stay under 20mA per pin continuously to prevent degradation. The 3.3V pin is limited to 50mA total.
Can I power Arduino Nano with a battery?
Yes. Connect 7V to 12V to the VIN pin, or use a 5V regulated supply on the 5V pin. A 9V battery or 3x 18650 lithium cells in series works well for portable projects.
What’s the difference between A6/A7 and other analog pins?
Pins A0 through A5 can work as either analog inputs or digital I/O pins. Pins A6 and A7 are analog-only; they cannot be configured as digital outputs. This matters when you’re short on digital pins.
Conclusion
The Arduino Nano’s 30-pin layout gives you a flexible microcontroller in a compact package. Fourteen digital pins handle binary signals and PWM. Eight analog pins read sensors with 10-bit precision. Three communication interfaces (UART, I2C, SPI) connect to displays, sensors, and other controllers. Power comes through USB, VIN, or directly at 5V.
For most projects, you’ll wire sensors to the 5V and GND pins, connect signal lines to digital or analog pins based on the sensor type, and use I2C or SPI for complex devices. Keep pin current under 20mA continuous, stay within 7-9V on VIN, and the Nano will run reliably for years.
If you’re building something that needs to fit in a small enclosure, run on battery power, or sit permanently on a breadboard, the Nano is the right choice over the UNO. The extra analog pins alone justify it for sensor-heavy projects.