A Complete Guide To IoT Development Boards
Dive into the world of IoT development boards, including their types, features, and application examples, to make informed choices for your IoT projects.
Join the DZone community and get the full member experience.Join For Free
IoT developers know how important it is to find not just what works but what works best for a particular IoT use case. After all, a smart proximity sensor in an IoT security system is very different from a smartwatch you might use to monitor your health, take calls, send messages, and more. The same goes for development boards, which are a central part of any IoT device. Each one comes with its own set of specifications and pros and cons.
Learn how to find the best boards for your specific project and what the differences are between them in this guide.
What Are IoT Development Boards?
Any IoT product will likely have gone through various different iterations before it finally hits the shelves. Developers will make changes like adding or removing features, altering the user interface based on consumer feedback, etc. Unlike a market-ready IoT device, in which the circuit board and electronics inside are hidden by the outer plastic, a development board has everything you need to configure an IoT device exposed for easy access so developers can test out different settings and make changes on the fly.
Development boards are just printed circuit boards with either a microcontroller or a microprocessor mounted on them and with various metal pins that an experienced developer can use to develop, prototype, and iterate different versions of various smart products. They’re also used by hobbyists to help them become more familiar with development concepts and hardware.
IoT developers can also use the boards to develop a Minimum Viable Product (MVP). The purpose of an MVP is to attract early adopters, show the potential of a final product design, and gain both funding and interest. The MVP stage involves making changes based on initial user feedback, so it’s especially important to have full access to the hardware. Finally, a development board provides the perfect staging ground for trying out a new software product, app, or IoT platform prior to rolling it out on an entire line of smart products.
What Are the Different IoT Development Board Categories?
The major categories within IoT development boards are Field Programmable Gate Arrays (FPGA), Application-Specific Integrated Circuits (ASIC), and Single Board Computers (SBC). Let’s look at each in turn.
You can think of an FPGA as a book that hasn’t been written yet. It doesn’t have a specific purpose, and it’s up to you as the writer to decide what its purpose will be. FPGAs lead all of the configuration up to you. The “field-programmable” part also means that you can “re-write” the purpose of the device at any time. That makes it best suited for the prototyping stages in which you might need to make changes on the fly or develop new functionalities for the device. FPGAs are best used by experienced developers since they don’t come with the hardware pre-configured.
If you want to use an FPGA development board properly, you’ll have to learn a Hardware Development Language (HDL). Learning an HDL has been compared to learning complex digital programming languages like C. HDLs help the developer know how the device will respond to various configurations.
An ASIC development board, unlike an FPGA, comes pre-programmed with a specific purpose or purpose in mind. It leaves a lot less work to the developer. However, an ASIC board isn’t always best for prototyping because you can’t make major changes to the configuration.
Finally, an SBC development board is a full-fledged computer that comes on a single board. The Raspberry Pi might be the best-known example. An SBC has a lot of processing power. While it’s nowhere near as customizable as an FPGA, it will generally have enough different input and output (I/O) options to apply to many different IoT use cases. However, SBCs also require a lot more energy than other development board options. And although their physical size is relatively small, they’re still far too large for, say, a simple smart temperature sensor.
Important Features of Development Boards
FPGA, ASIC, and SBC development boards have everything you need for an IoT device system in the form of a processor, an operating system, input and output options, and more. But they will differ in what type of processor they use. An FPGA might use either a microprocessor (MPU) or a microcontroller (MCU), whereas an ASIC will generally use one or more MCUs. An SBC, on the other hand, generally relies on an MPU.
The reason for these differences is that a microprocessor is higher-powered and suitable for performing multiple tasks rather than just one. It has a full operating system, generally Linux-based, and tends to be higher-cost than an MCU as a result.
By contrast, a microcontroller is a low-powered device that’s better suited for a single task that an ASIC might perform. MCUs rely on something called task switching to provide a real-time response to input. Task switching means the MCU will decide which task to perform first based on priority rather than trying to perform multiple tasks at the same time. Since the MCU can focus all of its processing power on one task, that task gets finished very quickly. So, in manufacturing, where a machine might need to turn off within a millisecond of reaching a dangerous temperature in order to avoid a fire, an MCU often provides the best performance.
For these reasons, you always need to know whether the development board you plan to buy has an MCU or an MPU. Here are some other features to look out for as well:
Open-Source Hardware (OSHW)
OSHW is just what it sounds like. Just as there are open-source software designs that allow you to see and freely change the code at will, there are open-source hardware development boards that let you freely use and change the configuration as needed. Arduino development boards are one example.
When you start to develop a new IoT device, determine what kinds of input and output ports you will need for your specific application. For example, do you want to allow USB connectivity? Do you need an HDMI port for video streaming?
An SBC will generally use Linux, but what about an ASIC development board? ASICs will often rely on a real-time operating system (RTOS). An RTOS is a simplified operating system that performs a single task at a time and switches between tasks. There are also ASICs that have a tick scheduler rather than an OS. A tick scheduler just repeats a single task at certain preset intervals.
These days, one of the most popular features of any IoT device is mobile connectivity. In other words, most consumers want the ability to view the status of their IoT devices remotely and control those devices right from a smartphone. For those purposes, you should examine whether the development board has Bluetooth, wireless internet, 4G, or 5G connectivity capabilities.
Random Access Memory
If you work with computers much, you’re already familiar with the concept of RAM. While storage memory refers to how much data you can keep on your device, RAM refers to temporary memory that’s used to perform tasks at any given time. So, more memory means the device can perform more tasks or just one task with more processing power. Your cost will go up as RAM increases, so for simple tasks, less RAM is often actually better.
Choosing the best processor is far too complicated to go into detail here, but it’s enough to know that three of the top processor options are ARM, Intel x86, and AMD. Intel x86 processors are used in most personal computers for their speed and processing power, but they use more energy as a result. AMDs have even more processing power on average, whereas ARM processors have simpler instruction sets and require less power. ARM processors also tend to be physically smaller, meaning they fit better in size-constrained IoT devices. So, in low-power environments, ARM is often the best option.
Examples of IoT Development Boards
ESP32 development boards can come in various sizes and levels of processing power. In general, they are low-cost, MCU-based, and low-power, which is ideal for energy-constrained applications. They support Wi-Fi and Bluetooth and have various I/Os to allow you to configure or customize the development boards as needed. Many (but not all) boards in the ESP32 family also have USB connectivity.
Renesas is another top provider of IoT development boards, especially of MCU boards. The RA MCU series are general-purpose, so they can be used for many different applications and configured as necessary. RA MCUs tend to be easy to use and debug and have quick start options to let developers get started immediately. Different options within the RA series will include different input and connectivity features, so you’ll have to look at each individually to determine the best board for your use case.
There’s also the STM32 family from STMicroelectronics. These are also MCU boards and come with a huge range of features and options, from high-performance and higher-energy versions to ultra-low power options and long-range wireless MCUs. They can come in both single and dual-core versions and are commonly used in consumer IoT devices. STM32 Nucleo boards are commonly used for prototyping and are very developer-friendly and compatible with a variety of development environments and platforms.
Arduino is also a popular option for boards with the lowest power consumption and simplest designs. For example, the Arduino Uno is ideal for less experienced developers, and the Arduino Cloud platform makes it easy to create a connected device in minutes. There’s also the Arduino Nano for the smallest IoT devices, which is a cheap, low-power option that offers Bluetooth connectivity. Additionally, Arduino offers its own development environment.
Lastly, there are the C2000 and MSP430 MCU boards from Texas Instruments. Texas Instruments provides cost-efficient options for development boards with a huge range of memory and peripheral choices. C2000 boards are specifically designed for real-time capabilities, so they are highly suitable for industrial IoT applications and are made for performance and speed. There are over 2000 different MSP430 devices, and these are designed for quick time-to-market, easy development, flexibility, and cost efficiency. Texas Instruments also offers starter kits, comprehensive documentation, and software resources.
A development board is normally the starting ground for any new IoT project. It allows you to make changes, adjust to feedback, and produce the best possible device for your particular use case. Now you can go in fully informed and ready to find and test out the ideal development board for your project.
Published at DZone with permission of Carsten Rhod Gregersen. See the original article here.
Opinions expressed by DZone contributors are their own.