Unless you’re really hardcore and want to build a complete circuit board from scratch before even getting started prototyping, you’ll need to choose a hardware platform to work with when you’re starting an electronics project. You’ll also need the associated software tool to help you program the board.
While a good platform will help you build faster, this will influence the choice of all your other components. As such, it can limit your options and make your life harder if you don’t understand what it can do first.
Two of the most common choices in the DIY community are the Arduino and Raspberry Pi platforms. The Arduino platform is based on a microcontroller, while the Raspberry Pi is a single board computer. They both have a very large community and may look similar on the surface, but they are very different to work with.
What Is Arduino?
The Arduino platform first gained popularity as an open-source hardware and software development environment for the Atmel AVR 8-bit micro controller that’s easy to use for beginners. The Arduino name refers to the official boards, the most popular one being the 8-bit Arduino Uno, but there are now many other Arduino-compatible boards for various microcontrollers and processors of various sizes and logic levels such as:
- Arduino Nano for a smaller and low-powered board
- Arduino Due for a more powerful, 32-bit microcontroller.
- ESP8266 boards for Wifi-enabled projects
Programming the board is done in a subset of C++ in the Arduino IDE on your own computer. Microcontroller programs usually feature a large control loop that reacts to various inputs, timers and other external interruptions. When you’re ready to push code to the board, you’ll need to plug it in your computer and push it from the IDE. The microcontroller will then execute the code when it powers up.
You can time actions a lot more precisely than with a computer even if its specs are a lot lower since you’re in control of everything, unlike a computer which has an operating system in the background managing various processes and operations.
Since the goal of a microcontroller is to control multiple devices, there are many input/output pins (including pins for digital and analog devices) and multiple communication protocols such as I2C and SPI are supported. There is also a large collection of “shields” that can be stacked on top of the main board, allowing to add more hardware easily to prototype more complex use cases.
What Is Raspberry Pi?
The Raspberry Pi is a fully functional single-board computer, and a pretty powerful one for the price. As such, it includes all the parts you’d usually see in a computer such as a SD card (for storage and hosting the operating system), network connectivity, HDMI ports and USB ports. You can also easily plug in a monitor, a keyboard and mouse when you need to work with it. There are many versions of the Raspberry Pi now available; in doubt, you can always go with the latest once since they’re pretty cheap.
The most popular operating system for is the Raspbian Linux distribution, which contains most of the tools you’ll need to get started. If you have a Raspberry PI to spare, there are many other great distributions such as:
- Retropie, for retro-gaming and emulation.
- OSMC, for a media center.
- Pi-hole, to block all ads on your computer network.
As a result, most Linux packages can be downloaded and used quite easily, making it a great choice if you need to throw in a small server in any of your projects. You can code in any programming language supported on Linux and execute it directly on the board.
As with Arduino, you can add “HAT” modules on top of the GPIO pins to extend the Raspberry Pi with more devices. But contrary to the average Arduino board that works with 5V logic level, those GPIO pins are at 3.3V logic level: it’s still pretty common and you’ll find all the devices you need, but you have to be careful so you don’t mix the two kinds since 5V devices could fry the Raspberry Pi. Also, given that you’ll run an operating system, that there are only digital pins available, you’ll be more limited than with a micro-controller as what you can interface with.
If you need to manage many inputs, especially analog inputs and don’t want to worry about an operating system interfering with your delicate timing, then you should choose the Arduino platform.On the other hand, if you’re looking for a large amount of computer power but won’t use complex hardware inputs and outputs, then the Raspberry Pi is the best choice.
This doesn’t mean that you can’t combine the two, letting the Arduino take care of the majority of the electronics heavy lifting while having a Raspberry Pi as the brain of the project. However, if you’ve never worked with either platform, you may wish to start with a smaller project so you can get your hand dirty with each platform separately first.