Arduino Leonardo Genuine (Original)

Out Of Stock



The Arduino Leonardo, powered by the "ATmega32U4" microcontroller, boasts a built-in USB interface for keyboard or mouse emulation when linked to a computer. Its 20 digital I/O pins, encompassing 7 PWM-enabled and 12 analog input pins, elevate its capabilities beyond the Arduino Uno, enabling fine-tuned signal control and measurement in a diverse range of electronic projects. Additionally, its user-friendly design makes it suitable for both beginners and experienced enthusiasts.


Package Includes:

  • 1 x Arduino Leonardo


  • Microcontroller Core: Powered by the robust "ATmega32U4" microcontroller unit (MCU), offering a powerful foundation for diverse applications.
  • Built-in USB Interface: Incorporates a built-in USB interface, allowing the board to seamlessly emulate a keyboard or mouse when connected to a computer, expanding its interaction capabilities.
  • Versatile Functionality: The ability to switch between keyboard and mouse emulation enhances its adaptability, catering to a wide range of user requirements and projects.
  • Digital I/O Pins: Offers a generous 20 digital input/output pins, providing ample connectivity options for interfacing with various external devices and components.
  • PWM-enabled Pins: Includes 7 Pulse Width Modulation (PWM) enabled pins, enabling precise control over output signals' intensity. This feature is particularly useful for tasks like controlling motor speeds and LED brightness.
  • Analog Input Pins: Incorporates 12 analog input pins, enabling the measurement of continuous analog signals. This facilitates data collection from sensors and other analog devices with high precision.
  • Enhanced Capabilities: Surpasses the capabilities of its predecessor, the Arduino Uno, making it an attractive choice for projects demanding more advanced features and capabilities.
  • Broad Application Range: Suitable for a diverse range of projects, from robotics and automation to interactive installations and data acquisition systems.
  • User-Friendly Design: Offers a user-friendly platform suitable for both beginners and experienced users, fostering creativity and innovation in electronics and programming.
  • Open-Source Platform: Benefits from the Arduino open-source ecosystem, providing access to a vast community, libraries, and resources for support and expansion of functionalities.
  • Programming Flexibility: Supports programming via the Arduino IDE, simplifying the development process and enabling users to quickly get started on their projects.
  • Compact Form Factor: Designed with a compact form factor, making it convenient for embedding within projects with limited space.
  • Educational Tool: Serves as an excellent educational tool, allowing users to learn about microcontrollers, electronics, and programming through hands-on experimentation.
  • Debugging and Testing: Features serial communication through USB, aiding in debugging and testing code during development.
  • Expandability: Compatible with various shields and modules, further expanding its capabilities and adaptability to specific project requirements.



At its core, the Arduino Leonardo is built around the powerful "ATmega32U4" microcontroller unit (MCU), which is the brain behind its operations. This carefully chosen MCU ensures that the Leonardo is capable of handling complex tasks and calculations, setting it apart from ordinary development boards. One of its notable features is the built-in USB interface, which opens up a world of expanded possibilities. This interface allows the Leonardo to transform itself into either a keyboard or a mouse when connected to a computer. This dynamic capability enhances the Leonardo's versatility and connectivity, enabling it to create more interactive user experiences and broader project applications. In terms of pins, the Leonardo goes beyond the capabilities of the Arduino Uno with a total of 20 digital input/output pins. Among these pins, 7 are specifically designed for Pulse Width Modulation (PWM), a technology that enables precise control over signal strengths. This feature proves invaluable for applications that require fine-tuned adjustments, such as regulating motor speeds or creating dynamic lighting effects. For enthusiasts interested in working with analog signals, the Leonardo offers 12 analog input pins. These pins are finely calibrated to accurately measure continuous analog signals, making the board exceptionally versatile. This feature enables smooth integration with analog sensors and devices, enhancing the board's capacity for collecting and processing data. Expanding its connectivity options beyond the ordinary, the Leonardo supports serial communication UART via its Rx and Tx pins. This innovation enhances data exchange capabilities and eliminates the need for an additional serial converter onboard. This efficiency-driven approach stems from the MCU's inherent USB capabilities, reflecting Leonardo's dedication to optimizing design and functionality. A crucial aspect of the Leonardo's identity is its commitment to being open-source. The Leonardo is part of the Arduino ecosystem, a vibrant community of collaboration and innovation. This encompasses hardware and software, allowing users to customize the board to their specific needs. Leonardo's open-source nature provides access to extensive community support, resources, and opportunities for customization, enabling users to shape the board according to their unique visions.


