- April 27, 2017
- Posted by: Mahesh Kulkarni
- Categories: Blogs, IoT

Choosing an IoT platform is a pre-requisite for beginning the development of an end-to-end IoT solution. Let us take a look at Raspberry Pi and Arduino – the most popular open firmware and hardware platforms.
Arduino is a microcontroller board that is used for dedicated applications; for example, actuating small devices like motors, sensors, and lights. On the other hand, Raspberry Pi has a microcontroller, HDMI ports, and RAM. Which means that; with basic coding knowledge, you can configure an OS on Raspberry Pi and use it as a media streaming device, running a web server, or VPNs. So, if you are looking for an M2M interface, Arduino is what you need. But, if your end use involves a human interface then Raspberry Pi would serve the purpose.
Which other crucial metrics should you consider before choosing between Arduino and Raspberry Pi?
- Power Requirement
A typical Arduino uses an ATmega328 chip with 2KB RAM, 32 KB flash memory, and 1 KB EEPROM. The power consumption is thus fractional – you can use a 9V battery or just plug it into your computer. The power drawn can be further reduced by decreasing the Vcc voltage, reducing a clock source, turning off clocks to peripherals, or only triggering when an interrupt fires. Also, it does not require a shut-down process, while the code runs immediately when Arduino is plugged-in.
Raspberry Pi, as explained earlier, has a full-fledged computing system. It usually has a Linux OS, more than 512 RAM, 32 GB SD Card, USB and HDMI ports. It also requires a proper shut down process. As you can see, Raspberry Pi is like a low performance PC hardware system running on Linux; but comparatively lower power consumption.
- Network connectivity
Raspberry Pi has a built-in Ethernet port as well as USB ports for connecting WiFi dongles. On the other hand, Arduino has no built-in network connectivity and requires additional hardware.
- Sensor connectivity
Arduino has 14 digital and 6 analog I/O pins. It can thus be interfaced with sensors that measure pulse-width modulation, temperature, and similar Vcc to analog changes. Also, it has a scalable hardware design.
Raspeberry Pi has 8 I/O pins which are all digital. Chips like MCP3008 can be used for interfacing a Raspberry Pi with an analog input.
- Development Languages
Arduino does not have an OS. So, coding and prototyping is done in C/C++ with the Arduino IDE. Raspberry Pi runs on an OS called Raspbian based on Debian Linux which lets you code in C/C++, Java, Python, .NET, PHP, NodeJS etc.
Hello! Cool post, amazing!!!
I love what you guys are usually up too. This sort of clever work and reporting! Keep up the excellent works guys I’ve added you guys to my personal blogroll.
Hello.This post was extremely interesting, particularly because I was looking for thoughts on this topic last Thursday.