Arduino still has advantages over Raspberry Pi, particularly in cost and simplicity. This guide lists some of the situations I’ve found Arduino to be better than Raspberry Pi, despite its slower CPU and lower memory capacity.
In summary, the advantages that Arduino has over Raspberry Pi are that it’s simpler and cheaper. This makes Arduino easier to learn to program, gives your programs more access to hardware and circuits, and makes it easier to design a product if you’re planning to manufacture.
1. Cheaper boards and cheaper to get started
The cheapest Arduino board is the Arduino Nano Every which can cost as little as $11.90. Other Arduino models typically range in price from $18 to $70. It can cost an additional $15-$20 to start building projects with Arduino.
By comparison, a Raspberry Pi starts at $35, though expect to pay an additional $45 if you don’t already have an SD card, mouse, and keyboard. Additional components, such as capacitors, motors etc. can also cost a similar $15-$20.
I wrote a full guide on the costs of getting started with Arduino, including components and starter kits (which include bundles of components and instructions on how to use them). Check out the guide here: chipwired.com/arduino-cost-guide/
Any project that is “cost sensitive” can benefit from the use of an Arduino instead of a Raspberry Pi. I’ve typically found there are two types of such “cost sensitive” projects:
- Trying to save every dollar: If you’re building a hobby project for yourself and don’t have a large budget, finding an Arduino which is suitable for the project could be a great way to save you money
- Mass production: If you want to manufacture a design that includes Arduino, reducing the cost by even a dollar or two can be a big saving if you’re producing dozens of final products.
Engineers such as myself make these decisions all the time – I often pick the cheapest tool that will accomplish the task, regardless of what other features it might have.
Making money with Arduino is possible, and selecting the most cost-effective components in your design is part of that. I recently listed out a bunch of different ways you can make money with Arduino, check out the guide here: chipwired.com/make-money-with-arduino/
2. Easier to write code for
I’ve found it much easier to write a program to accomplish a task on an Arduino, than it is to do on a Raspberry Pi. This is because:
- Simple to use IDE that works well for all Arduino
- A smaller set of libraries (that are typically well documented and maintained)
- One common language that most people use (Arduino is most often programmed in C/C++ whereas the Raspberry Pi community uses a variety of languages)
I’ve found a lot of help is available on the internet if you get stuck using the Arduino IDE and programming language; I reckon this is because there aren’t many real alternative for Arduino meaning it’s more likely someone has run into the same problem as you before.
Arduino doesn’t offer a lot of options when it comes to writing code. I’m highlighting some of the positives for the purposes of this guide, though the negatives are that you may not get your choice of language when programming Arduino, and that I’ve found Arduino code typically less ‘powerful’.
3. Uses less power
Arduino can be programmed to use very little power. This is good for projects where power supply is unreliable and the Arduino has to run from a battery. Using less power means the battery will last longer.
Example projects where this is beneficial typically relate to any sort of remote data gathering or remote control where you can’t be near the Arduino. Some examples I’ve seen include a remote weather station that saves data to an SD card on the Arduino, and controlling industrial equipment on a farm.
An Arduino can use as little as 286mW of power. Using a Raspberry Pi 4 for similar projects would require around 2,400mW of power. I tested both Arduino and Raspberry Pi to see how much power they use, and it was much easier to get an Arduino to use less power. The results of my tests are here:
- Arduino power use experiment I conducted: chipwired.com/arduino-power-use
- Similar Raspberry Pi power experiment I conducted: chipwired.com/raspberry-pi-power-use
4. Code has easy access to hardware
Writing an Arduino sketch that talks to input/output pins and other hardware devices is easier on Arduino than Raspberry Pi.
The Arduino process for accessing hardware can be summed up as:
- Initialise pins and include communication libraries (e.g. SPI)
- Write directly to pin or use library function for communication
The comparable Raspberry Pi process involves ensuring the operating system is up to date, setting the right permissions for your program, including the right libraries, then finally accessing the pins. If you’re interested, the documentation page for this can be found here (it’s very long!).
Raspberry Pi’s difficult process for accessing hardware is due to its operating system. A full-featured operating system (such as Windows, or the ones used for Raspberry Pi) has a lot of versatility and security features built in – you can run multiple programs and the same time without the concern they will interfere with each other. The downside to this is that it means another layer of code needed before you can access the hardware connected to the computer.
Arduino boards typically do not have a full-fledged operating system. This means you don’t have to work with the operating system when accessing hardware – greatly simplifying the process.
5. Less components required when getting started
Arduino needs less components, cables, and other items when first getting started. This also makes it cheaper to begin with.
I successfully produced Arduino projects using only the following:
- An Arduino UNO WiFi Rev 2
- A USB cable
- Nothing else!
However to make my first Raspberry Pi project, I had to assemble all of this:
- A Raspberry Pi 4
- A USB-C cable
- An HDMI cable (and an HDMI-micro adapter)
- A keyboard
- A mouse
- An SD card
Then I had to program the SD card as well before I could start working on my first project!
In fairness, I would expect to purchase more components for a useful Arduino project. A typical Arduino project would involve the purchase of additional sensors, shields, circuit components, motors etc. I wrote a guide on the Arduino components you could expect to purchase for a project here: chipwired.com/useful-arduino-components/
Starter kits can also offer a good way to buy bundles of components and guides on how to build those components into a project. I wrote a guide for when starter kits are good value, it can be found here: chipwired.com/arduino-cost-guide/
6. Code has easy access to memory
Another benefit of not having a full operating system is that an Arduino sketch has greater access to the memory of the Arduino.
This means an Arduino sketch can do powerful things such as modifying memory addresses directly, efficiently allocating memory based on the specific application, and never being denied memory by an operating system.
It can be dangerous (to your code) to work with Arduino memory directly. I wrote a whole guide about how to crash an Arduino and directly accessing the memory features highly, check it out here if you’re interested: chipwired.com/arduino-crash-hang-guide/
Raspberry Pi, by using a memory managing operating system, takes away some of this responsibility and power from your code.
7. Easier to learn
For building hardware-focused projects, I’ve found the Arduino environment easier to learn and teach than Raspberry Pi.
To get to the point of building a robot, the table below summarises the typical knowledge you’ll need:
Arduino Knowledge | Raspberry Pi Knowledge |
---|---|
Basic circuit knowledge (capacitors, resistors, wires, motors, etc.) | Basic circuit knowledge (capacitors, resistors, wires, motors, etc.) |
Basic understanding of how to code in C | More advanced understanding of how to code in C |
– | Understanding of how programs communicate with an operating system |
Want to know how much knowledge is needed to get started with Arduino? Check out my guide here: chipwired.com/arduino-how-much-programming-knowledge/
8. Simpler and cheaper board design
Arduino has a simpler board design using less integrated circuits and a simpler power supply circuit.
If you are designing a product that you want to produce at scale, it will be easier to translate an Arduino prototype into a product that can be manufactured.
A typical product design process can be considered as:
- Design concept (pen and paper)
- Prototype (using something like an Arduino and breadboard)
- Testing
- Design of product (something that can be manufactured)
- More testing
- Mass production
- Sales!
If you use Raspberry Pi as a prototype, you may find yourself replicating complicated integrated circuits for peripherals you don’t need (e.g. HDMI). I’ve found the process of moving from prototype to product design a bit easier with Arduino.
Designing and selling your own product is one of the ways you can make money with Arduino, I put together a guide recently on many of the different ways people are making money with Arduino. Check it out here: chipwired.com/make-money-with-arduino/
Chris is fascinated by the ability of the Raspberry Pi to accomplish so much in such a small and cheap package. But as an engineer, he is also aware of choosing the right tool for the right job – this means he considers that there are many cases where an Arduino has advantages over a Raspberry Pi (even if it has less memory and processing power).