Principle of Work:

  1. Program Execution: The heart of the Leonardo is the "ATmega32U4" MCU. It stores and executes the program that you upload using the Arduino IDE. The program dictates how the board responds to different inputs and triggers specific actions.
  2. Clock Signal: The MCU relies on an internal oscillator or an external crystal to generate a clock signal. This clock signal synchronizes the operations of the MCU and ensures that instructions are executed at precise intervals.
  3. Input/Output Handling:

    • Digital Pins: The MCU manages the digital input/output (I/O) pins. It can set pins as input or output and toggle their states (high or low voltage) based on program logic.
    • Analog Pins: The MCU reads analog input from sensors through the analog pins. It converts the analog voltage values into digital values that the program can understand.
  4. PWM Control: The MCU controls the PWM-enabled pins, producing pulse-width modulated signals. These signals allow for fine control over the intensity of connected devices like LEDs or motors.

  5. USB Interface:

    • USB Driver: The integrated USB interface is managed by the MCU. When the Leonardo is connected to a computer, the MCU communicates with the USB driver, enabling the board to emulate a keyboard or mouse.
    • USB Data Transfer: The MCU interprets and processes the data sent or received via the USB connection. This data can include keyboard/mouse inputs or any data exchange between the Leonardo and the computer.
  6. Serial Communication:

    • UART Communication: The Leonardo supports serial communication through its Rx (receive) and Tx (transmit) pins. The MCU handles the data sent/received via these pins, allowing for data exchange with external devices.
  7. Analog-to-Digital Conversion (ADC): When using analog input pins, the MCU performs analog-to-digital conversion. It reads the continuous analog voltage and converts it into a digital value that can be processed by the program.

  8. Memory Management:

    • Flash Memory: The program code is stored in the flash memory of the MCU. The MCU fetches instructions from here to execute the program.
    • SRAM: The MCU uses Static Random-Access Memory (SRAM) for temporary data storage during program execution.
    • EEPROM: The MCU also features Electrically Erasable Programmable Read-Only Memory (EEPROM), which provides non-volatile storage for data that needs to be retained even when the board is powered off.
  9. Interrupt Handling: The MCU manages interrupts, allowing it to pause its current activities and respond to external events promptly. This feature is particularly useful for time-sensitive or critical tasks.
  10. Power Management: The MCU manages power distribution to different components on the board and can put itself into sleep modes to conserve energy when not actively processing tasks.


