One of the main drawbacks in designing remote IoT projects is the ability to debug hardware and software issues without having to interface with them directly. Imagine having a LoRa-based sensor platform deployed miles away from your location, and having to make the trip to figure out if there is a coding error or network protocol issue that’s keeping the platform from running smoothly.
Researchers from UC Berkeley’s EECS Department and Stanford University’s Computer Science Department have designed WiFrost — an IDE for debugging networked embedded systems and grabs information from the IoT device, its communication API, wireless router, and even its backend server if it has one. It then displays the data in a web-based interface and highlights the likely issues the system encountered.
The researchers designed WiFrost using an embedded system outfitted with a Diligent Digital Discovery portable USB Logic analyzer, a custom software router (AKA- a Raspberry Pi), and an IoT device based on an Arduino Uno. The WiFrost IDE grabs the debugging data and uses a time-synchronized user interface to display the dynamic network behavior of an embedded system in real-time. The platform regularly checks for errors within the system, and upon finding one, it will highlight the code line and will provide a description of the error, and possible fixes to rectify the problem.
As for what’s in store for WiFrost in the near future, the researchers are looking at finding ways to incorporate physical measurements to perform root-cause analysis, such as a server database value entry, and measuring voltage noise on individual electrical pins.
“Such a tool would completely bridge the gap between physical electronics and web applications, dramatically changing the development and debugging workflow of makers, students, and professional developers for the better.”