Updated: Apr 29
IoT firmware is the most critical component of any IoT device. Almost every device you can think of runs firmware.
Even someone who doesn't have a lot of experience in dealing with electronics or hasn't worked with firmware, surely remembers when they have been prompted by a firmware update on their smartphone or Smart Tv to download a new version.
What is IoT firmware?
Firmware is a piece of code that resides in the non-volatile part of the device that enables and allows the device to perform the functions for which it was created.
It consists of several components, such as the kernel, bootloader, file system and additional resources. In addition, the firmware makes various hardware components work properly.
Bootloader: is responsible for numerous tasks, such as initializing various critical hardware components and allocating the necessary resources.
Kernel: is one of the main components of the entire embedded device. Speaking at a very general level, a kernel is simply an intermediate layer between hardware and software.
File system: is where all the individual files necessary for the device to run are stored. This also includes components such as web servers and network services.
IoT firmware file types
The file system of an IoT device can be of different types, depending on the manufacturer's requirements and the intended function of the device.
Each file system type has its own unique signature header, which we will then use to identify the location of the beginning of the file system in the firmware binary.
The most common file systems we typically find on IoT devices would be the following:
In addition to the different file systems out there, there are also different types of compression that are used.
Thanks to the use of file system compression we manage to save storage space on the IoT device, which is very valuable when it comes to this kind of devices.
The most common compressions that we usually find in IoT devices are listed below:
IoT firmware network connectivity
Contrary to other electronic devices, IoT products require a firmware in charge of dealing with connectivity. It means this firmware has to implement different kinds of protocols, depending on the technology the devices use to connect to the network. Some examples are IP, Zigbee, Z-wave, LORA, Bluetooth, etc.