Pinout of the Module:

  • Digital and Analog Pins: The board features digital pins numbered 0 to 13 and analog pins labeled A0 to A5. These pins operate at a logic level of 0 volts for "zero" and 5 volts for "one." Notably, these pins come equipped with pull-up resistors that can be activated as needed.
  • Analog Input and Digital Mode: Analog pins A0 to A5, as well as A6 to A11, can function as analog inputs or in digital mode. Their voltage range spans from 0 to 5 volts, providing versatility for various sensing applications.
  • Pulse Width Modulation (PWM) Pins: The board showcases PWM-capable pins named "three," "five," "six," "nine," "ten," "eleven," and "thirteen." These pins allow precise signal modulation using 8-bit resolution through the analogWrite function.
  • SPI (Serial Peripheral Interface): Utilizing the ICSP connector, the board supports SPI communication for connecting to external devices like sensors and displays.
  • UART Communication: UART communication occurs via pins 0 (RX) and 1 (TX). These facilitate the reception and transmission of data. While Serial1 class handles connections to other devices, the Serial class is employed when powered via USB.
  • TWI/I2C Communication: The board employs a specific pin for asynchronous interaction with peripheral devices through the I2C protocol. This pin is employed in conjunction with the Wire library and two-wire connections.
  • LED Indicators: LEDs play a pivotal role in determining the board's operational status:

    • RX and TX LEDs flash during data transmission between the board and a computer.
    • The L LED (associated with PIN 13) illuminates when set to HIGH and extinguishes when set to LOW.
    • The ON LED signifies the board's power status.
  • Power Supply Connectors:

    • micro-USB connector for power and data connection.
    • External power supply connector (7 to 12 volts) for alternate power sources.
    • ICSP connector for microcontroller programming.
  • Power Pins Overview:

    • VIN: Accepts unregulated power sources within the 7 to 12-volt range, like batteries or adapters.
    • VCC: Supplies regulated 5V voltage to the onboard ATmega32U4. RAW pin voltage controls this output.
    • RST: Facilitates board restart by pulling it to ground for reset initiation.
    • GND: Functions as the system's common ground reference.
    • IOREF: Monitors the ATmega32U4's voltage information, which determines power supply selection or level conversion. It aligns the board with a suitable voltage level, either 5V or 3.3V.



  • Custom Input Devices (Keyboards, Mice): Design unique interfaces for tailored user interactions.

  • Interactive Art Installations: Create dynamic art pieces that respond to audience interaction.

  • Prototypes for Home Automation: Develop and test automated systems for home convenience and efficiency.

  • Educational Tools for Teaching Electronics and Programming: Facilitate hands-on learning of electronics and programming concepts.

  • Data Acquisition Systems and Sensors: Gather data from sensors for analysis and monitoring purposes.

  • Robotics Projects (Mobile Robots, Arms): Construct robots for tasks ranging from exploration to automation.

  • DIY Gaming Devices and Peripherals: Build custom game controllers and accessories for unique gaming experiences.

  • Prototyping Wearable Technology: Create wearable devices with integrated sensors and functionality.

  • Home Security Systems and Remote Monitoring: Develop DIY security and monitoring systems for homes and spaces.

  • Automotive Hacking and Prototyping: Experiment with automotive electronics, diagnostics, and enhancements.

  • Musical Instruments and MIDI Controllers: Design electronic musical instruments and controllers for music production.

  • Internet of Things (IoT) Prototypes: Create devices that connect to the internet for remote control and data sharing.

  • Experimental Electronics and Circuit Testing: Learn about electronics by experimenting with circuits and components.

  • Custom Gadgets for Specific Needs: Invent devices tailored to address specific challenges or tasks.



We will not need any circuit, in this testing code, we will blink the onboard LED and print the status on the serial monitor.


Getting Started with Your Arduino Leonardo:

Step 1: Install Arduino IDE

Begin by downloading the Arduino IDE software from the official software page. The IDE (Integrated Development Environment) is your toolkit for programming the Arduino Leonardo. 

Note: Unlike some other boards, there's no need to install external drivers as everything is embedded within the Arduino IDE.

Step 2: Connect the Board

Connect your Arduino Leonardo to your computer using a USB cable. Make sure to use a data USB cable as a charge-only cable won't work. The USB connection serves a dual purpose – it powers the board and enables the IDE to communicate instructions to it.

Step 3: Board Selection

Now, it's time to inform the Arduino IDE about the specific board you're using. Here's how you do it:

  1. Go to the "Tools" menu at the top.
  2. Locate the "Board" row and hover over it.
  3. This will reveal the list of installed board packages.
  4. Click on the option that corresponds to the Arduino Leonardo.

Step 4: Port Selection

