How To Choose an IoT Development Board
It can be hard to choose among so many options.
The Internet of Things, or IoT, is already a reality. You are probably using one (or more) IoT device right now, or at least, have been benefited by one. And this market tends only to grow.
Generally speaking, the internet of things is a network of physical objects that enables these objects to create and exchange data.
According to some researches, there’s an estimation of 25 billions IoT devices around the world in 2021, with this number reaching about 64 billions by 2025 (and a market of 11 trillion dollars). From agriculture to home automation, every sector is using IoT to help their businesses.
Not so long ago, every data we had was produced manually by a human. If it was produced at all. But, as hard as we try, we as human have limitations on how much data we can produce. With the creation of the internet and the advancement of technology, a large amount of data can be collected to help any business to grow.
What is a Development Board?
A development board is a printed circuit that contains a microcontroller or a microprocessor with a hardware to assist your experimentation. It can contain a variety of peripherals, from sensors to a power source.
This board will abstract and implement some features that makes you only focus on the programming and application side, not on the hardware itself. It is a great help for the development phase of a product, specially if you want to discover the capabilities or want to learn about a technology.
There are hundreds (if not thousands) of different models that you can choose. If you want to create product or just automate your garage, all this information can be overwhelming. Specially if you are starting.
Let me share with you some attributes you need to look to decide which one to buy.
First of all, you need to decide for what exactly do you want your board. What problem are you trying to solve with it?
It doesn’t matter if it is for a school project or to make your next-billionaire-startup project.
Even if it is just for leaning purposes, it is important to make that clear for yourself.
Every choose you make has to be aligned with what you want to do with your board.
The heart of a development board is the microprocessor or microcontroller that its based on. It is where your program is going to run. So, it might be a good idea to have all the processing power you need to perform your task.
Features you might want to check:
- Processing word: what is the size of data, in bits, that your CPU can handle. It can be 8, 16, 32, or 64-bits, depending on what you need to do.
- Memory: how many bytes are available for your program to be stored (ROM/Flash) and run (RAM). It ranges from few MB up to GB.
- Clock speed: it determines how quickly the CPU can retrieve and interpret instructions. It varies from few MHz to GHz.
- End-of-Life: some controllers might be discontinued and no longer be sold. This can be no problem if your are learning, but might cause you some troubles if your are trying to create a product.
Energy is an important item when we are talking about IoT. Some cases, really rare. Knowing the power your board can consume can be really helpful to avoid some problems like your program stop running or not working the way you expect.
Features you might want to check:
- Power: the voltage / current your board needs to work properly. If your source does not provide enough power, some modules of your board might not work as well as they should.
- Connection: some boards come with a USB connector, others with P2 jack to an external (not included) source.
Some boards might need a specific power source to work, but others can be powered directly from your computer USB port.
Inputs and Outputs
This is your connection with the outer world. The number of I/O ports available for you to develop can be crucial to choose among all options.
These inputs and outputs can be used to talk to other devices, like sensors or other controllers.
- Number: how many ports it has available to use.
- Protocols: some ports can have specific communication protocols already implemented, like CAN, UART, SPI, I2C, etc. They are helpful if you need to expand your board, or use an external sensor.
- Power: if you have pins to power other devices without need another source.
- Types: how many analog or digital inputs and outputs you have. Some boards require an external device to have a analog input, for example.
- Connectivity: which protocols are available to connect with other devices and internet. You might have it integrated with your board (and all the code you need) or you may need to acquire an external modem to that.
- Peripherals: some boards come with embedded sensors, like Arduino Nano IoT. This can be useful to avoid that mess when your connecting your sensor through the breadboard.
This is more related to the controller unit you are using, since all the program will be run there.
But there is more than just the software your are going to program and run on your board. You might need something in the cloud to manage your data. Or even a mobile app to control your device.
- Programming Language: the most common languages are C and C++, so it’s a good idea to know about them (specially C). Most of the examples are in C, so it is easier to start with it. You have options to work with others, such as Go and Python, but the functionality might be restricted.
- IDE: this is easier nowadays, since you have many options to choose, like Arduino, VSCode, or PlatformIO.
- Community: getting help is important, specially when you starting something new. Tutorials, sample codes, troubleshooting, etc, can be very helpful when creating a new project.
- Documentation: how good is the documentation about the board, including samples, schematics, datasheets, etc.
There are hundreds of options when comes to IoT development board. It can be hard to choose among all, even for experienced engineers.
I have shared some tips with you of what to look (in terms of features) when you are choosing a development board.