When it comes to choosing a single-board computer, Arduino and Raspberry Pi are the big names that you’ll be considering. But which one should you choose? What is the Arduino best used for? What are the drawbacks of using a Raspberry Pi? And how do you decide between the two? It can be a tough decision, so we’ll break it down here for you.
For the purposes of this article, I’ll be discussing the Arduino Uno R3 and the Raspberry Pi 2 Model B. There are many versions of both boards, and there are plenty of alternatives to the Pi and the Arduino that provide different specs and capabilities, but these two are the mainstays of each line at the moment.
Arduino Vs Raspberry Pi
General Purpose
While both the Arduino and the Raspberry Pi are very versatile little machines, they both have specific things that they’re good at.
The Arduino, for example, is a microcontroller, which means it excels at controlling small devices like sensors, motors, and lights. This is why the Arduino is best used for projects like building a wake-up light, motion detector alarm, or even a small robot. You’ll also hear people talk about “prototyping” with an Arduino, which is the process of quickly creating a prototype electronic device. If the prototype is successful and the device works, it can be made on a larger scale with printed circuit boards.
The Raspberry Pi, on the other hand, isn’t a microcontroller, and isn’t made for controlling sensors and other things like that. It’s an entire computer, with its own operating system, and is intended to be used as one. The operating system is rather minimal, so you’ll need some coding knowledge to get the most of it, but that’s one of the things the Raspberry Pi is great at: helping people learn to code. It’s also really good at acting as a server: it can communicate with other computers, serve as an alternative to a Chromecast, provide information, and log data.
One redditor put it perfectly: “My Pi is better at talking to people (running a web server). My Arduino is better at talking to machine parts (moving motors).”
Hardware
When you look at an Arduino next to a Raspberry Pi, it’s very clear that the hardware differs quite a bit between the two. Let’s break it down.
Power
The Arduino’s power supply requirements are very simple; you can plug it into your computer or a battery pack, and it will start running code immediately. If the power is disconnected, it will stop; there’s no need to run a shut-down process. The Raspberry Pi, on the other hand, because it has a more full-featured computing system in place, should be shut down like a regular computer, and can be damaged by power cuts.
Both the Arduino and the Raspberry Pi have a very low power draw, and can be run for a very long time without using much electricity.
Connectivity
The Raspberry Pi comes ready to be connected to the internet; it has a built-in ethernet port, and it’s very easy to get a USB wifi dongle to give it wireless connectivity as well (you can see a very tiny one in the image below). This is one of the reasons why the Pi is the device of choice for things like personal web servers, printer servers, and VPNs.
The Arduino, on the other hand, doesn’t have any built-in capability for connectivity. If you want to connect it to the internet, you’ll need to add an extra piece of hardware that includes an ethernet port. If you want wifi connectivity, you’ll need a different piece of hardware again. Because the Arduino is meant for hardware projects instead of software ones, it needs a bit of tinkering to get it connected.
I/O Pins
Input/output pins are what allow your single-board computer to talk to things that are connected to it. For example, your Raspberry Pi could light up an LED. Or your Arduino could activate a motor. If you’re looking for hardware connections, these pins are what you need. The Raspberry Pi 2 packs 17 of these pins, while the Arduino Uno offers 20; you can see a number of them being used in the image below.
Another significant difference in the I/O pins between the two boards is the temporal resolution at which you can control them. Because the Raspberry Pi is a full computer, it has a number of things that are vying for CPU time, which means it can have some difficulty in getting timing down to small fractions of a second. And it needs software to properly interface with sensors and other devices. The Arduino, on the other hand, can change the output and monitor the input on its pins down to a very tiny amount of time.
Storage
The Arduino comes with 32 KB of onboard storage, which is just enough to store the code that provides instructions for its current program. You can’t use this storage for apps, videos, photos, or anything else. The Raspberry Pi, on the other hand, doesn’t come with any onboard storage, but it does have a micro SD port, so you can add as much storage as you’d like. Adding 32 GB of storage will only cost you around $12 with a SanDisk micro SD card, and you can easily add up to 128 or 256 GB if you need it.
USB
Because the Arduino isn’t meant to communicate with computers, it doesn’t come standard with any USB ports that you can use for this type of communication. A single port can be used to connect the Arduino to your computer via your computer’s USB port, but that’s it. The Raspberry Pi, on the other hand, has four USB ports that you can use to connect it to a router, a printer, an external hard drive, or a wide variety of other devices.
Software
Now that we’ve laid out the differences between the hardware of the Arduino and the Raspberry Pi, we can talk about software. To really understand when you’d want to use one board or the other, you’ll need to know what each one can do, and a lot of that is dependent on the software.
To complicate the issue, the Arduino doesn’t come with any software per se. It has very basic capabilities to interpret the code that it receives and alter the functions of the hardware that it’s connected to, but the board doesn’t have an operating system or any sort of interface besides the Arduino integrated development environment (IDE).
What this means in practice is that you need to create the software that runs on the Arduino. Using the IDE, you’ll create a set of commands that the Arduino will interpret and enact. A simple set of instructions could say something like “turn the red light on for three seconds, turn it off, turn the green light on for three seconds, turn it off, repeat.” Obviously, you can do much more complicated things, but you’ll still need to create the program yourself.
Fortunately, there’s a huge Arduino community that spans the entire world, which means that if there’s something you want to do with an Arduino, someone has probably done it. You can look at their code, modify it, and make your Arduino do exactly what you want. This is a great way to learn the principles of coding and prototyping, as well, which is why the Arduino is a great choice for anyone interested in electronics.
In contrast, the Raspberry Pi comes stocked with a fully functional operating system called Raspbian. This OS is based on Debian Linux, and was created specifically for the Pi. There are a number of other operating systems that you can use with the board, most of which are Linux-based, but Android can also be installed.
Operating systems aren’t the only pieces of software that the Pi runs, though; there are also a number of useful apps that you can use to accomplish different tasks. One of the most common uses of a Raspberry Pi is as a media server, for which both Kodi and Plex are popular apps. You can download games, server applications, calculators, and even the LibreOffice office suite.
Of course, you can write your own programs for the Raspberry Pi as well, and that’s one of the best reasons to get one: to learn to code. Python is the recommended language for the Pi, but C, C++, Java, and Ruby are all pre-installed on the board. While Arduino can be tweaked to support other languages, the native Arduino language is the best choice; if you’re looking to learn a more useful language, the Pi will give you more options.
Expanding Onward
Both the Arduino and the Raspberry Pi are very capable little machines that can help you learn and do a lot of things, but at some point, you’re probably going to want to move beyond the basics and try something a little more advanced.
This is one of the places where the Arduino shines. There are hundreds of chips that let you expand the capabilities of the stock board with things like ethernet and wifi connectivity, better motor control, speaker and microphone capabilities, a touchscreen, cameras, radio transmitters, graphics processing, and almost anything else you can think of. For $20 to $40, you can turn your Arduino into something else entirely (like this Adafruit GPS shield).
These chips are called shields, and are very easily installed; all you do is place them on top of your Arduino and—in some cases—solder them in place. Many can just sit on top, making installation a breeze.
The Raspberry Pi is a more self-contained board, and doesn’t have the same expansion capabilities as the Arduino. There are a number of “hats” available that add additional hardware to the Pi, however, that give you some very interesting possibilities. For example, you can add capacitive sensors, GPS, a touchscreen, RGB panels, and even a 3D gesture sensor.
The USB ports also let you add functionality with dongles; for example, to get wifi connectivity, all you need to do is plug in the wifi dongle. Still, even with these options, the Raspberry Pi just doesn’t have as many options for adding functionality. Not to say that the Pi isn’t capable; you can still do almost anything you want with it, you just might need to get a little more creative (or attach it to an Arduino!).
How to Decide Between Arduino and Raspberry Pi
Now that you’ve seen exactly how the Arduino and the Raspberry Pi are different, you should have a pretty good idea of how to decide between the two if you want to get one. If you want to create devices, like robots, timers, and sensors, the Arduino is the way to go; its low-level interface and easy I/O connections make it the best way to go if you want to build something. The Raspberry Pi, on the other hand, makes a fantastic server or data storage system, and is great for learning to program in traditional languages. If you want to communicate with other computers, the Pi is your board.
But why limit yourself to one? Why not get both? They’re both very affordable, and you can get starter kits for less than $100 that include everything you need to start working on projects. From a simple robot to a complete web server, you can get a simple kit to help you through the setup process.
And when you start getting even more advanced, you can use both the Arduino and the Pi together to operate sensors and servos with online instructions or feedback! The options are limitless.
Raspberry Pi Vs. Arduino: Comparison Table
Arduino Uno | Raspberry Pi 2 Model B | |
---|---|---|
Cost (base model) | 20 | 39 |
Processor | 16MHz AVR ATmega328P | 900 MHz Broadcom ARM Cortex-A7 |
Storage | 32 KB | n/a |
RAM | 2 KB | 1 GB |
I/O pins | 20 | 17 |
OS | n/a | Raspbian, other varieties of Linux, Android |
Languages | Arduino, | Python, C, C++, Java, Ruby |
Best for | Hardware / prototyping | Software / server |
Power supply | 5V USB or DC jack | 5V USB |
SEE ALSO: 8 Best Stick PCs
Was this guide helpful? Do you have any more questions about whether you should get the Arduino or the Pi? Leave your questions and thoughts below!
Image credits: Sho Hashimoto via flickr, Manoel Lamos via flickr, Simon Monk via raspberrypi.org.