Skip to content

Top Comparison of Arduino nano vs. micro

Have you ever heard of Arduino? Or would you like to know more about Arduino? If yes, then you are in the right place. We will look at the definition of Arduino, and the different types of Arduino boards. Additionally, we will see that there are more than fifteen types of Arduino boards. However, we will emphasize two of these types: Arduino nano and Arduino micro.

Arduino definition

We refer to Arduino as an open-source hardware and software company that is a designer and manufacturer of single-board microcontrollers and microcontroller kits to construct various digital devices. For example, we may require Arduino boards to perform different programming tasks in building projects and scientific instruments.

Arduino Boards

These are open-sourced boards that allow for flexibility in their construction and adaptation. They work on the principle of input-output in the control of programmable electronic devices. Such boards can read inputs such as a message, a pressed button, light shining on a sensor, etc. After reading the information, they interpret it and perform an output task. Such tasks may include starting a motor, turning a bulb on, and printing a certain message.

We connect Arduino boards to modules such as GPS, GSM, fire sensors, optical sensors, presence detectors, etc., to read their inputs and give out corresponding outputs.

Types of Arduino Boards

Arduino micro

Different types of Arduino boards may perform similar tasks. They include:

  • Arduino Zero
  • The Arduino Robot
  • Arduino Diecimila
  • Arduino Due
  • The Arduino Ethernet
  • Arduino Esplora
  • RedBoard Arduino
  • Arduino Pro Mic
  • The Arduino Fastest Board
  • Arduino Leonardo Board
  • Arduino Bluetooth
  • The Arduino Nano
  • Arduino Mega (R3)
  • Arduino Uno (R3)
  • The Arduino LilyPad
  • Arduino Micro

The Arduino Nano

Arduino Nano is the smallest of these boards, founded on ATMEGA328P or ATMEGA628 microcontrollers, but with a connection similar to an Arduino UNO board. In addition, new versions of Arduino Nano have an integrated USB. Due to its small size, Arduino Nano is suitable for building projects requiring less storage space and fewer General-Purpose Input/output (GPIO) pins in its connection. Additionally, this board has 14 digital pins that you can use when connecting with external components. These include two reset pins, six analog pins, each having a resolution of 10-bit, and six power pins mounted on the board. The figure below shows the structure of an Arduino Nano board.

Arduino Nano operates at a voltage of 5V, with an input voltage ranging between 6V and 20V, just like other Arduino boards. However, experts recommend that the input voltage varies between 7V and 12V. Additionally, this unit has a clock frequency of 16MHZ applied when generating a clock with a certain frequency at a constant voltage.

Most Arduino boards use the standard USB port. However, this board uses the mini-USB port and has no DC power jack. Therefore, you cannot use an external power source to power the board. Moreover, this device is compatible with the circuit breadboard, making it easier to connect and do various electronic projects.

You store the program in the flash memory, 2KB of the memory of Atmega168, which has an SRAM of 1KB. Atmega328 has a flash memory of 32KB, an EEPROM of 1KB, and SRAM of 2KB, which is double that of Atmega168.

Physical dimensions of the Arduino Nano board

An Arduino Nano board has a maximum length of 4.5 centimeters and a maximum width of 1.80 centimeters. The USB connection port is an extension beyond these dimensions.

How are the pins of an Arduino Nano board?

Now, let us study the pinout of an Arduino Nano and the description of each pin mounted on the board.

1. Analog pins

The Arduino nano board consists of 6 analog pins used in measuring the voltage. Normally, the voltage range is between 0V and 5V.

2. Digital pins

Arduino Nano board consists of 14 digital pins to connect its external components.

3. VIN

(Voltage IN) refers to the input voltage of the board when powering it externally.

4. LED

This is the light-emitting diode, normally in-built in the board during construction. One connects it to pin 13 of the Arduino board.

5. The 5V pin

The 5 Volts pin is a controlled power supply used for the controller’s powering and other board components.

6. The 3.3V

(3.3 Volts) is the minimum amount of voltage produced by the voltage controller mounted on the board.


(Reference pin) is the analog reference applied to the board that acts as the reference voltage when using an external power source.

8. Reset

There are two reset pins fitted on the Arduino board. When resetting the controller internally via software, the user should use these pins.

