Five Reasons Why the IoT Industry Needs to Embrace the Device Feedback Loop
February 18, 2022
How often do you notice things like in this photo?
Recently, I was going to park my car in a garage but the new fancy payment terminal was out of service—most likely due to software issues. It was annoying for me but probably a larger concern for the parking company. The next time I parked in that area, I picked another garage, just to avoid running into the same problem.
On the same day, I visited a grocery store where they let you scan items yourself, but only a few scanners were available since several of them were displaying this error screen.
Digital annoyances such as these have become common; they are usually not a big problem for consumers but can certainly be so for the companies operating the faulty devices. Fundamentally, no software is completely bug-free, so most smart devices have issues. It’s only a matter of how often those issues appear and what the consequences are when they do.
In order to act on hardware or software issues, you have to know about them. This is the idea behind the device feedback loop, a concept borrowed from control systems and successfully applied to desktop and cloud software development: Continuous feedback about how your application or device behaves allows you to quickly fix problems and issue updates. This idea has not yet taken off among embedded and IoT developers, but I’m here to suggest that we should adopt it. The benefits are too many to ignore.
The first feedback loop feature that springs to mind is probably reporting errors. A device feedback loop can alert you the moment a software error occurs, and give product teams the information they need to pinpoint the problem—all without human intervention. Crashes reported by customers can be extremely difficult to analyze, as the submitted information often is not detailed enough to allow developers to reproduce the problem.
Detecting anomalies, such as malicious activity, is another very important feedback loop feature as it can increase the security of IoT devices. If you experience random crashes, for instance, it could very well indicate that someone is trying to exploit a vulnerability to inject malware in the device but not getting it quite right. If so, it is crucial to know about the attacks as quickly as possible.
You may want to monitor key metrics such as stack and heap usage, CPU load, and maybe remaining battery charge. Let’s say one of the design goals was to set stack sizes so that you have a 5% safety margin; then it is important to know as soon as possible when actual usage goes above that limit.
Automated testing of firmware under development benefits enormously from a feedback loop that automatically and systematically collects detailed test results and stores them centrally so that all developers have access to the information.
Or you may be concerned about physical wear and maintenance intervals for a control system. Hardware components usually have a rated lifetime, expressed as a number of operations, and your regular maintenance schedule takes that lifetime into account. But let’s say some component switches on and off much more frequently than expected. With a feedback loop, you can see this happening and decrease the service interval; without feedback the component will simply fail early and maybe bring your production line to a halt.
To summarize: A device feedback loop allows you to optimize IoT operations by safeguarding device operation, security, and reliability, reducing risk and improving time-to-fix for software issues detected in the field.
Bugs are difficult to avoid. What matters is how you prepare to deal with them.
Dr. Johan Kraft is CEO and founder of Percepio AB. Dr. Kraft is the original developer of Percepio Tracealyzer®, a tool for visual trace diagnostics, that combines with Percepio DevAlert®, a cloud service for monitoring deployed IoT devices, to create a DevOps-style feedback loop from deployed devices back to the software developers, allowing for rapid continuous product improvement.
Prior to founding Percepio in 2009, Dr. Kraft worked in embedded software development at ABB Robotics. He holds a PhD in computer science.