The Arduino and Raspberry Pi family are two of the biggest maker kits around right now, consisting of many different models and prices to suit nearly everyone. For example: There’s the Arduino Nano, and the more powerful Arduino Mega with more GPIO pins.
One of the greatest similarities shared by the Arduino and Raspberry Pi devices is their ease of getting started, as they are built with hobbyists in mind. There are many simple code samples out there to aid nearly every project.
However, in the grand scheme of things the differences between a Raspberry Pi and Arduino are substantial and must be considered for financial, energy efficiency, user friendliness, among other reasons.
One of the greatest differences between a Raspberry Pi and an Arduino is that Raspberry Pi devices run an operating system (OS) and Arduino devices run firmware. This difference branches off into some of the other differences we will discuss, such as startup times and power consumption.
The Advantages Of Arduinos Over Raspberry Pis (And Vice Versa)
Operating Systems Vs Firmware
The Raspberry Pi single-board computers (SBCs) have powerful quad-core processors that run operating systems such as Windows 10 IoT or Linux distributions such as freeBSD, Raspbian, Raspbian Lite, and DietPi.
Microcontrollers like the Arduino run firmware (but some models can run operating systems), which tends to be far smaller and lighter on memory and CPU requirements due to the fact that there is no operating system hogging large amounts of RAM and frequently using the CPU for updates. Firmware also avoids having to go through an operating system to perform basic GPIO functions.
Due to the fact that there is no operating system to slow most of them down, microcontrollers perform well with minuscule amounts of processing power. For example: Most microcontrollers have processors that are less than 50 MHZ and can perform their GPIO functions as quickly as a Raspberry Pi (instantly).
On the other hand, operating system-based devices like the Raspberry Pi have the benefit of being vastly more beginner-friendly and less cryptic than the Arduino and similar microcontrollers. The process of writing firmware is very involved and may involve bitwise operations. I wrote some Raspberry Pi code samples so you can see how simple it is.
Basic arithmetic calculations may be more difficult in some cases, and you may have to work directly with registers. The Arduino platform does address some of these issues. GPIO operations on the Raspberry Pi don’t involve bitwise operations or register operations (done by you, that is), so you can focus more on the logic of your code, and take advantage of the Pi’s processing power to write more sophisticated software.
Power Consumption Of The Raspberry Pi Vs Arduino
The most important difference between an Arduino and Raspberry Pi (in many applications, but not all) is power consumption. The power usage of Arduino microcontrollers can be brought down to a battery life-friendly 15 mA (which at the 5 Volts the Arduinos operate at translates to is 0.075 Watts) or far less with clever configuration. The Raspberry Pi 3B power consumption is over 2 Watts, although it could be much more (and a little less in some cases) depending on the load you put on it.
In the case of those examples, the Raspberry Pi consumes 26 times more power. If your project is battery power, this will matter. What this also means is your Arduino can be powered by a 2032 coin cell or a tiny phone battery (5 Wh would be more than enough, for example), while your Raspberry Pi may require 26 times that — blowing a hole in any attempt to make your project small (this doesn’t apply to all portable projects, of course).
Once you factor in the advanced power saving features of microcontrollers like the Arduino and the ease of implementing them throughout your code (putting the processor to sleep or underclocking it whenever the opportunity arises), the power consumption gap widens dramatically.
Ease Of Internet Access And HTTP Operations
You may want to download or upload sensor or other data using your Arduino or Raspberry Pi for IoT projects, and this is where you may almost always prefer a Raspberry Pi (unless your budget is extremely tight). The Raspberry Pi SBCs are capable of running Node.js and Python out of the box, and sending an HTTP request from your Raspberry Pi using Node.js requires few lines of code.
Raspberry Pi 3 models all come with Wi-Fi, and the 3B and 3B+ come with both Wi-Fi and Ethernet ports (although there are accessories). Most Arduinos don’t have either, and you’ll have to parse JSON without the ease of integration that Node.js offers.
The difference in price between Arduinos and Raspberry Pis is more of an issue if you have an extremely tight budget or are putting your project into production. The MCUs that power the Arduinos can be obtained for a measly $0.80 in some cases (some ATTiny models), while a Raspberry Pi Zero costs at least $5, a 3A+ costs $25, and a Raspberry Pi 3B+ costs $35.
Physical Size/Footprint Of The Raspberry Pi Vs Arduino
Some Arduino boards — such as the Arduino Nano are significantly smaller than the Raspberry Pis, and can therefore fit into more projects that even a Raspberry Pi Zero couldn’t fit into. The required battery size is another factor to consider and a great benefit of the Arduino Nano, which consumes very little power. The AC adapter required to power a Raspberry Pi Zero is actually bigger than the Raspberry Pi itself!
Analog Vs Digital Peripherals
Many Arduino microcontrollers have an embedded analog-to-digital converter (ADC) that enables you to measure voltages and read directly from cheap analog sensors, transducers and controllers such as varistors, potentiometers, thermistors, pressure sensors, among others.
The Raspberry Pi, despite lacking a built-in ADC has an excellent ecosystem of digital sensors for almost every project. However, these are significantly more expensive than analog sensors and the cost can add up if your project requires many sensors.