What about firmware? Few steps of building the perfect IoT sensor

We are often talking about our competencies. Software, framework, firmware - anything you like. But quite often something that seems to be obvious to us is not always clear for those who ask. But IoT solutions always seem to be a quite good topic for discussion.

What if a company does not make firmware, framework, but only software. There are specialists who only prepare the hardware. And together they can achieve success. But there is another question - isn't it easier just to buy a ready-made set? After all, such a device is already connected to the cloud, connects via API and you can put the system on it. It is easy to integrate smart home inventions, they already have a subscription, they are compatible. A good example of a company that provides such solutions is Asset Link Global. And that's enough, everything works. Asset Link makes probes, such a probe consists of a sensor, processing unit, and satellite (optional GSM network). Buying such a set we have immediate access to API and we can create our own system, the set is mounted in the place where the measurements will be made. Asset Link configures everything. 

How the IoT sensor is made?

There is a different situation when we want to do more advanced research. The way is a little more complicated when we do not have ready-made sets. But this is because there are often no such ready-made sets that are prepared to measure exactly the parameter you need. Often it is that you want to measure a parameter under certain conditions. There may also be a problem with access to power under these conditions. When it comes to commercial products - on the market there aren’t simply ready-made sensors that measure specific parameters, e.g. measurements made in water is a very narrow field so if you need this kind of device you need to prepare it individually. Even when we talk about the same probes it is not always that we take it out of the box, throw it into the water tank and have the measurements ready. First of all, you have to choose the parameters of the sensors. It happens that the battery works too short, it may turn out that the transmissions are the satellite, and there are no GSM connections, there is no range. Finally, all these requirements have to be collected - what are the operating conditions of such a device, how long, how often to sample in order for the measurement to make sense, what are the possibilities of power supply, etc. This is how such projects as Spark Control or Smart Factor are created.

To build a custom device we need to think about several important factors:

1. The heart of the whole system is the CPU.

2. We connect a set of sensors to the CPU using buses such as UART, RS232, GPIO, I²C, I²S. We take a processor and connect it with sensors as many as we need and make sense because each of these sensors needs to be tested for energy consumption, interfaces to which will be connected, or resistance to external conditions. All these elements must be selected, verified, and then integrated.

3. With the help of the same communication technologies, a connection terminal is connected to the interface. And this connector can be both: wired or wireless. If we are talking about wired connectors we can distinguish PoE, USB, ethernet, Modbus. Also, there is a whole range of wireless technologies such as LoRa, LTE, GHz radio, BLE, WiFi, Bluetooth, Zigbee, narrow band etc. 

4. Power supply. The device needs the power to work properly. The battery can be powered by solar, wind, inductive, water, etc. With solar power, there is a great technique, that during the day it is charging, by the night using collected energy. If we are talking about inductive power it looks like someone may come up, shoot a pulse, the whole set starts and we have a measurement. Water Turbine generator needs to be in the water tank, a special turbine can at the same time generate the power and take a measurement. A very good solution is also PoE (power and communication) + ethernet - power and communication in one line.

But once again, let’s focus on the CPU. It can be very different depending on the type of project. 

The scale of production:


Raspberry 10+

Industrino 100+

Arduino 1000+

TI/ARM/STM 1000+

Find your perfect IoT solution

Last but not less important - firmware. When we already have a device, in the end, we need to program such a device, i.e. when to send these measurements and what measurements. Maybe the device is measuring some values we do not want to send. Some of them we want to collect more often if they reach some limit, maybe we are going to control the frequency, we have to manage how often to ask about the sampling frequency. This whole logic is responsible for the program and in each application is different, this logic makes the device that is controlled from the outside. There is always something somewhere that needs to be adjusted, configured, parameters selected. It works on a lower level than the operating system. 

If you have any questions or just want to learn more, please contact us, we are here to help you. Every component can be replaced, we have the knowledge of how to do it properly.