How DevAlert Can Boost Your Embedded Software Development

Jan 22, 2024 |

Percepio DevAlert is a powerful observability solution for embedded software developers providing alerts on anomalies in your software, such as errors, crashes, and cybersecurity warnings. The alerts provide deep observability into the device software behavior for diagnosing the issues, such as core dumps, software traces, logs and any other device data you choose to include.

There are several use-cases for this kind of observability. The list below is based on feedback from early DevAlert users across various industries.

Faster time to market, avoid project delays

During integration testing and system testing, it is not uncommon to encounter errors that are difficult to repeat and where the debugging becomes very difficult and time consuming. Your team may need to spend months of frustrating trial-and-error efforts on various issues encountered during the testing, as you do not have enough information. DevAlert lets you avoid this “debugging hell” by providing critical information for effective debugging. This can reduce debugging time by 90% or more, and debugging is often around 50% of software development. This way, you can launch earlier, sell more units during the first year and thereby increase revenue.

With DevAlert, you can monitor all your devices under test and get deep observability on issues, remotely and with shared access for all stakeholders, and you don’t need bulky and expensive tracing hardware for each device. Developers can work remotely on debugging issues from system testing, e.g. when traveling or when issues occur in remote test labs or during field trials.

The dashboard also provides an overview for product managers and other stakeholders that want to monitor testing progress and the number of detected issues.

And you don’t need to expose a physical debug port on the device, as the monitoring can leverage any I/O or network interface like Ethernet, Wi-Fi or USB.

DevAlert is not only for detecting errors and crashes but can be used for any anomaly of interest. For example, if your system is tracking important performance metrics where you have an upper limit, you can use DevAlert to report violations and include a Tracealyzer event trace to understand the cause.

DevAlert is suitable for most embedded software testing. Data can be transmitted over a serial port or debugger to a host PC, so you don’t need any additional debugging hardware. And you won’t need cloud connectivity in the device since the host computer can upload any alerts.

De-risk software deployment

DevAlert provides a diagnostic feedback loop from deployed devices to developer and support teams, with full insight into device behavior at scale. On the very first occurrence of an issue, DevAlert provides a notification to the developer team and detailed diagnostic information such as core dumps and event traces for effective debugging and rapid solutions. It is also possible to monitor critical system health metrics like stack usage and send a warning if a value exceeds the expected limit. This way, developers can make proactive improvements to avoid future problems.

The DevAlert Dashboard summarizes all alerts and provides a compact to-do list of the underlying code issues and highlights new ones to ensure nothing is missed. You’re also able to see how many times each anomaly has occurred, so you can prioritize multiple issues at the same time.

Optimize technical support

DevAlert can help you improve your technical support service by enabling you to implement self-test functions and reports in your software, such as “pump motor running heavy, replacement needed”. This could be something that you provide as a value-added service to your customers. DevAlert can also help you inspect devices remotely on customer support requests by allowing you to access any alerts and diagnostics from the device. DevAlert can also help you recognize issues from previous cases by matching the symptoms to previously submitted alerts and re-using the solutions. Finally, proactive software updates based on alerts from DevAlert can help you reduce technical problems, support load and the amount of returned equipment.

Analyze physical malfunctions in the field

Anomalies in the physical world are often observable from software, for example a dislodged connector resulting in a software error code, or a sensor reporting an abnormal value. In the automotive world these are provided as DTCs, Diagnostic Trouble Codes. DevAlert can provide a custom “DTC” solution for your product, with remote cloud-based access and deep observability when needed.

Sometimes an error code is all you need to know what’s wrong, at least if you are a domain expert and have seen the same issue in the past. But not all team members have that kind of experience. DevAlert can simplify troubleshooting for less experienced team members by including references to documentation on known issues and recommended solutions.

More powerful diagnostics can be enabled by using the efficient Tracealyzer recorder to log sensor readings, user interface events and other physical events that are observable from software. The most recent data points can be included in your alerts and viewed in Tracealyzer to better understand what happened and why.

Traditional logging tends to produce vast amounts of mostly irrelevant data and is a trade-off between the amount of details provided and the amount of data produced. DevAlert avoids this trade-off by only uploading the most recent data when anomalies are detected. This allows for very detailed logging, while also reducing the total amount of uploaded data by several orders of magnitude.