In the rapidly developing world of Internet of Things (IoT), power supply is often a barrier to the implementation of solutions. When the device is outdoors, it most commonly uses batteries – for example, with charging systems supported by PV panels. This generates additional costs and something that we often overlook in our considerations – an increased carbon footprint. There is a solution that has been created precisely to overcome these problems/obstacles, and that is energy harvesting. Why rely on battery capacity and creating additional infrastructure when you can draw energy from the environment?
The industry has recognized energy harvesting for a long time, yet it often underestimates it due to the low power devices can draw and their limited communication with the outside world. Just as the broadly understood IoT is developing at a rapid pace, so is the technology behind energy harvesting – new, more economical integrated circuits consume minimal power, and new communication standards even allow for EnOcean OTA updates. The EnOcean Alliance is introducing a new wireless file exchange standard designed for energy-harvesting devices. As a member of the alliance, we created the first official implementation of the OTA updates standard.
What is the EnOcean protocol?
EnOcean is a wireless communication protocol specifically designed for IoT devices that can operate without batteries or a constant power supply. Its unique strength lies in its ability to harvest energy from its surroundings, which eliminates the need for periodic battery replacement. A process that is both costly and time-consuming, while also being environmentally unfriendly.
Devices built on this standard can function for years without maintenance by drawing power from sources like light, heat, movement, or vibrations. This is a fundamental difference, especially in the context of smart buildings and smart cities, where managing thousands of batteries would present a massive logistical and environmental challenge. The technology follows the international ISO/IEC 14543-3-1x standard and optimizes energy use to ensure reliable data transmission with an indoor range of up to 30 meters.
Implementing EnOcean OTA updates as a standard
We chose C as the language for implementing the example because it is most commonly used in the field of microcontrollers. And also to minimise our dependence on external libraries, which may not be available on different architectures. We created the first implementation for the X86 platform, i.e. PC, but a project written in pure C should be easily transferable to other architectures. Two executable programmes were created, one for the source side and one for the destination side. The standard distinguishes between two sides: source – a device with a constant power supply, hosting files and telegrams, listening for incoming communication, and destination – an energy-constrained device, which decides when and for what purpose to start communication, observing its limitations on the frequency of executed processes.
The EnOcean Secure Data Transport Protocol standard consists of a set of communication frames ranging from 7 to 14 bytes in length. They are quite short, which means that processing them on the receiving device will not consume too much energy. We divide the functions of the frames into several categories: establishing a connection, exchanging telegrams, exchanging files, and reporting statuses.
Algoritms behind OTA updates for EnOcean
The receiving device initiates the algorithms for exchanging information between devices. The device can decide whether to establish a connection, download available telegrams, or download a file, e.g. with a firmware update. When the destination sends a frame, we call it a request; when it responds to the source, we call it a response.
While the standard can store two short telegrams (up to 15B each), it also allows for sharing much larger files, up to 16MB of data. It is quite a challenge to deliver such an amount of data to a device that may wake up at low frequency depending on the conditions from which it draws its energy. Short data frames make data transmission energy-efficient: the system divides the sent file into 8B messages (data messages) and then combines them into 256B blocks.
Radio transmission can be unreliable, leading to payload distortion or complete packet loss, which is especially critical when transmitting important data like firmware updates. The protocol includes robust error handling to address these issues.
If a frame doesn’t arrive, the destination device simply repeats the request until it gets a proper response. For distorted data, the Cipher-based Message Authentication Code (CMAC) algorithm protects communication. It calculates a signature for each data block and compares it with the source’s signature. A mismatch means the data is corrupted, so the system rejects the block and re-requests it. Our testing confirmed that CMAC effectively detects these issues.
How did we test EnOcean OTA updates?
It is worth returning to the implementation itself, i.e. two executable programmes. Each of them bases its operation on a state machine. The use of a state machine simplifies the implementation of the selection of the response that the source will send to the destination – when a request arrives, the following occurs: transition from the listening state, recognition of the type of query, and then, with the support of decision logic, transition to the appropriate state, sending the requested information to the destination. Sometimes there are several possible responses, and we have the ability to respond not only to valid requests but also to invalid ones.
The destination machine, on the other hand, is constructed from a slightly different perspective. Specific states such as ‘ask for a telegram’ or ‘ask for a file’ are the beginning of the process, and the end is receiving a response from the source. Then we decide whether the response received is satisfactory or whether the query should be repeated.
The aforementioned programmes operate on system files (i.e. the file system). On the sending side, we will use an existing file and download successive 256B data blocks from it, and on the receiving side, we will combine the received blocks into a newly created file. The names of these files can be specified as a start argument. While on the subject of arguments, we can also specify the UDP port through which the programmes will communicate. We are currently testing the UDP transmission standard, but the next step will be radio.
Example of code
Below is the source code with the input argument specified as the plink.jpg file. You can see the progress bar and the number of bytes transferred for the selected file. Currently, the terminal prints only this; the upper half of the terminal displays the received requests.
Next, we launch the destination, and it prints the current statuses in the traditional manner, line by line.
Example output of programmes during transfer.
and the result.
Importance of OTA updates in EnOcean
The EnOcean protocol, specialising in energy harvesting technology, greatly facilitates the creation and launch of new IoT products. Thanks to ready-made modules, from energy generators to radio modules and even entire development kits, manufacturers can significantly reduce time-to-market and lower production costs. EnOcean’s standardised communication also ensures full compatibility with existing solutions, facilitating integration with other devices such as sensors, gateways and actuators. In such an environment, OTA (Over-The-Air) updates become crucial. They allow manufacturers to add new features and fix potential security vulnerabilities without having to physically replace equipment. Instead of buying new device models every year, users can simply obtain new features by updating the software. Remotely upgrading IoT devices with OTA updates, instead of replacing offline devices, gives a huge advantage.
Where are the EnOcean OTA updates are useful?
The EnOcean Secure Data Transport protocol is a secure tool for transferring data and files between devices. While system designers can use it in many ways, the most common and practical application is remote software updates. This is critical for devices using energy harvesting technology, which often operate in hard-to-reach locations. The solution enables updates without physical human intervention, so technicians no longer need to go to the site.
Another incredibly useful application of the protocol is transferring configuration files to devices. This allows for convenient and flexible over-the-air changes to a device’s operating mode, without the need for physical access. A perfect example is a maintenance-free light intensity sensor installed in a challenging location, like on a building’s roof or inside a sealed window. The administrator can remotely adjust the threshold at which the sensor sends information about excessive sunlight. Instead of sending an employee with a ladder to manually configure the device, we can now send the new threshold value remotely, drastically saving time and costs.
Challenges with EnOcean OTA updates?
We did not encounter any significant obstacles during implementation. One challenge came from implementing communication management logic in a way consistent with the standard. Many dependencies shape the further course of communication; they are not complicated, but each one influences every frame. Each communication frame required us to carefully manage its status. We created a system that monitored every interaction and ensured compliance with the standard.
To meet this challenge, we decided to implement state machines. This approach allowed us to organise the communication control logic, making the entire process not only easier to manage but also more transparent. State machines allowed us to precisely track the lifecycle of each data frame, which is critical for reliable OTA (Over-the-Air) updates. Many companies struggling with troubleshooting EnOcean updates often encounter similar difficulties. Our experience in dealing with these specific challenges, using the right tools, allows us to effectively support our customers in achieving full functionality and reliability of their solutions.
Conclusion
Over-the-Air (OTA) updates are crucial for the EnOcean standard. They enable crucial software changes for devices located in hard-to-reach places, all while maintaining minimal energy consumption through energy harvesting. This is incredibly important for minimizing the carbon footprint and promoting truly sustainable IoT. OTA updates enable software changes for devices located in hard-to-reach places, all while maintaining minimal energy consumption through energy harvesting. WizzDev implementation will simplify the process of updating device software, while also eliminating the need for developing individual OTA update standards for each device.
By providing a robust and ready-to-use solution, we empower companies to accelerate their time-to-market and focus on innovation rather than on reinventing core infrastructure. Are you ready to bring your EnOcean products to market with seamless OTA updates?










