Until very recently, the Raspberry Pi was strictly known as a single-board computer (SBC), which is a microcontroller unit with CPU, RAM, and external hard disk. In other words, it’s a computer on a chip, capable of running a wide range of operating systems, including Linux, Chrome, and even Windows.
However, the newest addition to the family, the Raspberry Pi Pico, is a pure microcontroller unit (MCU). Rather than performing multiple tasks, an MCU runs one program at a time and requires external RAM and disk storage to function.
A fine example of an MCU would be any member of the Arduino family. First released in 2005, the Arduino started out as a prototyping tool for design students who had no experience in electronics or programming. Its low cost and ease of use turned the Arduino into a go-to prototyping board for both makers and big companies.
Now, thanks to the Pico, it would seem that Arduino’s reign over MCU boards is being challenged by the Raspberry Pi Foundation. But is that really the case? Let’s find out by comparing the two platforms and better understanding their differences, strengths, and weakness.
Let’s start off by reviewing the basics and the specs of each board. The Arduino family is huge, so for this article, we’ll compare the Pico to the Arduino Uno, one of the most popular MCU boards of all time.
The Pico is the very first microcontroller product from the Raspberry Pi Foundation, and it’s built on their own silicon, the RP2040. The board itself has a small footprint and was designed to be a low-cost breakout board for the new microcontroller chip. Like other MCU boards, the Pico supports analog input signals, something that other Raspberry Pis don’t.
The Uno is the first USB board in the Arduino family and can be powered up via this port or a separate power jack. The Uno is found in multiple versions besides the original: The Uno SMD is a slightly more affordable version, while the Uno WiFi includes wireless connectivity. The Uno is currently in the third revision (Rev3), and the board designs are entirely open source.
While at a high level, the two platforms appear similar in function, they are in fact very different in their own ways. In this section, we’ll go head-to-head comparing several of the most important features.
The Arduino Uno Rev3 is powered by Atmel single-core 8-bit ATmega328P chips, which clock in at 16 MHz, with 2 kB of SRAM and only 28 kB of flash storage.
The Raspberry Pi Pico’s RP2040 is far superior, with its 32-bit Arm Cortex-M0+ running at variable frequencies up to 133 MHz. The dual-core architecture offers much more flexibility in terms of how software runs. The processor comes with 264 kB of SRAM, 2 MB of onboard flash storage, and can access up to 16 MB of external RAM, too.
It’s such a capable chip that many other manufacturers are incorporating it into their own board designs, including Arduino with their own Nano Connect.
The Arduino Uno, like the whole family of Arduino boards, is designed to be coded in C++ “sketches”, which are processed, compiled, and loaded onto the board as machine code using the Arduino Integrated Development Environment (IDE).
In contrast, the Pico was designed to use MicroPython, a version of the popular Python language for small devices. This makes coding easier and faster, especially for beginners, while more advanced users can still use C/C++. In the meantime, the Pico is also supported by the Arduino IDE for those who are used to that workflow.
But that’s not all for the Pico. Adafruit’s popular CircuitPython language is also supported, and keen programmers will value the Pico’s Serial Wire Debug (SWD) interface.
Interacting with physical devices, such as sensors, motors, and display screens, lies at the core of most microcontroller projects, and both the Uno and Pico are well equipped for this.
For general-purpose input/output (GPIO), the Uno operates at 5 V, with 6 analog input pins and 14 digital pins, of which 6 provide PWM output. The Pico operates at 3.3 V, with 26 GPIO pins, 3 of which can be used as analog inputs and 16 as PWM outputs. It also has an edge on analog-to-digital conversion (ADC), offering higher resolution (12-bit vs. 10-bit) and a faster sampling rate (500 kHz vs. 125 kHz).
Increasingly, peripheral devices use serial comms. In this area, the Uno has one channel for each of UART, 12C, and SPI functionality, while the Pico has twice this number.
Lastly, the Pico really stands out with the new and unique inclusion of eight programmed input/output (PIO) “state machines”. These are independent channels that can be used for customized control of external hardware, from additional serial ports or even video.
We’ve already seen that the two boards are different in size, and each form factor has its pros and cons.
The Arduino’s larger size, with built-in connectors, make it easy to hook up peripherals using jump leads. In particular, each pin can be clearly annotated to avoid careless connection errors. When used with a breadboard, it simply connects using additional jump leads, and conveniently, the Uno comes with a separate power connector and a USB (Type-B) port to provide serial connectivity.
The Raspberry Pi Pico, with the addition of appropriate header pins, is “breadboard friendly”, useful for many prototyping situations. It also has castellated terminals around its edges for easy soldering to circuit boards. Via a Micro-USB connector, the Pico can switch easily between host or device modes, making USB applications simple. Its form factor also lends itself to the easy addition of stacked peripherals and other dedicated add-on hardware, such as controllers for robotics projects. However, the Pico lacks a built-in reset button, which is irritating in many testing scenarios.
The Uno operates with a flexible input voltage in the range 7 to 12 V, although it can also be powered via its USB port. The Pico is nominally powered by 5 V via its Micro-USB connection and can also handle 1.8 to 5.5 V via external inputs.
In sleep mode, the Pico consumes less power (6 mW) than the Uno (15 mW). However, for normal operation, a side-by-side comparison becomes more difficult. In theory, the Pico’s processor, being more powerful and running at higher clock speeds, should consume more power. In addition, programs in Python, being an interpreted language, normally consume more power than equivalents written in C++. Benchmarks typically show the Pico consuming more power, by as much as 100%, but smart use of the Pico’s hardware can reverse this in some instances.
Both devices can run battery-powered applications, but if ultra-low power use is a key requirement, other boards might be better suited.
Last but not least: the cost. The original Arduino Uno Rev3 is priced at around $23, and it’s easily found online. Being an open-source project, there are plenty of clone boards available for a fraction of what the original costs, but don’t expect the same quality and reliability.
The Pico, on the other hand, costs as little as $3. This is perhaps one of the most attractive features of this board, especially considering how well it performs compared to its competitors.
The Raspberry Pi Pico debuted in the MCU market in great style, boasting a powerful new processor and rich functionality. The visibility and support from the vast and respected Raspberry Pi ecosystem, combined with MicroPython programming, very low cost, and powerful features are sure to set this device at the center of a wave of creative new microcontroller projects.
Yet, the veritable Arduino Uno’s popularity shouldn’t be overshadowed by the newly arrived Pico. It’s still an incredibly reliable piece of hardware that’s both easy to use and easy to program. For beginners looking for plenty of documentation and support, this can easily make the difference.
Lead image source: Make Magazine
License: The text of "Raspberry Pi Pico vs Arduino: The Differences" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.
CERTAIN CONTENT THAT APPEARS ON THIS SITE COMES FROM AMAZON. THIS CONTENT IS PROVIDED ‘AS IS’ AND IS SUBJECT TO CHANGE OR REMOVAL AT ANY TIME.