9. GND

The Arduino Nano board consists of a pair of ground pins.

10. External interrupts

When triggering external interrupts in the case of an emergency, there is usage of two pins, namely pin two and pin 3.

11. SPI

Arduino Nano board supports the serial peripheral interface (SPI), a communication protocol involving four pins (SCK, MOSI, MISO, SS) for communication. SPI is useful when transferring data between other peripheral devices and the microcontroller.


The Arduino Nano board is compatible with USART serial communication. There is carrying of Tx, a transmission pin used when transmitting serialized data, and Rx, a pin used in receiving serialized data.

13. 12C

During construction, there is fitting of a 12C communication protocol to the Arduino Nano board. Two pins, SCL and SDA, are used to support this communication. The SCL pin is a serialized clock line used to synchronize data between devices on the 12C bus. SDA is the serial data carrier line. In Arduino software, accessing the wire library to use the 12C bus is possible.

What is the communication process of an Arduino Nano board?

Arduino board

There are different ways to communicate an Arduino Nano board can take place. First, you can perform it by the use of another Arduino board. We can also use other microcontrollers, or by connecting them to a computer. For example, the microcontroller used in ATmega328 facilitates serial communication (UART TTL). We can therefore access this serial communication at the RX and TX pins.

The Arduino (IDE) software has a serial monitor that allows the board to receive and transmit information in text format. When transferring information towards the computer via the USB and FTDI link, the LEDs of the TX and RX blinks. The presence of a library – like SoftwareSerial, facilitates serial communication on any of the board’s digital pins. Additionally, the microcontroller is compatible with 12C (TWI) and SPI communication.

Programming of the Arduino Nano board

To program Arduino boards, we use a formal software that Arduino introduced. We refer to the software as Arduino IDE (Integrated Development Environment). In this case, you design a commanding code and then feed it to the board to perform what the code instructs it to do. Additionally, the board consists of an in-built Bootloader that saves the user from looking for external burners for burning the Arduino program. Finally, the USB interface enables the user to connect the computer to the board via a USB cable connection.

Applications of the Arduino Nano

In electronic projects, Arduino boards can function as a stable project alone. Therefore, you can easily interface Arduino Nano with Raspberry PI boards and other Arduino boards. Additionally, we can easily do fabulous projects using the panels without much technical expertise due to their flexibility.

Let us look at the various applications of Arduino Nano boards.

  • Robotics
  • Control systems
  • Instrumentation
  • Embedded system
  • Automation
  • DIY projects
  • Electronic systems samples
  • Electronic products samples

Arduino Micro

Unlike Arduino Nano boards, Arduino Micro boards are microcontrollers based on Adafruit and Atmega32U4. These boards have twenty digital input/output pins: 12 analog input pins and seven functions as PWM outputs. The board also has a micro USB connection port, a reset button, an ICSP header, and a 16 MHz crystal oscillator. Due to the presence of the micro USB port, using a USB cable, you can connect the board to a computer. Additionally, this board is compatible with the circuit breadboard due to its form factor.

An Arduino Nano board is similar to an Arduino Leonardo since Atmega32U4 has an in-built USB communication. Due to this factor, there is no need to look for a secondary processor. Therefore, you connect the microcontroller to the computer like external computer hardware, say a keyboard or a mouse. Due to this, connectivity acts as a COM port or a virtual serial port (CDC port).

The figure below showcases the structure of the Arduino Micro board.

Physical dimensions of the Arduino Micro board

An Arduino Micro board has a maximum length of 4.8 centimeters and a maximum width of 1.77 centimeters. The USB connection port is an extension beyond these dimensions. Connecting it to a solderless circuit breadboard is, therefore, very easy.

How are the pins of an Arduino Micro board?

As we shall see, this board consists of 20 digital input/output pins. We can use each of these pins either as an input or an output. Here, we can use three functions. These are: pinMode(), digitalWrite(), and digitalRead(). Their operation voltage is 5 Volts. Each of these pins can supply or absorb a maximum current of up to 40 milliamperes (mA), with an internal pull-up resistance of between 20 and 50 kiloohms (KΩ). Moreover, every pin has its special functions.

Pin description

Serial: pin 0 (RX) and pin 1 (TX)

