Arduino Leonardo Genuine (Original)

The Arduino Leonardo is a straightforward yet flexible Arduino board based on the atmega32u4 MCU. Architecture with a single processor. One of the microcontrollers communicates with a computer directly via USB.

Out Of Stock



The Arduino Leonardo is Based on the "ATmega32U4" MCU as the board's core. it has an embedded USB interface. Users can configure work as a keyboard or a mouse when connected to a PC superior to the Arduino Uno with a total of 20 digital inputs/output pins out of which 7 are PWM (Pulse Width Modulation) enabled and 12 are analog input pins.

Package Includes:

  • 1 x Arduino Leonardo


  • Microcontroller:- ATmega32U4 
  • Operating Voltage:- 5
  • Input Voltage:- 5 - 12 V ( If use 5V, input 5V to Vcc, if used above 5V, input to VIN pin)
  • Micro USB connection
  • 12 x 10-bit Analog input pins
  • 20 x digital I/O pins
  • 7 x PWM pins
  • RX/TX serial port
  • Flash Memory: 32KB
  • SRAM: 2.5KB
  • Clock Speed 16MHz
  • 5v regulating circuit
  • Pin 13 LED Yes


The Arduino Leonardo is based on the "ATmega32U4" MCU, which serves as the board's main MCU. It has a USB interface. When connected to a PC, the Arduino Leonardo can be configured to function as a keyboard or a mouse. The Arduino Leonardo outperforms the Arduino Uno by having 20 digital input/output pins, 7 of which are PWM (Pulse Width Modulation) enabled and 12 of which are analog input pins. Furthermore, it supports serial communication UART via pins Rx and Tx, providing UART functionality from the MCU's built-in USB without the need for an additional serial converter onboard. Also, Arduino provides an open-source platform for hardware and software customization.

Principle of Work:

Arduino boards were introduced in Italy in 2005 with the goal of providing a centralized platform where non-technologists could obtain these boards and develop electronic devices that could interact with the environment via actuators and sensors. Even inexperienced users can operate these boards because they are so simple to use. Arduino is free hardware, anyone who can copy the blueprints and specifications is freely available. This means that Arduino provides the framework for any other person or company to design their own boards, each of which can be unique while still functioning well when built on the same framework. A computer program with open-source code is known as free software. Free software is a computer program whose source code is open to the public, allowing them to use and modify it as they see fit Arduino Leonardo works with the Arduino IDE (Integrated Development Environment) platform to enable anyone to create apps for Arduino boards and provide them with a variety of utilities. which you can use to program and upload your code (sketch) without the need for an external programmer. Simply write your code on the Arduino IDE, then press the upload button, and the code will be on your board and ready to use.

Pinout of the Module:

  • Digital PINs (from 0-13 + A0-A5). The logic level for “zero” is 0 volts and for “one” is 5 volts. There are pull-up resistors that are disabled by default but can be enabled if needed.
  • Pins with connection to the ADC (A0-A5, A6-A11). These inputs are analog, but they can also be used in digital mode. The default voltage is from 0 to 5 volts.
  • PWM – PINs named “three”, “five”, “six”, “nine”, “ten”, “eleven” and “thirteen”. An 8-bit resolution is available using the analogWrite function.
  • The SPI is the PIN of the ICSP connector. A special feature of the Arduino Leonardo board is that there is no wiring between the digital inputs and outputs. for shields If the board does not have an ICSP connector with six pins, the product will not work.
  • UART – PIN 0 (RX) and 1 (TX) to receive and transmit information, respectively. It is used to connect to other devices using the Serial1 class. If the controller is powered via USB from a computer, the Serial class is used.
  • TWI/I2C. This PIN is used for interaction with peripheral devices using the asynchronous protocol. The connection is made with two wires using the Wire library.

On the Arduino Leonardo R3 board, there is a group of LEDs, by which you can judge whether the device is working or not:

  • RX and TX are the LEDs that blink while information is being transmitted between the computer and the controller.
  • L (for PIN 13). It turns on when the parameter HIGH is sent and turns off when LOW.
  • ON is the LED indicating that the Arduino Leonardo board is powered.

Additional connectors include micro-USB, a connector for external power supply from 7 to 12 volts, as well as an ICSP connector. The latter is used for programming the microcontroller.

Power Pins

