Almost all hobbyists will at some point need to use a microcontroller to power and control a project. However, the wide range of options available from even a single manufacturer can be overwhelming and make it difficult to determine what’s most suitable for a specific setup.
The Arduino platform started in 2005 at the Interaction Design Institute Ivrea (IDII) in Italy, when design students needed an easier and more accessible way to create projects. Their efforts resulted in the most popular family of microcontrollers ever made. An Arduino microcontroller contains the actual microcontroller chip (an integrated chip or IC), and everything else that makes it work, such as power management, timing modules, and input and output headers.
Two of the most popular Arduino microcontrollers on offer include the Uno and Leonardo. The Uno is a ubiquitous prototyping board designed with beginners in mind and backed with an extensive library of online documentation and tutorials. Sharing some similarities to the Uno, the Leonardo is capable of supporting native USB communication that enables it to act by default as a mouse or keyboard to a computer.
In this article, we’ll be comparing these two popular microcontroller boards manufactured by Arduino. Let’s get started!
Here is a closer look at each of these boards and how they stack up.
The Arduino Uno is a classic microcontroller that’s been widely used in many projects since its release in 2010. With an 8-bit processor, 14 I/O pins, 6 analog inputs, 32 KB of flash memory, 2 KB of SRAM, and a maximum output voltage of 5 V, this board is a great introduction into the world of microcontrollers. It’s a reliable, powerful, and relatively inexpensive board that you can find for about $28 with lots of documentation and tutorials available online, both from official and unofficial sources. These tutorials cover a really wide range of projects, from robotic arms to floor-cleaning robots! The Uno is a benchmark for development boards, as it’s compatible with most Arduino shields. Simply put, it’s an extremely reliable board with a large following.
With new versions rolling out relatively frequently, the Arduino Uno has been maintained consistently since its release. Arduino even released a Wi-Fi-enabled version of the board in May 2018, which has since seen even more iterations and upgrades. You can also find sensor kits that include the board.
The Leonardo is another popular microcontroller sold by Arduino, packing a broad range of features. It comes at a cost of about $25 and provides a solid and reliable experience. The Leonardo isn’t available in any kits – it’s only sold standalone.
While it lacks the same level of community support as the Uno, this board has a slim profile and a handy Micro-USB connector instead of the Uno’s bulky USB-B port, making it a compact board that can save a little space in projects. In addition, it has a faster and more powerful ATmega32u4 processor that enables it to handle more complex calculations than the Uno’s ATmega328P with ease. This suits it well to the complicated math involved in kinematic models or even computer vision and neural networks. The additional analog pins (12) in the Leonardo also ensure that you’ll never run out of ways to control your peripheral hardware.
Despite being different models, the Arduino Uno and Leonardo share a number of similarities with one another. Most notably, they have similar physical dimensions, meaning that both can be used almost interchangeably in applications that require a board with a small footprint, such as a mouse or a robotic arm. They both also run on the same range of operating voltages of 6-20 V, enabling them to run on the same power supply without any modifications.
Additionally, these two microcontrollers have the same flash memory volume (32 KB), meaning that they can store the same size program as one another, although they have different amounts of SRAM.
Furthermore, both boards can be controlled using the Arduino IDE and its version of C++. This is a lightweight and powerful development environment that provides easy access to a wide array of libraries and development tools to help you program your Arduino board. This IDE is also compatible with all other microcontroller models from Arduino, and even some other boards using the same chips.
In addition, both the Leonardo and Uno both have ICSP (In Circuit Serial Programming) functionality, which enables you to flash and burn information directly onto the MCU, even without the IDE.
Now we can move on to some unique factors that differentiate these boards from one another!
First of all, and most obviously, the Arduino Leonardo has a Micro-USB port, whereas the Uno has a USB-B port. Although the USB-B connection of the Uno can provide a secure and durable connection, the Micro-USB port in a Leonardo offers some advantages and takes up less space.
Furthermore, the Leonardo has more analog and PWM headers than the Uno, which enables it to control more peripheral components. The Leonardo has 12 analog and 7 PWM pins, while the Uno has 6 analog and 6 PWM. Both boards, however, have 20 DIO pins in total.
Another point on which the two boards differ is the resources available. The Arduino Uno has an extremely comprehensive set of tutorials and documentation behind it, providing guidance for a large number of projects. This is particularly useful for beginners or those new to Arduino. In addition, there are plenty of projects if you’re just getting started and want to get your bearings.
On the other hand, the Leonardo has a less extensive volume of resources, which makes it a potentially more difficult device to get into the microcontroller world with as a beginner. For example, a majority of the tutorials available on the Arduino website are aimed specifically at the Uno. However, since the Leonardo supports native USB communication, it can emulate a USB serial port for communication with a computer.
The Arduino Uno uses the ATmega328P MCU onboard, with 32 KB of flash memory and 2 KB of SRAM. The Leonardo has the same amount of flash storage and a similar, albeit more, amount of SRAM (2.5 KB) in comparison to the Uno’s 2 KB.
Furthermore, the Leonardo’s ATmega32u4 has a set of native USB communication pins, enabling it to interface with computers as a HID (Human Interface Device), such as a mouse or keyboard. Additionally, the Leonardo’s processor is soldered onto the board and cannot be replaced, whereas the Uno’s microcontroller is mounted in a socket from which it can easily be removed and replaced.
All in all, both boards are powerful microcontrollers with a wide variety of use cases. The Leonardo is an effective microcontroller, with a significant number of I/O headers enabling large-volume control of multiple devices, and a powerful processor that can easily interface over USB and crunch through calculations. The Uno provides a fantastic user experience through its extensive documentation, starter kits, and additional modules.
The Uno is well suited to all users, from beginner to advanced, for rapid prototyping and development. However, it’s especially recommended for beginners, as there is extensive official documentation and community support available. The general consensus is that the Uno is best suited for developing projects, whereas other boards are often used for final products. Some users find the convenience in programming an Uno particularly handy, as it has a separate chip for the USB, and the Leonardo can sometimes require pressing the reset button.
Conversely, the Leonardo is a slightly more advanced board that comes at a slightly lower price. It’s recommended for intermediate or advanced users who are well-versed and confident in the Arduino ecosystem, as there’s less support available. It’s also often preferred by those looking for a board to interface with a computer system via a USB port, particularly for mouse applications. Its greater range of analog ports also means that you can connect more sensor inputs to the Leonardo, possibly expanding the choice of inputs for your projects.
License: The text of "Arduino Leonardo vs Uno: The Differences" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.