“History teaches us that the events of the past shape our future. It begs us to not forget. To not wipe clean the memories.”- L. Donsky-Levine,
At Makersbox, we work with both Arduino and Raspberry Pi ; however many a times a nascent maker may find himself to be at a crossroads when having to choose between an Arduino or a Raspi. To understand which board shall be most suitable for which scenario, one must take not only individual board’s specifications into consideration but also their respective histories.
Arduino sprang into creation in Italy with an aim to provide non-engineers with a low- cost, simple platform to create digital projects. Raspberry Pi organisation in Britain on the other hand held the aim of developing a low cost computer so that children, especially those in developing countries, as well as non programmers could get affordable computers in order to start and learn programming.As the years have passed both these boards have gained immense popularity amongst the maker community.
An Arduino board consists of an Atmel 8-, 16- or 32-bit AVR micro-controller (although since 2015 other makers’ micro-controllers have been used) with complementary components that facilitate programming and incorporation into other circuits. An important aspect of the Arduino is its standard connectors, which let users connect the CPU board to a variety of interchangeable add-on modules termed shields. Some shields communicate with the Arduino board directly over various pins, but many shields are individually addressable via an I²C serial bus—so many shields can be stacked and used in parallel.
Raspberry pi(Raspi 3 model B+) is a fully functioning credit card sized computer that has on board wi-fi, bluetooth & ethernet capabilities allowing easy networking, comes with an SD card slot that is used to load a linux based OS plus USB and HDMI ports so that you can connect peripherals like, keyboard, mouse, screen, printers, etc. It also has a 3.5 mm phone jack for audio. To sum it up, you can use your Raspberry Pi as a fully functioning computer.
With the higher clock speed of 1.2 GHz as well as 1 GB RAM (all specs for Raspi 3 model B+) as opposed to an Arduino UNO’s 16 MHz clock speed and a paltry 2 KB RAM, on a cursory glance, Raspberry Pi appears to be a far superior board. The truth however, is far from it.
Arduino boards, in this case UNO, have a vastly different functionality as compared to a full fledged computer like Raspberry Pi. Arduino UNO is a micro-controller, and ask any electronics guy, that is what you require when you need to work with sensors and actuators. The GPIO pins on the UNO are a breeze to use when you require to develop an electronic project, especially a prototype. With the on board firmware there is no hassle involved of booting the UNO with an OS; the stripped down nature of an Arduino board is essential when you have to do one repetitive task, such as gathering data from sensors or running a servo motor. The Arduino runs on lines of code called sketches and the IDE supporting Arduino is based on C, C++ making it a familiar environment for those who have programmed before. For those just starting out, Scratch for Arduino is a visual programming environment that nicely eases the learning process.
Raspberry Pi is real handy when you lean more towards programming as opposed to electronics, but that never means electronics projects can’t employ a Raspi board. The point that needs to be considered though, with the OS that runs a Raspi, for a simple project, utilising the on board GPIO pins may be a bit of a hassle since it involves numerous libraries in order to access the GPIO pins. However, when the processes go more complex and multi-tasking comes into play, that’s where a Raspi board really shines. Moreover, visual & audio representation is a piece of cake with the Raspi plus with python as the programming language, it is a fun and good exercise for someone starting out to write code. Enabling the SSH on your Pi opens up more opportunities in terms of remote handling via another machine.
Each board presents some unique advantages, drawbacks as well as varied challenges. For instance, Arduino’s are the go-to board for analog & real-time sensing; setting up a server and using APIs is far convenient with a Raspi. In contrast to this to light up an LED using a Raspi will require various libraries while the same can be done with an Arduino with 8 lines of code; connecting to the cloud with an Arduino will make use of a peripheral shield with ethernet or Wi-Fi capabilities plus writing an entire new library in order to utilise the shield and network connections whilst a Raspi requires no such peripherals to do the same.
A lot of new makers, see Arduino as a stepping stone to Raspi; there is some degree of truth to it. Arduino is (may seem) easier to use if you are new to coding since Raspberry Pi requires a working knowledge of Python along with basic linux commands. This however does not imply that one cannot simply start out with a Raspberry Pi. Both these boards have a strong online community around them and everything from ideas for projects, codes as well as documented open source projects are readily available.
The inference therefore to be drawn is that Arduino and Raspberry Pi boards are not two opposing forces that require sides to be picked; rather each board has it’s own usage depending upon what flavour of project one decides to work with. Furthermore, the unique powers of both Arduino and Raspberry Pi can be combined in order to play to their strengths and help create an innovative and robust solution if the problem at hand so demands.
As one reddit user puts it aptly:
My Pi is better at talking to people (running a web server).
My Arduino is better at talking to machine parts (moving motors).