In this article, we will explain the Arduino Nano board, its features like how many i2C pins are available, how many SPI connections are present, which pins are used for PWM, and some questions commonly asked in forums.

About Arduino Nano Development board

Arduino Nano is a commonly used prototype development board that was released in 2008. This board has similar features to the Arduino Uno board available in the market, but this design with a small form factor makes it suitable for breadboard usage.

Arduino Nano boards are equipped with the same microcontroller available in the Arduino Uno board, Atmega328p. Only missing thing is DC jack is replaced with a USB B connecter. Moreover, in Addition to Arduino Uno, Nano has Additional Analog pins that are not in the Uno.

Arduino Nano Specifications

MicrocontrollerAtmega 328p
Operatingvoltage 5 V
Input voltage (VIN)6-20 V
Power consumption19 mA
Flash memory32 KB, of which the bootloader uses 2 KB
Clock speed16 Mhz
DC current per I/O pin40 mA (20 mA recommended)
Digital I/O pins22
PWM outputs6 (D3, D5, D6, D9, D10, D11)
Analog input pins8 (ADC 10 bit)
I2CA4 (SDA), A5 (SCL)
SPID10 (SS), D11 (MOSI), D12 (MISO), D13 (SCK)

Arduino Nano PINOUT

Arduino Nano pinout can be found from below Image

Digital Pins are marked as D2-D13, TX(D0), RX(D1)  these pins on the Arduino Nano used for input and output by using the function such as pinMode(), digitalWrite() and digitalRead(). These pins operate at 5V and Provide a maximum current of 40Miliamphere. All the digital and Analog pins are connected with an internal Pull resistor of 50K ohms. By default its disconnected, for those who want to use it can enable it through the program by providing pinMode(PIN, INPUT_PULLUP);

In Arduino Nano, you have Analog pins ranging from A0 to A7, in which A6 and A7 can only be used for Analog inputs. Pins and its function will be explained in the below table

Pin numberPin nameTypeFunction Assigned to the pin
1D1/TXDigital PinSerial communication (TX)
2D0/RXDigital PinSerial communication (RX)
3RESETOther pinReset (active LOW)
5D2Digital PinExternal interrupt
6~D3Digital PinExternal interrupt
8-bit PWM output
7D4Digital Pin
8~D5Digital Pin8-bit PWM output
9~D6Digital Pin8-bit PWM output
10D7Digital Pin
11D8Digital Pin
12~D9Digital Pin8-bit PWM output
13~D10Digital PinSPI communication (SS),
8-bit PWM output
14~D11Digital PinSPI communication (MOSI),
8-bit PWM output
15D12Digital PinSPI communication (MISO)
16D13Digital PinSPI communication (SCK)
Connected to a built-in LED
18AREFAnalog PinReference voltage for the analog inputs
Digital Pin
Analog Pin
Digital Pin
Analog Pin
Digital Pin
Analog Pin
Digital Pin
Analog Pin
Digital Pin
Analog Pin
I2C communication (SDA)
Digital Pin
Analog Pin
I2C communication (SCL)
Digital Pin
Analog Pin
Cannot be used as a digital pin
Digital Pin
Analog Pin
Cannot be used as a digital pin
28RESETOther pinReset (active LOW)
30VINPower6 – 20 V input to the board

Communication pins in Arduino Nano

The ATmega328 provides UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). ATmega328 also supports I2C (TWI) and SPI communication. Arduino Nano Provide SDA and SCL are available on A4 and A5 pins. SDA -> A4; SCL -> A5. Support I2C (TWI) communication using the Wire library. SPI connections are available on SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Although provided by the underlying hardware, these pins support SPI communication, which is not currently included in the Arduino language.

How to Power Arduino Nano

MiniB USB Connector: The most popular way to power the Arduino Nano board is to use a USB cable. You can use a MiniB USB cable connected to the USB port of your laptop, PC, or USB 5V power adapter. This cable is also used to program Arduino Nano

VIN pin: You can also power the Arduino Nano with an external unregulated 6 20V power supply connected to the VIN pin (pin 30). This pin can also be used to power the microcontroller with a battery

Pin + 5V: It is also possible to use an external stabilized 5V power supply connected to the pin + 5V (pin 27). However, this method is not recommended as it bypasses voltage regulators. If you want to power the board in this way, you need to make sure that the voltage level is stable and not over 5V

Variants of Arduino Nano

Arduino Nano Every:

Arduino Nano Every is one of the newest and most powerful Arduino Nano boards. It uses the ATmega4809 microcontroller and is the cheapest Arduino board you can buy. This board is also 5V compatible and has the same form factor as the original Arduino Nano (18 x 45mm). Its small size and low cost make it ideal for portable projects, low-cost robotics, drones, as well as general use to control small parts of larger projects.

Arduino Nano 33 IoT

Arduino Nano 33 IoT is one of the 3.3V variants of the Arduino Nano family. It includes an Arm CortexM0 + microcontroller, a pre-certified ESP32 based WiFi and Bluetooth module, and an integrated ECC608A crypto chip that provides IoT security. The board also consists of a 6-axis LSM6DS3 IMU. The Nano 33 IoT is essentially an MKR WiFi 1010 but sacrifices charger and shield compatibility for a smaller footprint and lower cost. As a result, it costs even less than the original Arduino Nano!

Programming Arduino Nano

The programing of Arduino Nano is similar to Arduino UNO and can be quickly done using Arduino IDE.

Common Question in Forums about Arduino Nano

How many servos can Arduino Nano Control?

The 6-pin PWM uses the built-in UART on the ATmega328P to produce its output. This makes the pulses very fast for a better “analog” output. Since the servos communicate at a sufficiently low speed, they can be driven using software interrupts. Software breaks move away from the code you are running and run the code included with the servo library. This code uses standard means to change the state of the pins. By doing this using interrupts instead of UART, you lose processing time but can drive multiple servos.

How to connect the battery to Arduino Nano

Connect the wire from the -ve terminal of the battery connector to one of the Arduino ground pins and connect the wire from the +ve terminal to the Arduino Vin pin.. The battery voltage range is 9-12V