The Arduino Nano is an open-source breadboard-friendly microcontroller board based on the Microchip ATmega328P microcontroller (MCU) and developed by Arduino.cc and initially released in 2008. It offers the same connectivity and specs of the Arduino Uno board in a smaller form factor.[1]
The Arduino Nano is equipped with 30 male I/O headers, in a DIP-30-like configuration, which can be programmed using the Arduino Software integrated development environment (IDE), which is common to all Arduino boards and running both online and offline. The board can be powered through its USB Mini‑B receptacle or from a 9 V battery.[2]
In 2008, the Arduino Nano was released.
In 2019, Arduino released the Arduino Nano Every, a pin-equivalent evolution of the Nano. It features a ATmega4809 microcontroller (MCU) with three times the RAM.[3]
The Arduino Nano has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328 provides UART TTL serial (5V) communication, which is available on digital pins 0 (RX) and 1 (TX).
An FTDI FT232RL on the board channels this serial communication over USB and the FTDI drivers (included with the Arduino firmware) provide a virtual com port to software on the computer. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board flash when data is being transmitted via the FTDI chip and the USB connection to the computer (but not for serial communication on pins 0 and 1). A SoftwareSerial library allows for serial communication on any of the Nano's digital pins. The ATmega328 also supports I2C and SPI communication. The Arduino software includes the Wire library to simplify use of the I2C bus.[4]
Rather than requiring a physical press of the reset button before an upload, the Arduino Nano is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the FT232RL is connected to the reset line of the ATmega328 via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip.[4]
This setup has other implications. When the Nano is connected to a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Nano. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened.[4]
The following table compares official Arduino boards, and has a similar layout as a table in the Arduino Uno article. The table is split with dark bars into three high-level microcontroller groups: 8-bit AVR cores, 32-bit ARM Cortex-M cores, and 32-bit ESP32 microcontrollers. Though 3rd-party boards have similar board names it doesn't automatically mean they are 100% identical to official Arduino boards. 3rd-party boards often have a different voltage regulator / different USB-to-UART chip / different color solder mask, and some have a different USB connector or additional features, too.