
It’s time to settle the debate. Arduino vs. Raspberry Pi: which is better? Which of the two is the ultimate ecosystem for makers, students, and development? Some swear by the Arduino, others are die-hard RPi fans.
Unless you’ve been living in a cave for the past 10 years, you’ve heard of Arduino. The Raspberry Pi, though newer than Arduino, also has a special place in the hearts of many makers and is now mega-popular. Many other single board computers and ecosystems have emerged — such as the BeagleBone, but the RPi and Arduino have funneled their way to the top of the list as far as popularity goes.
There are many incarnations of the Arduino. However, the most popular version seems to be the Uno, so while there are other more powerful Arduino boards, we’ll use the Uno (R3) in this comparison.
At first, I was going to compare the Uno to the Raspberry Pi 3 B+. But, since the B+ was released only 3 months ago, many of you probably have not had a chance to use it. Because of this, I’m going to go with the Raspberry Pi 3 B, so we’ll grab a slice of that.
I’ll start by giving a bit of history and specs on the Arduino, since it technically came before the RPi.
Then I’ll do the same with the Raspberry Pi before finally comparing the two to reveal the winner.
Arduino vs. Raspberry pi — let’s let these two ubiquitous boards slug it out and see who comes out on top…
Arduino vs. Raspberry Pi, Round 1: The Arduino Uno
Made in Italy, the Arduino hit the scene in 2005. Since then, there have been various versions of the board including the Duemilanove (2009 in Italian), the Diecimila (which means 10,000 in Italian to celebrate the making of the 10,000th one), the Mega 2560, and more. Of all of them, the Uno remains one of the more popular versions to this day.
The software to program the Arduino is free and can run on Windows, Mac, or even Linux.
The hardware and the software are both open source, so others can take the designs and improve them without worrying about licensing fees.
There are many shields that are available which easily attach to the board adding functionality.
Figure 1 shows a picture of the Uno with labels on some of its parts.
Figure 1: the Arduino Uno.
Arduino Uno Specs
Ever dreamed of being Iron Man, having the ability to build anything, anytime? Try Academy for Arduino!
I’ve discussed the specs of the Arduino Uno in some detail in previous posts like A Closer Look Inside the Arduino Uno and A Closer Look Inside the Arduino Uno, Part 2: Powering the Arduino so I won’t regurgitate all that here, but I will gloss over the important specs for the purpose of comparing it to the Raspberry Pi.
The non-SMD version of the Uno will set you back $22 (as of this writing) if you buy it from Arduino’s website. But, you can pick the board up for as low as $19.99 on Amazon.
An Arduino Uno board measures 2 1/8” x 2 ¾”.
For brains, the Uno boasts an ATmega328, an 8-bit microcontroller running at 16 MHz. The ATMega328 sports 32 kB of flash program memory, 2 kB SRAM data memory, and 1 kB EEPROM data memory. It also has two 8-bit timers and one 16-bit timer.
The Uno is loaded with I/O, featuring a series of 28 female pin headers which allow you to connect other things to it. In fact, out of the 28 pins, 20 are for I/O. The pins can source or sink a fair amount of current.
There are 14 digital I/O pins of which six can generate PWM (pulse width modulation) signals.
It also supports basic communications standards like TTL serial, SPI, I2C, and 1-wire.
Also on board is a 10-bit analog-to-digital converter (ADC) which connects to the 6 analog pins. Because it’s a 10-bit ADC, it has a resolution of 4.9 mV.
Arduino IDE
The Arduino comes with a Java-based IDE (integrated development environment) with a fully featured text editor. The IDE is watered down and easier to use than other IDEs. This is done on purpose so it’s easier to learn and start creating with your Arduino.
Sketches are Arduino programs. The language is similar to C, though a sketch itself is not completely compatible with C. The main() function, normally found in C programs, is hidden from view and added for you when you compile or “verify” your sketch.
Rather than requiring a main() function, the IDE requires two other functions: setup() and loop(). In fact, they’re so important that upon opening a new sketch, the functions will automatically be inserted.
When you finish writing a sketch, you download it to your board via a USB cable.
Now that we’ve covered the basics on the Arduino Uno, let’s have a slice of Pi…
Arduino vs. Raspberry Pi, Round 2: The Raspberry Pi 3 B
The first generation of Raspberry Pi appeared in early 2012, 7 years after Arduino hit the scene.
Though later to the game, the Pi’s popularity grew fast.
The Raspberry Pi Foundation, a charity in the UK, produces the RPi. The charity’s purpose is to rekindle an interest in computer science (and science, technology, engineering and math (STEM) subjects in general) in school-age children. Making the board cheap and fun to quickly grab the attention of students is one of their priorities.
While the Raspberry Pi Foundation’s focus is on the education market, there has been high demand for RPis in the maker community.
The Raspberry Pi is a bare-bones single board computer. When you buy one, you won’t get a case, monitor, keyboard, etc. like you would when purchasing a regular PC or even a tablet/phone (which has all the above built in).
Luckily, most of us have a monitor and keyboard or two lying around which we can use on our RPi.
Until now, I have not covered the Raspberry Pi in any of my posts.
Here, I’ll quickly go over the specs of the RPi 3 B and save the details for another post.
The Raspberry Pi 3 B will cost you $35 if you buy from one of the vendors they recommend. You’ll also need a micro SD card and a 2.1 A micro USB power supply.
The Raspberry Pi 3 B board measures 3.4” x 2.3” x 0.8” high.
For brains, this Pi sports a 1.2 GHz 64-bit quad-core processor. Notice it says processor, not microcontroller.
It comes equipped with 1 GB RAM, wireless LAN, Bluetooth Low Energy (BLE), 10/100 Ethernet, 4 USB ports, an HDMI connector, 4 Pole stereo output and composite video port, 40-pin extended GPIO, and more.
The Raspberry Pi Foundation designates Python as the official programming language of the RPi and Linux as the official operating system. Note, however, that it is possible to use other programming languages with your Pi such as C, C++, Java, BASIC, etc.
Like the Arduino, the Raspberry Pi’s software development tools are free and open source.
Figure 2 depicts a Raspberry Pi 3 B.
Figure 2: The Raspberry Pi 3 B, courtesy of element 14.
Arduino vs. Raspberry Pi, round 3: Comparing Both
The first thing to notice is that the Raspberry Pi has a lot more computing horsepower than the Arduino Uno. So much more in fact, that the Pi flaunts a 64-bit processor while the Uno has just an 8-bit microcontroller.
This is because the Raspberry Pi is technically a computer, while the Arduino is not. In fact, one could use the Raspberry Pi as a PC.
The Arduino Uno is built to connect to things with lots of I/O pins that can handle a decent amount of current. This makes them perfect for making things move, connecting sensors, data collection and more. Other, beefier Arduinos such as the Mega2560 have even more I/O pins (along with more capable microcontrollers). Also, the Arduino Uno can perform many of the same computations the RPi can, though it will likely take longer.
The original Raspberry Pi (models A and B) was a bit sparse on I/O, but the Foundation quickly fixed that with the release of models A+ and B+ in 2014. The Pi now had 40 pins instead of 26.
Another difference between Arduino vs Raspberry Pi is the operating system. The Arduino has no OS and you simply write code that runs directly on the hardware. Also, most of the code for Arduino is single-threaded, meaning that your application is the only thing running. You can run multiple threads on the Arduino, but it can be difficult.
The Raspberry Pi 3 B has a full-blown multitasking Linux operating system capable of supporting multiple users. The code you write for the Raspberry Pi runs on top of the OS; direct access to hardware is something the OS usually prevents. This makes the Pi more robust as any violation of these access rules will cause the OS to terminate the application running without taking the whole system down.
Because of the RPi’s multiuser capability, you could use it for something like a cloud-based storage device with multiple people accessing it at the same time without knowledge of each other. Or, one could create a fully functional, low-cost PC with multiple user accounts.
Power consumption marks yet another difference between Arduino and Raspberry Pi. Depending on the application and how you power the Uno, the board will draw much less than 1 watt of power. Some specs cite even less than ¼ watt!
The Raspberry Pi 3 B, however, can easily draw several watts depending, of course, on the application.
One of the similarities of Arduino vs Raspberry Pi is that they both use shields to provide additional features not native to the board. Each one has many different shields available to do many different things.
Figure 3: Arduino vs. Raspberry Pi specs.
Figure 3 above compares the main specs of the Arduino vs Raspberry Pi.
Arduino vs. Raspberry Pi – and the Winner Is…
Both!
That’s right. Which one you go with totally depends on your application. Both platforms have their pros and cons.
You wouldn’t build a complete multi-user computer system with an Arduino Uno any more than you should use an RPi to just poll a few sensors.
Arduino is good for simplicity and good for doing low-level things like controlling the motor direction on a robot. If your creation runs on batteries and power consumption is important (which it probably is if it runs on batteries), then Arduino is the winner. Arduino also is great for teaching lower-level programming along with microcontroller use and architecture. Many appliances and gadgets in your home contain an 8 or 16-bit micro like the PIC or AVR that powers the Uno.
If you’re looking for more raw computing power and an OS, then the Raspberry Pi is your winner. The Pi is great for learning Linux and higher-level programming. Your laptop and smartphone contain a microprocessor just like the RPi (though they are likely different models). Other complex gadgets may also contain microprocessors rather than microcontrollers.
Both the Arduino and the Raspberry Pi have been instrumental in getting people of all ages into electronics, programming, and STEM. Before the Arduino and Pi, working with microcontrollers was more difficult and potentially expensive. Because of this, the Arduino/Pi duo have also been instrumental in turning the electronics maker movement from something more esoteric into something much bigger.
For this, they are both winners.
UPDATE: shortly after publishing this I stumbled across an article written by the folks at Make magazine which gives a simple rule for choosing between the two. Here it is quoted from their post:
Think about what you want your project to do. If you can describe it with less than two ‘and’s, get an Arduino. If you need more than two ‘and’s, get a Raspberry Pi.
Examples:
“I want to monitor my plants and have them Tweet me when they need water.” That can best be done by an Arduino.“I want to monitor my plants and have them Tweet me when they need water and check the National Weather Service, and if the forecast is for fair weather, turn on the irrigation system and if the forecast is for rain, do nothing.” That would best be handled by a Raspberry Pi.
Which do you use the most: Arduino or Raspberry Pi? Comment and share your thoughts and creations!
Ever dreamed of being Iron Man, having the ability to build anything, anytime? Try Academy for Arduino!

Electronics Tips & Tutorials Sent Directly to Your Inbox

Submit your email & you'll get:
- Exclusive content that I don't put on the blog
- The checklist 10 mistakes all electronics enthusiasts make (& how to avoid them)
- And more!
I was wondering could you use an Arduino & Raspberry Pi together?
Absolutely! They make a great team.
I work with Raspi & Arduino. My favourite Ardduino is the MKR1000. There I create my IOt devices (ADC/dca are on the mkr100 but non of this are on the raspberry). I use mqtt to transfer data to a raspberry. on the raspberry i store the data in a sqlite db. i build python web apps (Django, flask or bottle) to access the data from “all over the World”.
in my view, the i/o handling on the arduino is more performant but on the raspberry, with python, the data handling is more elegant.