Thursday, 13 August 2020

Enginursday: When NOT to use a Raspberry Pi

This isn't a Pi bashing thread, I cannot stress that enough. It's a question I'm sure you've seen or potentially asked. We've answered the question in tech support and personal conversations, but it's never really been covered in our blog.

For those confused as to why this is an addressable topic, there's been a question as old as the Pi: Why should I buy 8-bit/32-bit boards when I can get a Raspberry Pi for $35? Why buy a microcontroller development board when you can have the power of a desktop computer for around the same price? And the answer is, when it's the right tool for the job. What you lose in features and performance, you're gaining in ease of use and a more application-appropriate processor.

How hardware intensive is this project?

The 40-pin connector on the Raspberry Pi is a solid option for working with hardware I/O, but if the majority of the project consists of talking to these devices, then the Pi is probably not needed. One could make the "better to have and not need" argument with respect to the extra performance and features, but with that comes extra work. Take a simple LED blinking - using something like the Arduino Uno can have your LED blinking in around five minutes. The Pi, on the other hand, requires importing libraries and a bit more code. Still not the end of the world, but definitely can be done easier with an Uno (even easier with a 555 timer).

However, the more a software "lift" is required, such as hosting data or hardware states on a server, the more a Pi makes sense. It's not a binary choice however, there are a number of products in between that hit benchmarks in terms of the balance of hardware and software accessibility.

Power requirements

The Pi is awesome when it comes to putting together sensor systems. The ability to use things like Jupyter Notebooks on the same processor you're reading data from is incredible! But what if this sensor system is remote? The power-hungry Pi means finding a power source that matches the remote nature can be difficult. If no local power is available, bulky batteries could be your only option.

SPLOT electronics in case
The SPLOT, a remote sensing project by Pete Marchetto (former SparkFun Hacker in Residence). A good example of a project where a Pi might fit, but without it, it works a lot better.

On the other end, a properly configured Teensy can provide a remote or edge sensor system that can run for months off of a smaller battery pack. It will require a separate device for processing data (and storing it, depending on the route). But in most cases the more remote your project, the more power efficient you want it to be. Thus the Pi often isn't going to be your first choice.

Your background

I don't like that I'm making this argument, but I think it's valid. It actually might point you back toward the Raspberry Pi.

If time is something you don't have a lot of, you might want to go with the platform (or programming language) you know best. I have plenty of EE friends who constantly complain about how much of a pain in the butt working with the Pi is. Alternatively, I have a lot of friends with a software background who love working with the Pi and its terminal. If the goal is quick and you're more versed in microcontrollers and programming in C, then it's probably better to stick with what you know. That being said, I'll always plug the enormous library of tutorials the internet has to offer for both the Pi and other platforms.

The right tool for the job

I often compare it to this situation: What would you deliver pizza in - a Honda Civic or a Ferrari? Of course you're choosing the Ferrari! It'd be so much fun! Imagine the look on people's faces when you roll up to their house with their large pepperoni pizza in a $200,000 car with the pizza delivery sign on top. It's everyone's choice! But when you factor in insurance, gas, and how it's not really practical for pizza delivery... suddenly the Civic seems more appealing (no, selling the Ferrari so you don't have to deliver pizzas isn't an option in this analogy).

The Pi has almost limitless uses, but so do the myriad other boards available, so don't always go to the performance-for-price metric when choosing the right board for your project.

As always, I love hearing the opinions of our customers. How do you feel about using other boards or the Pi. Is one a no-go due to a personal barrier?

comments | comment feed



No comments:

Post a Comment