MakerLab
ArduinoArduino Nano

Arduino Nano: The Compact Powerhouse for Your Projects

A small, breadboard-friendly microcontroller board offering the core Arduino experience in a tiny form factor.

Arduino Nano

The Arduino Nano is a compact and versatile microcontroller board based on the ATmega328P microcontroller. Released in 2008, it was designed to offer the full functionality of the larger Arduino Uno but in a much smaller, breadboard-compatible package. This makes it ideal for projects where space is a constraint, such as wearables, compact robots, or embedded sensor nodes.

At its heart, the Arduino Nano features the ATmega328P, an 8-bit AVR RISC microcontroller. This chip provides a robust set of features including 32KB of Flash memory for program storage, 2KB of SRAM for variables, and 1KB of EEPROM for non-volatile data. It operates at a clock speed of 16MHz and uses a 5V logic level, which is common for many Arduino projects and shields, making it easy to interface with a wide range of sensors and modules.

Compared to other Arduino boards, the Nano strikes a balance between size and capability. It offers nearly the same I/O capabilities as the Arduino Uno but in a significantly smaller footprint. Its pin headers are designed to be directly plugged into breadboards without requiring any additional adapters, simplifying prototyping. This board is a favorite among hobbyists, students, and even professional engineers looking for a reliable and cost-effective solution for embedded applications that don't demand the high processing power or extensive connectivity of more advanced boards like the ESP32 or Raspberry Pi Pico.

The history of the Arduino Nano is tied to the growing need for smaller, more integrated development platforms. While initially a less common option, its breadboard-friendliness and robust ATmega328P core have cemented its place as a go-to board for countless projects. It’s particularly well-suited for beginners taking their first steps into physical computing, as well as experienced makers who need a dependable workhorse for iterative prototyping and final product integration where minimal size is key.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCATmega328P
Architecture8-bit AVR RISC
Clock speed16 MHz
Flash / Storage32 KB (of which 0.5 KB used by bootloader)
RAM / SRAM2 KB
EEPROM1 KB
Operating voltage5V
Digital I/O pins22 (6 of which can be used as PWM outputs)
Analog / ADC8 (10-bit resolution)
PWM6 pins (3, 5, 6, 9, 10, 11)
Connectivityβ€”
USBMini-USB connector (for programming and power)
Power input7-12V recommended (via VIN pin or barrel jack if present on clone), 5V via USB or 5V pin
Dimensions18 mm x 48 mm

Pinout & pin functions

PinFunction
GNDGround
GNDGround
3.3V3.3V output (internal regulator)
RESETReset button (external)
A0Analog Input / Digital I/O
A1Analog Input / Digital I/O
A2Analog Input / Digital I/O
A3Analog Input / Digital I/O
A4Analog Input / Digital I/O, I2C SDA
A5Analog Input / Digital I/O, I2C SCL
A6Analog Input / Digital I/O
A7Analog Input / Digital I/O
D0 (RX)Digital I/O, UART Receive
D1 (TX)Digital I/O, UART Transmit
D2Digital I/O
D3Digital I/O, PWM
D4Digital I/O
D5Digital I/O, PWM
D6Digital I/O, PWM
D7Digital I/O
D8Digital I/O
D9Digital I/O, PWM
D10 (SS)Digital I/O, SPI Slave Select
D11 (MOSI)Digital I/O, SPI Master Out Slave In
D12 (MISO)Digital I/O, SPI Master In Slave Out
D13 (SCK)Digital I/O, SPI Serial Clock
5V5V output (regulated)
VINPower input (7-12V recommended)

Wiring & circuit basics

Powering the Arduino Nano is straightforward. You can supply power via the Mini-USB port, which is convenient for programming and testing. Alternatively, you can use the VIN pin, which accepts a voltage range of 7-12V and is regulated down to 5V by an onboard regulator. Be mindful of the current requirements of your project; the Nano's onboard regulator can typically handle up to 500mA, but it's good practice to stay within reasonable limits to avoid overheating. Always ensure your power supply is stable and within the specified voltage range to prevent damage to the board.

The Arduino Nano operates at a 5V logic level. This means that digital HIGH signals are typically 5V, and digital LOW signals are 0V. When interfacing with components that operate at a different logic level, such as 3.3V sensors, you will need a logic level shifter to prevent damage. For example, connecting a 3.3V sensor's output directly to a Nano's input pin might not be reliably read as HIGH, and connecting a 5V output from the Nano to a 3.3V input could damage the sensor.

A common beginner circuit is lighting an LED. Connect the anode (longer leg) of an LED to a digital pin, such as D9. Connect the cathode (shorter leg) of the LED to one end of a current-limiting resistor (e.g., 220-330 ohms). Connect the other end of the resistor to a GND pin on the Nano. When you set D9 to HIGH in your code, current will flow through the resistor and LED, illuminating it. The resistor protects the LED and the Arduino pin from excessive current. For an I2C sensor like a BME280, you would connect its VCC to the Nano's 5V pin, GND to a GND pin, SDA to A4, and SCL to A5.

Programming & getting started

The primary toolchain for the Arduino Nano is the Arduino IDE. Download and install the latest version from the official Arduino website. Once installed, select 'Arduino Nano' from the Tools > Board menu and choose the correct COM port associated with your Nano (after connecting it via USB). To upload your first program, the 'Blink' example sketch is a great starting point. Open it via File > Examples > 01.Basics > Blink, then click the Upload button. This will compile the code and flash it to the ATmega328P, causing the onboard LED (usually connected to D13) to blink.

For more advanced users, PlatformIO, integrated into VS Code, offers a more powerful development environment with features like advanced code completion, debugging, and library management. MicroPython and CircuitPython are also options for the ATmega328P, though they might require specific firmware flashing and may not offer the same performance as C/C++ sketches. The ATmega328P's bootloader allows for easy reprogramming over the serial connection provided by the USB-to-serial chip on the Nano.

Project ideas

Automated Plant Watering SystemMonitor soil moisture using an analog sensor connected to A0 and a small water pump controlled by a digital pin (e.g., D7) with a transistor driver. This project teaches sensor reading, digital output control, and basic automation.
Simple Weather StationConnect a DHT11/DHT22 sensor (digital I/O) and an LCD display (using I2C pins A4/A5) to display temperature and humidity readings. This project introduces environmental sensing and serial communication protocols.
MIDI ControllerUtilize digital pins and the UART (D0/D1) to send MIDI messages to a computer or other MIDI devices. This project explores serial communication for musical applications.
Robotic Arm ControlDrive multiple servo motors using PWM pins (e.g., D3, D5, D6, D9) to create a basic robotic arm. This project teaches precise control of actuators and kinematics.
USB Host for Simple KeyboardsWith appropriate libraries and potentially external hardware, the Nano can be used to interface with USB keyboards via its USB port, acting as a basic USB host. This is an advanced project exploring USB protocols.
Interactive LED Matrix DisplayControl a small LED matrix (e.g., 8x8) using shift registers or dedicated driver chips connected to digital pins and SPI (D11-D13). This project involves multiplexing and complex output control.

Buying tips & gotchas

When purchasing an Arduino Nano, be aware of the many clones available. While often cheaper, their quality can vary significantly. Look for boards with genuine FTDI or CH340 USB-to-serial chips, as these are generally well-supported. Avoid clones with significantly different pinouts or unlabelled components. Ensure your USB cable is functional, as a faulty cable is a common cause of upload failures. For projects requiring more power than the Nano's 5V pin can supply, consider using an external power supply connected to VIN or a separate 5V regulator. Accessories like small breadboards, jumper wires, and a variety of sensors are essential companions for the Nano.