The world of IoT has exploded over the past few years, with the number of connected devices worldwide surpassing 15 billion this year. Embedded system boards are the backbone of these electronic devices, providing the computing power, connectivity, and functionality required for, say, a smart thermometer or a smart security system.
In other words, these boards ensure that our wearables, smart appliances, and countless other IoT gadgets function seamlessly, responding to our commands and making our lives increasingly convenient.
But with so many options available to hardware developers and such a wide variety of classifications and components, these boards can also present a lot of confusion. Here’s your guide to choosing the right embedded system boards for your IoT project.
What are embedded development boards?
Let’s start by describing what exactly these devices are. Embedded development boards are specialized computer hardware designed for a specific task or tasks within a larger system. In the realm of IoT (Internet of Things), these boards function as the brains of all the IoT devices, from relatively simple smart doorbells to advanced manufacturing robots.
If you see one of these boards, you’ll notice it looks like a standard circuit board. But while embedded development boards may not look special, their small physical size coupled with low energy consumption and relatively high computational power mean they have a huge variety of applications in the IoT world.
What are the different development board classifications?
Embedded development boards come in various forms, each tailored to specific applications and levels of complexity. The first type is what I’ll call a tick-scheduled board that runs on a simple timed system. This type of board doesn’t have an operating system or much computing power. It simply performs a single task by executing set code at specific intervals. Arduino provides several of these types of boards. Because it doesn’t need a lot of battery power or a big processor, this kind of board is the smallest and might be useful in certain industrial applications for repetitive tasks that aren’t safety-critical.
Next, you have microcontroller (MCU) boards. These are a step up from a tick-scheduled board in terms of power, but they’re still very simple. They typically run a real-time operating system (RTOS) rather than a full OS like Windows or Linux. An RTOS is best suited to run only one task at a time, but unlike a simple tick scheduler, it can also switch between tasks. So an MCU board could have more than one purpose, but in general it will still be used for repetitive tasks. It might stream video, collect temperature data through sensors, etc., but it typically won’t be part of a general-purpose IoT device like a smart watch.
The most important aspect of an MCU may be the “real time” factor of the RTOS. Because the device is only focusing on one task at a time, it can devote all of its computing power to that task. You may have noticed that with your desktop computer, the more tabs you have open in your web browser or the more applications you have running, the slower the computer performs.
Even if you only have one application running, there are a lot of background functions, like virus scanning and updates, that work constantly. Even the fastest desktop computer has to contend with multiple tasks running at the same time from the second you press the power button to turn on your computer. That’s why they sometimes take several seconds to boot up and applications take a while to load
By contrast, an RTOS can boot up in a fraction of a second. It can stream data rapidly, without any distractions from other tasks. Two common examples of MCU boards are the Arduino Uno, which is widely embraced for its user-friendly interface, and the ESP32 family from Espressif. ESP32 MCU boards are relatively powerful and typically have a lot of different connectivity options, including Bluetooth Low Energy (BLE) and Wi-Fi.
The third option consists of single board computers (SBCs). Unlike MCUs, SBCs have a microprocessor (MPU) that allows them to function much like a typical computer. They can run full-fledged operating systems such as Linux. The Raspberry Pi, one of the most well-known options in the SBC category, is popular among hobbyists for its affordability and versatility. The BeagleBone Black is another option that has relatively high processing power.
The problem with SBCs for IoT is that they require a lot more power than an MCU board. They’re physically larger, and they have more processing capabilities than a typical IoT device needs. An exception might be smart watches, some of which need to support a variety of apps like fitness trackers, clocks, music players, and more. But SBCs are typically too large for a smart watch. So SBCs are rarely used in fully functional IoT products, though they can be used to test out certain apps or for some prototyping or high-performance applications that need advanced data processing.
And finally, a lesser known option for an embedded development board is a field-programmable gate array (FPGA) board. These boards, rather than being programmed with Python or another common coding language, are programmed primarily by altering the hardware itself. The hardware can be reprogrammed on demand, hence the “field-programmable” part.
FPGAs are fast and well suited to prototyping, and they can also run multiple external electronic components and sensors simultaneously. This makes them particularly suited for tasks requiring high-speed, parallel processing (i.e., multitasking), or custom digital circuit designs. Among the vast array of FPGA boards, the Xilinx Spartan series stands out, offering some accessibility for beginners and depth for professionals.
The problem with FPGA-based boards is that the programming logic is complex, and it’s quite an adjustment for developers to move from a standard programming language like Python to a programming environment that involves altering hardware logic.
What are the key components of an embedded development board?
Regardless of which type of embedded development board you end up with, it will need to have certain components to function in an IoT environment. There needs to be:
- A processor
- Memory
- A method for interaction and output (connectivity)
- A method for input (sensors)
- A power supply
Let’s start with a processor. Any processor you purchase will have a specific speed at which it handles information, measured in bits. A 4 or 8 bit processor has very little computing power, and it’s only used for the most energy-constrained applications. It is rarely used in IoT because it won’t even have the capability to handle Internet connectivity. By contrast, 16-bit, and 32-bit processors are widely used, with 32 bits being the most common. A 32-bit architecture has enough processing power to handle most IoT applications while still requiring little energy and being relatively inexpensive. Finally, there are 64-bit processors, which are better suited for high-end IoT applications or an MPU-based IoT device.
Next, you have memory, which comes in two forms. The first is what you can think of as a “permanent” kind of memory, also called read-only memory (ROM). This tells you how much data or software your device can store long-term. Then you have random access memory, or RAM. RAM is temporary; it refers to how much space the device can dedicate to its current task. Naturally, the higher the RAM, the faster the device can finish many tasks. However, a higher RAM typically means a more expensive embedded development board, so you will want to make sure you aren’t wasting resources by opting for more RAM than your device actually needs.
The third thing every embedded development board has is some type of connectivity option. In particular, the board will be able to connect to the Internet. It will typically also have ports for a USB connection. It may also be compatible with various connectivity protocols like BLE or Zigbee. Some connectivity protocols are more energy efficient, while others prioritize speed and performance, so it’s important to do your research. You can also read our complete guide to IoT protocols and standards.
Now let’s have a look at the fourth component: a method for input. Typically, IoT devices interact with the world through sensors, like a temperature sensor, motion sensor, and so on. These sensors collect data and environmental information. The type of sensors you’ll need will depend on the intended purpose of your IoT device.
Lastly, you’ll need a power supply. An embedded development board is just a circuit board, so you need some way to supply energy to the system so it can run. IoT devices are typically wireless and rely on batteries. Many rely on a five volt power supply, but not all. Some rely on as little as 1.8 volts, making them ideal for highly resource-constrained IoT applications.
Nabto and Embedded Development Boards
While there are too many different possible IoT use cases to count, you can think of them as being in two primary categories. The first is resource-constrained, meaning that the priority is low energy usage. These IoT applications don’t need a lot of processing capabilities, and they’re rarely safety-critical.
The second category are any applications that rely completely on speed and low-latency to function properly. These are commonly found in industrial applications, where a delay in response could mean a machine dangerously overheating or failing to shut off when a worker comes too close. This may also be necessary in security applications, where you want to be alerted to a potential threat or unauthorized access to a facility as quickly as possible. On the other hand, low-latency is less necessary in certain smart home systems like a smart coffee maker.
In this second category of IoT systems, ones in which speed and low-latency are key, one of the major obstacles to speed and efficiency is that data collected by sensors in an IoT device often has to go through the cloud to be processed by a central system. Nearly all communication with the majority of IoT devices similarly has to go through the cloud, creating latency.
That’s why some embedded development boards may function best in a peer-to-peer (P2P) environment, in which all communication occurs directly at the device level instead of in a central cloud system. This means you can control an IoT device from your smartphone without the cloud acting as an intermediary. P2P communication doesn’t necessarily work for situations in which you need to be able to process a lot of data on a regular basis through your IoT system, but it’s ideal for applications that prioritize low latency.
For example, if you have smart motion sensors that are meant to measure the movements of wildlife in a particular area, that’s going to require a lot of data processing through the cloud. On the other hand, if your motion sensors are part of a smart security system and just need to trigger an alarm, P2P connectivity may be a better option.
Nabto Edge is a platform that provides low-cost remote control and P2P connectivity for IoT devices. It’s easy to set up with your embedded development board, and we offer open-source development kits and other resources to help you get started. Contact us today to learn more about the benefits of P2P for your IoT projects.
Wrapping Up
Embedded development boards can be varied, complex, and confusing. They’re also necessary components of an IoT system. Hopefully you’re now better equipped to choose which ones will be the best fit for your next IoT project.
Read Our Other Resources
We’ve also published a range of IoT device resources for our community, including:
- Our list of the 10 Best Development Boards for IoT in 2022.
- Nabto’s explanation for Why IoT and the Cloud Aren’t Always a Perfect Match.
- Our guide to finding the Top Microcontroller Series for Your IoT Projects.