Peter Wasilewski's STMViewer Offers Overhead-Free STM32 Data Visualization on Linux and Windows
Designed as an alternative to STMicro's own STM-STUDIO and CubeMonitor, STMViewer makes it easy to track changes in real-time.
Self-described embedded systems enthusiast Peter Wasilewski has put together a tool designed to make it easier to see what's going on inside an STMicroelectronics STM32 — offering a live and historical visual overview of variable values.
"STMViewer is a software tool that can be used to visualize variables values in real-time using only [an] ST-LINK programmer and a STM32 target," Wasilewski explains of his software. "You might be familiar with STMStudio or CubeMonitor, tools from ST that serve a similar purpose. If there are at least two similar tools, why bother to create my own? Simply because STMStudio is deprecated and works only on Windows, and Cube monitor takes forever to setup with even the simplest graphs."
Wasilewski's replacement for these tools is designed with ease of use in mind, its creator claims, and has no overhead on the STM32 device itself by reading the data directly from RAM rather than having to squirt it across a UART bus or similar. The addresses for each variable are read from the ELF binary, simplifying setup — though with the confessed drawback that it can't track objects if their address isn't static throughout the entire program run.
"I'm working in the motor control industry where it is crucial to visualize some of the process data in real-time," Wasilewski says of the project's origins. "Since the beginning, I was working with STMStudio, which is, or rather was, a great tool. Unfortunately, ST stopped supporting it which means there are some annoying bugs, and it doesn't work well with mangled C++ object names. Also, it works only on Windows which is a big downside. If you've ever used it you probably see how big of an inspiration it was for creating STMViewer."
More information on the project is available on the STMViewer GitHub repository, along with the source code under the reciprocal GNU General Public License 3 and binary builds for Linux and Microsoft Windows. In a post on Hackaday.io, Wasilewski says a "large update" is on the way "making use of the SWO [Single Wire Output] output that enables new ways of debugging live embedded applications," though no release date has been announced.