Arduino Leonardo Pinout, Schematic and Specifications in detail

The Arduino Leonardo is a microcontroller board based on the ATmega32u4 microchip. The Atmega32u4 comes with a built-in bootloader, which makes it convenient to flash the Arduino board with our code. It consists of a total of 20 digital I/O pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a power jack, a micro USB port, a 16 MHz crystal oscillator, an ICSP header, and a reset button. Atmega32u4 based Arduino Leonardo pinout and specifications are given in detail in this post.

Arduino Leonardo Pinout:

Arduino Leonardo Pinout
Arduino Leonardo Pinout

ATmega32u4 Microchip: The ATmega32u4 is a high performance, low power AVR 8-bit microchip. It has 32 KB (of which 4 KB is used by the bootloader), 2.5 KB of SRAM, and 1 KB of EEPROM.

Crystal Oscillator: The Crystal oscillator inside the board has a frequency of 16MHz, which generates the clock signal in the microcontroller. Its basic function is to provide the basic timing and control to the board.

Arduino Leonardo Power Pinout:

Barrel Jack – The Barrel jack, or 7-12V DC Power Jack can be used to power your Arduino board. The barrel jack is connected to an adapter. The board is compatible with any adapter that power ranges between 5-20 volts but the manufacturer recommends keeping it between 7-12 volts.

Note: Above 12 volts, the board may overheat and voltage below 7 volts might not be sufficient to power the board.

Micro USB Port – The Micro USB is smaller than the standard Mini USB port and it is much flatter and slightly taper than the micro USB. It allows us to bridge the connection between the board and the computer. It is very important for the programming of the Arduino Leonardo board.

Vin: It is the input voltage pin that is connected to the external power supply to power up the Arduino board. If the voltage is supplied via the power jack, this pin can be used as a power pin.

Arduino Leanardo Pinout- Analog Input:

The Leonardo consists of 12 analog inputs, labeled from A0 to A11, all of these pins can also be used as digital I/O pins. Each of these analog pins has an inbuilt ADC of resolution of 210 bits (so it will give 1024 values).

 Analog, Digital and PWM Pins
Analog, Digital, and PWM Pins

Arduino Leanardo Pinout- Digital I/O pins:

There are 20 digital I/O pins on the Leonardo that can be used as an input or output. They operate at 5 volts. The Arduino Leonardo digital pins can read only two states: when there is a voltage signal present and when it is absent. This kind of input is usually known as digital (or binary) and these states are referred to as HIGH and LOW or 1 and 0.

Arduino Leanardo Pinout- PWM pins:

There are six pins from the set of digital pins that are PWM (Pulse Width Modulation) pins which are numbered as 3, 5, 6, 9, 10, 11, and 13. Provide 8-bit PWM output with the analogWrite() function.

UART Pins:

UART Pins of Arduino Leonardo
UART Pins of Arduino Leonardo

These pins are used for serial communication, 0 (RX) to receive the data, and 1 (TX) to transmit (TX) TTL serial data using the ATmega32U4 hardware serial capability.


It stands for In-Circuit Serial Programming. These pins are used to program the Arduino Leonardo board’s firmware. The new firmware changes with the new capabilities are sent in through the microcontroller with the help of this ICSP header.

The ICSP header consists of 6 pins.

Two-Wire Interface (TWI)/I2C:

Arduino Leonardo I2C Pins
Arduino Leonardo I2C Pins

It is the two-wire serial communication protocol. It stands for Inter-Integrated Circuits. The I2C uses two lines to send and transmit data: a serial clock (SCL) pin and a serial data (SDA) pin.

  • SCL-It stands for Serial Clock. It is defined as the pin that transmits the clock data. It is used to synchronize the sending of data between the two devices. The Serial Clock is provided by the master device.
  • SDA-It stands for Serial Data. It is defined as the pin used by both the slave and master to send and receive the data in between. That’s why it is also known as a data line, while SCL is known as a clock line.

External Interrupt Pins:

External Interrupt Pins
External Interrupt Pins

There are 5 external interrupts pins in the board: 3 (interrupt 0), 2 (interrupt 1), 0 (interrupt 2), 1 (interrupt 3) and 7 (interrupt 4). These pins can be configured such that if any of the following changes occur: on a low value, a rising or falling edge, or a change in value.

SPI Pins:

It stands for Serial Peripheral Interface. These pins are used by the microcontrollers to communicate with one or more peripheral devices efficiently. Unlike Arduino UNO the SPI pins in Leonardo board are present on the ICSP header, these pins support SPI communication using the SPI library. This means that even if we have a shield that uses SPI communication, but does NOT consist of a 6-pin ICSP connector that can connect to the Leonardo’s 6-pin ICSP header, the shield will not work.

Other pins:

5V: The 5V pin outputs 5v to the external components. The power source of 5V for the Arduino Nano board is a USB connector and the Vin.

3.3 V: The 3.3V pin works as the output regulated voltage of 3.3V

GND. Ground pins. These are used to ground the circuit.

AREF: Reference voltage for the analog inputs. Used with the function analogReference().

LED 13: In the board, there is a built-in LED connected to digital pin 13. When this pin is set to  HIGH or 1, the LED is switched on, when this pin is set LOW or 0, it’s switched off.

IOREF: This pin represents the voltage at which the I/O pins of the board are operating (i.e. VCC for the board).

Reset. When this pin is set to LOW it reset the microcontroller.

Arduino Leonardo Schematic(official):

To download Arduino Leonardo Schematic, click here.

Arduino Leonardo Schematic
Arduino Leonardo Schematic

**Source: Arduino Leonardo official store


Operating Voltage5V
Input Voltage (Recommended)7-12V
Input Voltage (limits)6-20V
Digital I/O Pins20
PWM Channels7
Analog Input Channels12
DC Current per I/O Pin40 mA
DC Current for 3.3V Pin50 mA
Flash Memory32 KB (of which 4 KB is taken by bootloader)
SRAM2.5 KB (ATmega32u4)
EEPROM1 KB (ATmega32u4)
Clock Speed16 MHz
Length68.6 mm
Width53.3 mm
Weight20 g
Arduino Leonardo specs table

Leave a Comment