This pin is useful in receiving (RX) and transmitting (TX) TTL serialized data by use of the ATmega32U4 hardware serial ability. Serial class refers to USB (CDC) communication on the Arduino Micro board. Additionally, we use the Serial1 type for pin 0 and pin 1 TTL serial.


The two pins, pin 2 (SDA) and pin 3 (SCL), use the wire library in supporting the TWI communication.

External interrupts: pin 0 (RX), pin 1 (TX), pin 2 (SDA), and pin 3 (SCL)

When configured, these pins trigger a low-value interrupt, a value change, or an increasing or decreasing edge. The function attachInterrupt() has more details on this.


Using the analogWrite() function, pin 3, pin 5, pin 6, pin 9, pin 10, pin 11, and pin 13 provide an eight-bit (8 – bit) PWM output.


Compared to the Arduino Leonardo, this is an extra pin mounted on the Arduino Micro board. This pin is connected to the LED during USB communication to notify on transmission. However, you can use it as the slave select (SS) pin during SPI communication.

Analog inputs: A0 – A11

The analog inputs are on pin 4, pin 6, pin 8, pin 9, pin 10, and pin 12. Arduino Micro board consists of 12 analog input pins. Pins A0 – A5 are well labeled. Moreover, you can access them in codes using the constants of A6 – A11. We assign these constants to the digital pins 4, 6, 8, 9, 10, and 12. You can use all these digital pins as input/output pins. Each of these pins provides a resolution of 10 bits. Therefore, every pin provides 1024 unique values. In addition, these analog inputs measures from the ground pin to the 5 Volts pin. However, you can change the upper voltage limit using the function analogReference() and the AREF pin.

SPI: (at ICSP header)

By use of the SPI library, SPI pins facilitate SPI communication. However, unlike in Arduino Uno, we don’t connect these pins to any digital input/output pins. Only the ICSP connector and nearby pins, MISO, SCK, and MOSI, have the SPI pins.

LED: 13

An inbuilt light-emitting diode is attached to pin 13. When this pin is HIGH, the LED lights, and when the pin is LOW, the LED goes off.


The AREF pin acts as the reference voltage in the case of the analog inputs. It is used with the function analogReference().


When resetting the microcontroller, we use this pin to bring it LOW.

Operation of the Arduino Micro board

You can power the Micro board, either by an external power source or via the USB cable connection. After powering the board, there is an automatic selection of the type of supply used. If you do not want to use the USB connection in powering your device, you can use a DC battery as the external supply. Here, we connect the lead terminals of the battery to two pins, the VIN pin and the GND (ground) pin.

Unlike the Arduino Nano board with a supply voltage range of 7 Volts to 20 Volts, the external supply voltage of the Arduino Micro board should range between 6 Volts and 20 Volts. Supplying it with a voltage of fewer than 7 Volts will lead to the 5 Volts pin supplying a voltage below 5 Volts. Due to this, the board will be unstable. Moreover, using a supply voltage of more than 12 Volts will result in overheating the voltage controller, which causes damage to the Arduino board. Therefore, the recommended voltage range is between 7 Volts and 12 Volts.

Power connection

You can make connection of the powers supply using any of the three pins below.

V1 – When using an external power supply, this pin is used as the input voltage of the Arduino Micro board. When supplying voltage using the USB connection port, the input voltage pin is the 5 Volts pin.

5V – Regulated power sources have their input voltage attached to the 5 Volts pin. In this case, the supply voltage can be either from the VIN through a regulator fixed on the board or from a USB connection or any other regulated 5 volts power source.

3V is the 3.3 volts supply produced by the regulator fixed on the board. The maximum current flow is 50 milliamperes (mA).

GND – This is the ground pin of the board.

How is the memory of an Arduino Micro board?

Atmega32U4 has a memory of 32KB, of which the bootloader uses 4KB. The SRAM of the Atmega32U4 is 2.5KB, while its EEPROM is 1KB.

How does the communication process of an Arduino Micro board occur?

