Linkedin gif
Cookie icon

August 24, 2020

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

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). By 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 PoEUSBethernetModbus. Also, there is a whole range of wireless technologies such as LoRaLTEGHz radioBLE, WiFiBluetoothZigbeenarrow 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. 

one of the simplest solutions is the Raspberry Pi. It is simple to program, based on the Python programming language. All the scripts are written in Linux. We have access to all ports from the system level. If you are asking us how complicated it is to use it, we say "easy way ++."

the next solution is Industrino. It is designed for industrial activities, it is programmed in C/C++, there is no operating system. Well, there is a bit of an envelope, but there is no Linux. Although we have connections, all ports, it has a set of memory, display, buttons, diagnostic interfaces that can output some kind of extras like diagnostic interface. It is a ready-made device from which you can prepare such a diagnostic set or even for use in the production or industrial process. Industrino is in a housing, meets the conditions, from -40F to 176F degrees (-40C/+80C degrees), it is separated, which makes it secured if another element of the project is damaged. It is suitable for implementation, which will be counted in tens or even hundreds, but not more.

Arduino - there are two types of this component. One of them is like set  DIY, but we want to focus on Arduino that is made for devices as a component of the whole. There is also a miniArduino (in fact, it is canceled from production, but it's on open source and companies still use it) there are companies that still produce it in different hardware configurations. It is the size of a postage stamp. It has a lot of interfaces ready to use, these are different interfaces, it works like in Industrino C/C++, the development environment is the same, it is limited in terms of computing power. Arduino in the mini version is a system that doesn't have a casing, you don't mount it anywhere, there are no direct connections. You have to add something to it to run it at all. We need a PCB to open it. That's what you make the device from. Arduino as the control unit.
ESP32 is intended for more complicated applications, especially in R&D. ESP modules can act as small web servers or clients. In practice, this module is perfect for applications related to e.g. smart home. But ESP was also used in agriculture projects like Spark Control.


TI/STM32/ARM are more advanced, the components are also available in micro version, examples of use are Euroasfalt, Spark Control. The cost of R&D could be low only if we create above 100,000 devices, the more we produce, the more we try to get off the cost of parts and the cost of R&D compared to the scale of production costs of the equipment itself.

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. 

Quote a project! Get advice.








Let’s inve

Let’s investigate your project concept and its current status together.

Expect an

Expect an initial project scope proposal, time and cost estimation from us.

The consul

The consultancy will be protected by the NDA.