Scratching your head as to which IoT (Internet of Things) or network development kit to use for your next project — and not just for prototyping and MVP, but something that is solid all the way through scale-up and commercialization? This article’s goal is to show you where NetBurner’s products fit within a figurative “IoT Spectrum” in contrast with the market’s top two selling IOT development kits – Arduino and Raspberry Pi – in terms of hardware, software, tools, and support. We will also provide some insight in selecting a platform that is right for your project or application while keeping future goals and scalability in mind.
Search Google and you’ll find gobs of articles comparing Arduino vs Raspberry Pi. These platforms have experienced fantastic growth since their beginnings as low-cost learning platforms for students, makers, aspiring hackers and entrepreneurs. Due to their general utility and popularity they have started to show up outside the education and hobby settings and have become more common in laboratory, commercial and industrial applications.
Today we’re going to lay these two IoT development platforms on roughly opposite sides of the proverbial IoT Spectrum, and show how our NetBurner Embedded System-on-Module Dev Kits fit neatly in between. Please understand that we need to generalize, there are many other platforms out there, there is no one-size-fits-all solution, and an appropriate selection really depends on your goals and constraints. We hope you will find that NetBurner has a powerful yet balanced fusion of capabilities across the spectrum, but with advantages in terms of support, optimization for IoT, reliability, tools, product scalability and, yes, it’s also great for prototyping.
NetBurner was founded in 1998 to make network enabling hardware easy and reliable. Our mission has been to support and accelerate our customers’ product development by providing superior-quality embedded TCP/IP stack hardware and software tools to network or web enable almost any sensor or device. Our dev kits and system-on-modules are specifically designed to speed up the entire development process and rapidly integrate into your application or product design. We strive to provide reliable products, support and tools that derisk and accelerate our customers’ development path.
All of our NetBurner Embedded System-on-Modules and Serial to Ethernet Modules can be purchased as Development Kits (dev kits) and used for prototyping, tinkering, or education just like the Arduino and Pi. However, our true value shines as a scalable, optimized, industrial-quality control and processing module that provides embedded product engineers, industrial designers and web app developers not just peace of mind for serious IoT or M2M (machine to machine) applications, but the software, tools and support that is essential for any project’s success. Our dev kits include an industrial grade NetBurner System-on-Module which is literally snapped into a super-handy dev board. Once you’re done with your prototyping you can literally pull the module right off the dev kit headers and use it for your first production quality product if you please. No abstractions there!
If you’re short on time here’s a high-level platform comparison. The rest of the article will go into more detail on capabilities, trade-offs, and applications.
|Product||Arduino Uno||NetBurner MOD54415||Raspberry Pi B+|
|OS||None||Real Time OS||Linux|
|Direct OEM Support||N||Y||N|
|Power Failure Safe||Y||Y||N|
|Native SSL/SSH Capability||N||Y||Y|
|Hardware project friendly||Y||Y||N|
|Multitask apps and server usage||N||Y||Y|
|Official Debugging Capability||N||Y||N|
|Industrial Temperature Range||N||Y||N|
|Designed for Scalability||N||Y||N|
|Memory||32 KB||32MB||None (SD card)|
|Processor Clock Speed||16 MHz||250 MHz||1.4 GHz|
NetBurner offers an IoT optimized hybrid of capabilities between Arduino and Raspberry Pi that scales well to production. Like Arduino, it is highly effective at reading and responding to I/O including serial, analog, and digital data. It also provides a substantial CPU capable of multitasking and processing much larger datasets, algorithms, and applications than the Arduino, but is not as hefty as the Pi with its faster CPU and larger memory. One noteworthy difference that should be acknowledged right off the bat is NetBurner’s Real Time Operating System (RTOS) which has been highly optimized over the course of the past 20 years. In addition to its benefits regarding timing critical control of hardware, comparable operations (such as running a web server) are often faster using NetBurner products than a Raspberry Pi counterpart, despite their beefier processor.
In order to do a deeper comparison, it’s useful to first cover the baseline platforms a bit more — the Arduino (a microcontroller board) and Raspberry Pi (which is a System On a Chip or a Single Board Computer). We’ll then maneuver the NetBurner into the airspace. What you will find is that NetBurner captures many of the most useful capabilities from both sides of the spectrum with some strong differentiators as well.
Figure: Arduino ↔ NetBurner ↔ RaspberryPi
We’re going to focus on the classic Arduino like the Uno, Mega, and Nano for this article. Arduino is a lean and mean development board that can get a lot done. It packages an Atmel 8-bit ATmega328 microcontroller with a 5V regulator, a timer, a serial communication interface, LEDs, a barrel jack, analog and digital I/O, and some headers. It has a scant amount of memory and has a handy USB port to easily load small programs from your PC, though it should be noted USB doesn’t work bidirectionally. The Arduino allows you to quickly breadboard a working prototype and in general, they are fantastically simple and robust devices.
Arduino comes with a nofrills IDE compiler that runs a stripped down C++ type syntax to provide logic and sequencing as needed. Don’t look for an operating system or multitasking here…it runs firmware which usually supports just a single program loop and has very limited processing and memory.
Figure: Arduino Uno
Best Use: These puppies are best applied to simple hardware interface applications. They usually run in a “headless” configuration – meaning they don’t use standard human-computer interfaces during normal operation such as a monitor, keyboard, or mouse. They run near-instantly upon power-up and handle a hard shutdown without any detriment or memory corruption issues making them great for situations with intermittent power. They are ideal for reading sensor data, switch and encoder inputs and responding to signals by controlling and actuating servos, motors, pumps, solenoids, cueing devices, and outputting to simple displays and indicators. Low power requirements make use with alkaline battery packs feasible too. They are a great fit for hobby gizmos, basic process controls and automations! You can even interface them with other computers like a NetBurner System-on-Module or Raspberry Pi.
Classic Arduino applications include simple robots, keyless entry systems, audio synthesizers, digital clocks, lighting displays, and solar trackers. There are even low cost DIY Arduino 3D printer projects out there! There tons of cool projects you can pour through on sites like www.hackaday.io, www.hackster.io, www.instructables.com, www.makezine.com, www.sparkfun.com, www.adafruit.com and of course www.arduino.cc. Arduinos are simple and efficient, have a lively open-source community and are a great general entry-level microcontroller platform!
Food for Thought: A large drawback is that they don’t come with any native networking capabilities. You can buy addon ethernet shields or purchase the newer Arduino Yun Linux OS boards, but they can be costly and frustrating to implement and achieve reliable, secure network connections. Sometimes makers find this process of connecting Arduinos quite irritating and time consuming. They can be connected to a NetBurner or Raspberry Pi to get networking as well. Also be advised that adding networking will increase power consumption considerably.
Scalability: Scalability issues with Arduino may primarily arise with being locked into Arduino’s constrained programming language and core firmware. This limits the design space and makes it a bit more difficult to transition and integrate this microcontroller to some systems. If you want to strip out and work with the Atmel microcontroller chips alone you can do this. Arduino even let’s you use the firmware, source code, and libraries as long as one abides by their licence terms and conditions. Things get messier if you need secure networking capabilities. Transitioning Arduino to use this feature for your products will increase the challenge.
Support: Arduino doesn’t provide direct application support or troubleshooting. Your best place to go is to the official Arduino forum or one of the myriad blogs and websites that host articles, tutorials and large communities of users. While sufficient for hobbyists and makers, Arduino’s indirect, community-based support can be risky when on a product development program.
On the opposite end of the IoT Spectrum lies the hugely popular Raspberry Pi. Not a simple microcontroller, the Pi in all of its variants is an honest to goodness full-featured single-board computer. It uses a System on a Chip (SOC) architecture with a fast microprocessor capable of multitasking complex software applications. Raspberry Pis have powerful integrated microcontrollers, but they are just a piece of the “pi” so to speak! The latest Pi Model 3 B+ has a 64-bit Broadcom Cortex-A53 quad-core 1.4GHz CPU SOC. They also have substantial allocations of RAM, removable MicroSD, EEPROM, flash memory, interface hardware like HDMI, USB, WiFi, bluetooth, graphics processing units (GPU), math coprocessors, and other peripherals all printed in a single integrated circuit! There is even some General Purpose I/O (GPIO) and counter-timers that can be used with external hardware.
Figure: Raspberry Pi 3
The Pi comes out of the box with a distribution of the Linux OS and for a fraction of the price of some people’s weekly coffee budget you’re computing! Except, you’ll still need a monitor, keyboard, and mouse as this is typically not used as a headless platform. A noob can quickly get setup with an internet connection and download a selection of familiar apps to watch movies in HD, surf the internet, serve files or websites, play music and games, and record and edit video. It can also support most advanced programming languages. You name it and there are the same capabilities as any basic PC but at a low cost. The Pi is a nice general purpose computer for tech enthusiasts, gamers, hackers, scientists, students, bloggers, and just about anyone with the desire to geekify their lives some more. The community of users is massive which bodes well for DIY tutorials and peer support.
Best Use: In a purely IoT context, Pi with its low size, weight, cost and computing power has value as a Linux host that is very capable of multitasking, serving files, and communicating with other networked computers and cloud platforms. It’s great for running software apps rather than reading, responding and controlling hardware and distributed IoT. There are loads of maker projects like 3D printers, blockchain networks, and more sophisticated robotics and AI that can be done with Pis as well but, typically they are best suited for low volume and small scale projects.
Food for Thought: In hardware oriented IoT, IIoT (Industrial IoT) and automation applications, a considerable downside is that Pi is not as capable for real-time measurement and control of distributed IoT nodes and devices. It uses round-robin scheduling, which means you can’t guarantee how and when tasks are run. Furthermore, there is no real-time clock which is essential for real-time applications. Lacking a real-time clock and an RTOS can mean less reliability and accuracy for metrology, process automation, manufacturing automation, high speed sensing, and other timing-critical feedback applications. This makes timing and correlating events and data very dodgy. Both Arduino and NetBurner perform better in these situations.
Another Pi drawback is that startup can be lengthy and power interrupts can actually corrupt system memory. Safe and rapid handling of power interrupts and startups provides a more stable, maintainable, and predictable network — this is often a required capability in the IoT and IIoT industry. For industrial applications, the Pi also lacks the industrial operating temperature range.
Accessing I/O on a Pi is a bit trickier than Arduino or NetBurner as well. It uses GPIO as it’s form of I/O and does not have Analog to Digital Converters (ADCs). This means that many analog devices like sensors won’t work without additional circuit design or 3rd party ADC products. The Arduino and NetBurner really make reading analog and digital data and controlling hardware pretty simple out of the box. Additionally, with Pi it can be trickier to write I/O read and respond software that also works within the constraints of the OS due to the timing issues referenced earlier. These weaknesses make it less desirable for service as an IoT node or controller performing simple tasks like reading and responding to sensor data.
Scalability: Pi can sometimes seem like 10 pounds of tech in a 1 pound bag. As a general purpose processor or server and in small deployed quantities it’s hard to beat the Pi’s cost, versatility and value. However, its Linux OS and processor are often overkill; leading to higher latencies and power requirements than might be necessary.
To further complicate issues, Linux is somewhat prone to security vulnerabilities due to its popularity as a server OS and therefore, it needs continual patches to fix them. However, each patch is not limited to just security, as other elements can be modified as well. For security reasons, the patches are not optional. The problem here is that the user must now regression test everything each time a patch comes out. This adds considerable risk and maintenance to the use case, not to mention that for large distributed networks of Pis you’d have a non-trivial logistical challenge. Don’t get us wrong, we love Linux, but for scaling up IoT and IIoT, it has some serious challenges.
In volume sales the Raspberry Pi is usually not optimal and doesn’t scale as well as some other options. One scalability issue is more in terms of risk and availability when sourcing components. The Pi is often oversold and underproduced, emphasizing the considerable risk in acquiring these units as needed. This risk stacks on top of many other issues that we described, making the Pi a tricky fit for mass market or commercial and industrial applications.
Support: The Pi uses Linux, so there is definitive authority or support available for when you have issues that might point to the OS. Like Arduino, Pi doesn’t provide direct application support or troubleshooting. Your best places to go, but not always most reliable, are to the Raspberry Pi Help web page or one of many blogs and websites that host articles, tutorials and large communities of users. Like Arduino, Pi’s indirect/passive and community-based support can be risky when on a product development program.
NetBurner = Analog, Digital, Serial I/O + Ethernet TCP/IP + Web and File server + SSL/SSH + 32-bit CPU + Multitasking + RTOS + Peripherals + Industrial Temp Rating + Direct Support
Figure: NetBurner Dev Kit board with desktop software toolkit (left), the MOD54417 System-on-Module (upper right) and the MOD54415 system-on-module (lower right). Modules can be pulled off dev kit boards and used in products.
NetBurner products cover a broad swath of the IoT Spectrum and are a formidable hybrid between Arduino and Raspberry Pi. NetBurner is akin to Arduino in terms of ease, reliability, and accurate timing for analog, digital I/O and hardware applications. They are also great for fast startup and robustness during power failures.
Conversely, in terms of design space, processing power, multitasking, networking and server capabilities, it is much closer to the Pi. NetBurner, like Pi, also uses a SOC. Our modules use either a Microchip ARM Cortex processor (releasing this year) or a NPX Freescale Coldfire processor (like the MOD5441X, our current flagship module). A significant differentiator is that NetBurner has a real-time clock and a highly optimized Real Time Operating System (RTOS) unique to our products. Real time deterministic performance makes NetBurner highly capable of timing, sequencing and coordinating hardware, data, tasks and processes.
While developers are free to choose a C++ compatible IDE of their choice when building apps for their NetBurner modules, to make the development process as smooth and easy as possible NetBurner provides a fully featured Eclipse based IDE. It allows for the creation and configuring of projects, deploying them to a device, and supports a full set of debugging features. In addition, a full suite of tools is supplied with dev kits that provides everything from a serial terminal, to a lightweight FTP server, to virtual com port software, and everything in between.
Best Use: NetBurner’s native networking and real-time embedded CPUs let you process complex algorithms, securely serve websites and files, and respond to server requests (HTTP/S and websockets being two common modalities). This makes it great for applications where a secure and rugged IoT interface and networking solution is desired. NetBurner has native networking, serial I/O, digital I/O, analog I/O, signal converters, embedded processing and readily supports SD cards, USB 2.0 (in beta) and 802.11 b/g/n WiFi (with our easy add-on modules). SSL/TLS can also be enabled for all data transfers. Users really love how easy it is to securely network enable serial, digital and analog devices, and handle a variety of M2M, IoT, and industrial protocols.
Food for Thought: NetBurner’s RTOS is specifically designed to minimize overhead for IoT and networking apps, thus reducing latencies and power consumption compared to the Pi. The use of an RTOS has another critical benefit — startup is really fast and can our devices can undergo a hard shutdown without corrupting memory.
Just like Goldilocks, NetBurner offers a “not too hot, not too cold” solution with most of the capabilities we are sizing up on the IoT Spectrum. If you need super low-power, super simple I/O without secure networking capabilities or almost no processing power, Arduino can be a cheaper, more suitable choice. Or, if what you need is a quad-core multithreaded CPU or loads of video processing power, then the Pi is likely a better fit. However, if you are searching for a performance optimized embedded system that requires secure networking capability as well as easy and direct access to the hardware itself, NetBurner can scratch that itch.
Scalability: The NetBurner RTOS is also intentionally geared to work well for embedded engineers and web developers who need to make scalable, robust commercial and industrial apps and with ease. Our industrial temperature range and support for a variety of Industrial Automation Protocols also makes scale up easier.
Our dev boards facilitate rapid prototyping easily by exposing serial ports, I/O pins, providing a power jack and other peripherals. They also make writing software and testing much easier. The fact that you can remove the module from a dev board and use it just as you would in production is a real benefit to many of our users and can significantly reduce project risk.
For many projects, space is a big constraint and trying to use a plug-in module is just not an option. For those packaging requirements, we also sell individual boot chips, so that customers can build them directly into their own hardware. In the same spirit, for customers who want complete control, NetBurner offers licensing that includes rights to the hardware design (full schematic and layout files are provided), TCP/IP Stack, Web Server, RTOS, Debug Monitor, and end user utilities.
NetBurner’s production hardware are controlled assemblies. This means that our goal is to never have a hardware change so customers have the security of getting the same high quality product every time. Should a hardware change be necessary, our customers are informed ahead of time.
Because our devices are manufactured locally, we are able to give accurate lead times for large orders and more carefully monitor the manufacturing and quality processes. And because we like you so much, orders for our modules are subject to quantity discounts. NetBurner has a warranty that it stands by, and is constantly working with its customer base to improve both the product and its support. Speaking of…
Support: One of the things that NetBurner stands by is the quality of our direct customer and application support. That’s how we’ve rolled for the last 20 years in the biz. Unlike Arduino or Pi, we offer highly responsive direct email support (firstname.lastname@example.org) and have a great support portal as well. When you ask for support, you’ll be dealing right off the bat with skilled NetBurner engineers, rather than getting progressively escalated through a corporate call center. We are extremely proud of our community and the things they’ve been able to accomplish, and our support engineers also participate and interact with them through our forums on a daily basis.
As a team that is always striving to promote creativity and development, we take a lot of joy in writing our Learn Blog, and providing free software and tools, documentation (including over 100 code examples demonstrating everything from AES to WiFi), and resources. Your success is our success. It’s like you’re Rocky and we’re Micky right behind you in the corner… except we’re not going to die on you!
As you can see, there is no one size fits all platform, and we had to exclude many other IoT products from the article for the sake of “brevity”.
That said, you should consider the Arduino route for ease of use in simple hardware read and respond applications that are not time or performance sensitive. The boards are usually low cost for non-network applications. Once you start adding the shields for additional functionality such as networking, the cost starts to go up and it is not appropriate for industrial applications. The Arduino can be considered for simple applications that do not require an operating system, can run in a single task, and do not require real time performance. Given the low power requirements and upkeep of Arduino devices, they’re also a good choice if your project will continuously run, be battery powered, and require little to no maintenance or human interaction.
You should run with the NetBurner if you need to securely connect and accurately read and control analog, digital or serial devices to a network or the web and access via a browser-based UI. It’s really great for applications where the main task involves reading sensor data and changing values on motors, actuators or other devices and where operations require little to no maintenance or human interaction. It is also useful if you also need to run complex code and data processing or require real-time deterministic performance and multitasking. NetBurner is especially recommended if you intend to scale up or have an industrial or commercial application. NetBurner is a complete solution for hardware, software, development tools and direct OEM support. If that’s important to you, then NetBurner again has a significant edge.
You should go with a Raspberry Pi board if your project involves a task you would otherwise accomplish on a conventional personal computer or single-board computer. The Pi makes it easy to add interfaces such as a keyboard and display. It has the ability to handle multimedia applications, and by default has a full featured file system. It nicely suited as a file server, database server, VPN host, or for running applications that require multithreaded processing. It is important to keep in mind that it does NOT provide real-time deterministic performance or industrial temperature ratings.
Thanks for reading! As always please share your comments or questions.