(We received the article below from Roberto Rodriguez-Zurrunero, PhD student at the Technical University of Madrid. Roberto is using Tracealyzer in his research and development, and we asked him to share his experience.)
Tiny sensor devices are key elements in IoT systems. These devices must meet some important constraints in energy consumption, security and reliability to fit the heterogenous IoT applications. Therefore, it is critical that software developed for these devices be as efficient as possible, so we can reduce energy consumption and improve wireless communications reliability. In addition, the scenarios in which these devices are deployed are heterogeneous and variable over time, so the software should also include adaptive capabilities to improve the dynamic performance.
In the B105 Electronic Systems Lab of the Technical University of Madrid, our research is focused on developing and testing techniques to improve the efficiency of wireless sensor devices in dynamic environments. In this work, it is extremely important for us to be able to obtain performance data of the running software. Tracealyzer allows us to obtain this information at runtime so we can evaluate our development. For this purpose, we have also developed the YetiMote sensor nodes which include a STM32L4 low-power microcontroller, several sensors (temperature, accelerometer), radio transceivers for wireless communication and various I/O options.
YetiOS extends FreeRTOS
With these tools, we have developed YetiOS which is built on top of FreeRTOS. It extends FreeRTOS kernel features and provides new functionality to fit wireless devices constraints. It provides adaptive capabilities which allows dynamic optimization of sensor node performance. By using Tracealyzer we have been able to test and validate these adaptive capabilities, as we can see how the amount of resources used by the operating system varies over time.
In addition, it is very important for us to keep CPU load as low as possible since it has a direct impact on energy consumption of the devices. Therefore, we have used Tracealyzer to detect CPU load peaks due to incorrect software implementation, enabling us to solve these issues and keep the CPU load of YetiOS as low as possible. We were also able to detect software bugs so our system is much more reliable now.
Finally, we have also used Tracealyzer software to test wireless communication protocols, since timing constraints are very important when developing them. For example, TDMA-based MAC protocols distribute the communication channel over different time slots, so it is critical that these time slots are properly scheduled by the operating system. Otherwise, both latency and reliability may be seriously degraded. Therefore, we have used Tracealyzer time diagrams when we develop such protocols, to make sure that timing constraints are met.
We have had promising results in our research and we expect to be able to provide full adaptive capabilities for future tiny IoT end devices.
YetiMote sensor node hardware
- STM32L4 microcontroller.
- Radio transceivers for 433 MHz, 868 MHz and 2.45 GHz bands.
- Power management module for battery-powered operation and current measurement.
- Temperature and accelerometer sensors.
- Micro USB communications interface.
- Micro SD card slot.
- Expansion pins, LEDs and user buttons.
- Analog acquisition module.
NOTE: Like many other in academia, Roberto Rodriguez-Zurrunero has taken advantage of Percepio’s offer of free academic licenses for Tracealyzer. If you are a student or teacher engaged in embedded development, you too may qualify for a free license; check our Licensing page for information about how to apply.