After selecting the board, you need to specify the communication port that your Arduino Leonardo is connected to:

  1. Again, go to the "Tools" menu.
  2. Find the "Port" row.
  3. The available ports will be displayed.
  4. Select the serial device corresponding to your Arduino board from the "Tools" > "Serial Port" menu. Typically, it might be listed as COM3 or higher.

Step 5: Upload Your Sketch

Here comes the exciting part – uploading your code (sketch) to the Arduino Leonardo:

  1. Write or copy your code into the IDE.
  2. Optionally, click the "Verify" button to check for any syntax errors in your code.
  3. Click the "Upload" button to send the code to the board.
  4. Your sketch will begin running on the board immediately.
  5. Whenever you reset the board, the sketch will run again.

Additional Step: Monitor Serial Output

For projects that involve communication between your computer and the Arduino, you can access the Serial Monitor:

  1. Locate the icon in the upper right corner.
  2. Click on the icon to open the Serial Monitor.
  3. This tool allows you to interact with the Arduino's serial output, which can be immensely helpful for debugging and real-time data exchange.


A simple Arduino code for the Arduino Nano that blinks an LED and prints the LED status on the Serial Monitor:

// Define the LED pin
const int ledPin = 13;

void setup() {
  // Initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
  // Start the Serial communication at 9600 baud

void loop() {
  // Turn on the LED
  digitalWrite(ledPin, HIGH);
  // Print LED status to Serial Monitor
  Serial.println("LED is ON");
  // Wait for 1 second
  // Turn off the LED
  digitalWrite(ledPin, LOW);
  // Print LED status to Serial Monitor
  Serial.println("LED is OFF");
  // Wait for 1 second


  • A variable named ledPin is assigned the value 13, indicating the pin where the LED is connected.

  • In the setup() function:

    • The ledPin is configured as an output to control the LED.
    • Serial communication is initialized with a baud rate of 9600 to enable communication with a computer.
  • In the loop() function:

    • The LED is turned on by setting the ledPin to a HIGH voltage.
    • The status "LED is ON" is sent to the Serial Monitor.
    • The program pauses for 1 second using the delay(1000) function.
    • The LED is turned off by setting the ledPin to a LOW voltage.
    • The status "LED is OFF" is sent to the Serial Monitor.
    • Another 1-second pause occurs.

This sequence repeats indefinitely, causing the LED to blink on and off every second while updating the Serial Monitor with the LED's status.


Technical Details:

  • 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
  • DC Current per I/O Pin 10mA
  • Weight 20g
  • Width 53.3mm
  • Length 68.6 mm




If we want to make a comparison between the Arduino Leonardo board and the Arduino Uno board, the Leonardo offers more I/O pins, native USB support, and the ability to act as a keyboard or mouse, making it a great choice for projects requiring advanced communication and interaction capabilities. The Uno is a classic board with a strong community base and is suitable for general prototyping and learning projects. Your choice between the two would depend on your project's requirements and desired features:

  • Microcontroller: The Leonardo uses the ATmega32U4, which has more I/O capabilities and native USB support, while the Uno uses the ATmega328P.
  • I/O Pins: The Leonardo has more digital and analog I/O pins, providing more options for connecting sensors, actuators, and other components.
  • PWM Pins: Both boards offer PWM capabilities, but the Leonardo has more PWM-enabled pins.
  • UART Communication: The Leonardo's native USB support allows it to easily communicate over USB without an external converter, unlike the Uno.
  • USB Interface: The Leonardo can act as a keyboard or mouse through its built-in USB interface, offering unique possibilities for user interaction.
  • USB-to-Serial Converter: The Uno requires an external USB-to-Serial converter (like FTDI) to communicate with a computer over USB.
  • Clock Speed: Both boards have the same clock speed of 16 MHz.
  • Additional Features: Both boards include an onboard LED on pin 13 and built-in EEPROM memory.