There are a variety of power and power-related nets broken out:

  • VIN: You can use the Vin pin to Power your Arduino with an unregulated 7 to 12-volt power source. Like a 9V battery or a wall adapter that is in the range of 7 to 12 volts.
  • VCC: is the voltage supplied to the onboard ATmega32U4. is 5V this voltage is regulated by the voltage applied to the RAW pin. If the board is powered through the 'Vin' pin (or USB), this pin can be used as an output to supply other devices.
  • RST: can be used to restart the Leonardo. This pin is pulled high by a 10kOhm, resistor on the board, and is active-low, so it must be connected to the ground to initiate a reset. The Leonardo will remain "off" until the reset line is pulled back to high.
  • GND: is the system's common ground voltage (0V reference).
  • IOREF. The task of the PIN is to decode the voltage information of the ATmega32u4. Depending on this parameter, the board switches to a more suitable power supply, or a level converter is applied. In the last case, a 5 or 3.3-volt power supply is opened.


  • IR remote-based Home Automation System.
  • Bluetooth-controlled Home Automation System.
  • IoT-enabled Home Automation System.
  • RC car.
  • Mobile lifter.
  • Hurdle Avoiding Vehicle.
  • Wall climbing vehicle.
  • Autonomous vehicle.
  • Robotic arm.


We will not need any circuit, in this testing code, we will print out byte values in all possible formats on the serial monitor.

Connecting with Arduino First Time

1. Open Arduino IDE

If you haven’t done so already, download Arduino IDE from the software page.

Note: there is no need for any external driver everything is embedded with Arduino IDE

2. Connect the board to your computer:

connect the board to your computer with a USB cable. This will both power the board and allow the IDE to send instructions to the board. You’ll need a data USB cable (a charge-only cable will not work), with connectors that fit both the board and your computer.

3. Select Board:

 you need to tell Arduino IDE which board your sketch is for.

Click on Tools in the menu bar and find the Board row. If a board is currently selected it will be displayed here.

The tools menu with the Board row is highlighted.

Hover over the Board row to reveal the installed board packages.

Click on the Leonardo board to select it.

Selecting a board in Arduino IDE.

4. Select port: Click on Tools in the menu bar and find the Port row. If a board is currently selected it will be displayed here.

The tools menu with the Port row highlighted.

Select the serial device of the Arduino board from the Tools | Serial Port menu. This is likely to be COM3 or higher 

5. Upload a sketch 

Copy the code below.

Optional: Click the Verify button to try compiling the sketch and check for errors.

Click the Upload button to program the board with the sketch.

Your sketch will start running on the board. It will run again each time the board is reset.

Now you can open the Serial Monitor by clicking on the icon in the upper right corner.


void setup() {
 //Initialize serial and wait for port to open:
 while (!Serial) {
 ; // wait for serial port to connect. Needed for native USB port only
 // prints title with ending line break
 Serial.println("ASCII Table ~ Character Map");
// first visible ASCIIcharacter '!' is number 33:
int thisByte = 33;
// you can also write ASCII characters in single quotes.
// for example, '!' is the same as 33, so you could also use this:
// int thisByte = '!';
void loop() {
 // prints value unaltered, i.e. the raw binary version of the byte.
 // The Serial Monitor interprets all bytes as ASCII, so 33, the first number,
 // will show up as '!'
 Serial.print(", dec: ");
 // prints value as string as an ASCII-encoded decimal (base 10).
 // Decimal is the default format for Serial.print() and Serial.println(),
 // so no modifier is needed:
 // But you can declare the modifier for decimal if you want to.
 // this also works if you uncomment it:
 // Serial.print(thisByte, DEC);
 Serial.print(", hex: ");
 // prints value as string in hexadecimal (base 16):
 Serial.print(thisByte, HEX);
 Serial.print(", oct: ");
 // prints value as string in octal (base 8);
 Serial.print(thisByte, OCT);
 Serial.print(", bin: ");
 // prints value as string in binary (base 2) also prints ending line break:
 Serial.println(thisByte, BIN);
 // if printed last visible character '~' or 126, stop:
 if (thisByte == 126) { // you could also use if (thisByte == '~') {
 // This loop loops forever and does nothing
 while (true) {
 // go on to the next character

Technical Details:

  • CPU 8bit
  • Microcontroller Atmega32u4
  • Operating voltage 5V
  • Input voltage max. 12V
  • DC Current per I/O Pin 10mA
  • Weight 20g
  • Width 53.3mm
  • Length 68.6 mm




Leonard is based on ATmega32u4 MCU instead of ATmega328 on older version boards such as Arduino Uno. This board is equipped with more digital pins, PWM pins, and analog pins. this board also differs from the UNO board which it doesn't include any serial converter so because the MCU has a built-in USB interface, on the other hand, the starting of the Serial Connection takes a little bit more time when the board reset that's why you see a delay() after every serial begin in the micro and Leonardo boards codes, and the SPI pins are not connected to any of the digital I/O pins as they are on the Uno. They are only available on the ICSP connector. This means that if you have a shield that uses SPI, but does NOT have a 6-pin ICSP connector that connects to Leonardo's 6-pin ICSP header, the shield will not work. still, for beginners, we recommend UNO instead of this board.