Arduino Nano
The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328P released in 2008. It offers the same connectivity and specs of the Arduino Uno board in a smaller form factor.

The Arduino Nano is equipped with 30 male I/O headers, in a DIP30-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 a type-B mini-USB cable or from a 9 V battery.

In 2019, Arduino released the Arduino Nano Every, a pin-equivalent evolution of the Nano. It features a more powerful ATmega4809 processor and twice the RAM.

Technical specifications  
 Microcontroller: Microchip ATmega328P
 Operating voltage: 5 volts
 Input voltage: 6 to 20 volts
 Digital I/O pins: 14 (6 optional PWM outputs)
 Analog input pins: 8
 DC per I/O pin: 40 mA
 DC for 3.3 V pin: 50 mA
 Flash memory: 32 KB, of which 0.5 KB is used by bootloader
 SRAM: 2 KB
 EEPROM: 1 KB
 Clock speed: 16 MHz
 Length: 45 mm
 Width: 18 mm
 Mass: 7 g
 USB: Mini-USB Type-B 
 ICSP Header: Yes
 DC Power Jack: No

Communication 
The Arduino Nano has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328 provide UART TTL (5V) serial 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 software) 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 will flash when data is being transmitted via the FTDI chip and 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 support I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus.

Automatic (software) reset 
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.

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.

References 

Microcontrollers