Arduino Micro communicates with other Arduino boards, computers, and other microcontrollers. The RX and TX digital pins are very crucial in this process. Therefore, communication will happen when ATmega32U4 emits UART TTL (5V) serial communication that is present on pin 0 and pin 1. In addition, ATmega32U4 facilitates serial (CDC) communication via USB connection and acts as a virtual com port for computer software. This chip also stands out as a full-speed USB device using standard USB COM drivers. Arduino IDE software has a serial monitor that allows the board to send and receive data in text format. During data transmission via the USB connection, the LEDs on the board’s TX and RX pins flash. The SoftwareSerial library facilitates the communication on the other digital pins of the Arduino Micro board.

Moreover, Atmega32U4 facilitates SPI and 12C (TWI) communication. To simplify the application of the 12C bus, we employ a wired library included in the Arduino IDE software.

In the case of CSI communication, apply the SPI library. In addition, the Arduino Micro board acts as a generic mouse or a generic keyboard. Therefore, you can program it to control the other input computer hardware through the mouse and keyboard.

How to initiate the bootloader and reset the software

Instead of manually pressing the resetting button before uploading information, you construct the Arduino Micro board to facilitate software reset on running it on a computer linked to the board. When you open the virtual (CDC) serial port or the COM port Arduino Micro board at a baud rate of 1200, you trigger the reset. Due to this, the microprocessor is reset and breaks up the connection through the USB port. The virtual serial / COM port disappears as a result. In addition, resetting the processor activates the bootloader, which remains on for approximately 8 seconds.

When you press the Arduino Micro’s reset button, you can start the bootloader. When the board is powered, it immediately proceeds to the user sketch, if there exists. If there is no user sketch, it initiates the bootloader.

However, due to the Arduino Micro board’s handling of the reset function, you should let the Arduino IDE Software perform the reset before an upload. Then, in case the bootloader fails to initiate the bootloader, press the reset button to do so.

Applications of Arduino Micro boards

  • USB trackpad
  • Electric bikes
  • Manufacture of wireless keyboards
  • USB joysticks
  • Designing of windows PC lock application
  • Making of automated pill dispensers
  • Designing of the water level monitor

Similarities of Arduino nano and Arduino Micro boards

  • Both Arduino Nano boards and Arduino Micro boards have an operating voltage of approximately 5 volts.
  • The Arduino Nano board’s width and the Arduino Micro board are 18 millimeters.
  • The Arduino Nano and the Arduino Micro boards have a DC per input/output of 40 milliamperes.
  • For both the Arduino Nano and Arduino Micro boards, the clock cycle is 16 MHz
  • Both the Arduino nano and Arduino Micro boards have a flash size of 32 KB.

Differences between Arduino Nano and Arduino Micro boards

  • The Arduino Nano board has 6 PWM-enabled pins, whereas Arduino Micro has seven.
  • Arduino Nano board has a length of 45 millimeters while Arduino Micro board has a length of 48 millimeters.,
  • Arduino Micro boards with 12 input/output analog pins. On the other hand, Arduino Nano boards have eight analog pins.
  • The digital input/output pins are 20 for the Arduino Micro boards and 22 for Arduino Nano boards.
  • Arduino Micro boards have an SRAM of 25 KB, whereas Arduino Nano boards have 1 KB.
  • The Arduino Nano microcontroller has an EEPROM of 0.51 KB, whereas Arduino Micro boards have 1 KB.
  • Arduino Nano boards use an ATmega328 processor, whereas Arduino Micro uses an ATmega32U4 processor.
  • In most cases, Arduino Nano board supports a USB connection and serial chip, whereas Arduino Micro is compatible with the circuit breadboard.
  • Arduino Micro is constructed with a power jack to supply external voltage to the board, whereas Arduino nano uses a USB connection as its external voltage source.
  • The Arduino Micro board is cheaper compared to the Arduino Nano board. We attribute the difference to RAM size.
  • During communication, the Arduino Nano board employs the STK500 protocol, whereas the Arduino Micro board employs the AVR109 protocol.


We have looked at the meaning and different types of Arduino boards. Additionally, we have emphasized two types of these boards more, namely Arduino Nano and Arduino Micro. Moreover, we have studied the structure, the physical dimensions, and the pin description of each board. We have also looked at each Arduino board’s communication process and the pins involved in this communication. In addition, we have seen how each of these boards is programmed. Furthermore, this article has also highlighted the applications of each board. Finally, we have highlighted the similarities and differences between these two boards.