Visualizing Real-time Data With STMViewer | Interrupt

If you’ve ever wanted to plot data acquired on your embedded target, this article is for you. It explores common use cases for real-time data visualization using STMViewer. Say goodbye to manual, time-consuming, and error-prone data collection and display methods to speed up your debugging process.


This is a companion discussion topic for the original entry at https://interrupt.memfault.com/blog/stm-viewer-debug

Interesting! Thanks for pointing this out, I’ve been using Ozone along with a J-Link from Segger to achieve similar results! I was developing a PID that controlled to steppers motor for positioning and having real time feedback and been able to export plotted data to a csv is great. I will definitely try STMViwer

Thank you for your work Piotr! I have created several years ago a PC based data logger on an embedded system. I used a MAX3421 usb IC, which was connected to MCU via SPI and on the PC side libusb was used to receive the data. I can achieved higher throughput than serial/usb converters. Unfortunately there was no graphical visualisation.

Do you think it is possible using your GUI (with the needed modifications) to work with this, or similar USB based data acquisition device?

@WinterMime I took a cursory look, and think this should be possible to implement, but isn’t available as of now.

I think it would be possible, but the question is whether you really need the SPI<>USB converter (which seems like some additional, bug-prone work on the target side). If the embedded controller you’re using is STM32 I think using the ST-Link is sufficient when it comes to acquisition speeds. Hopefully soon STMViewer will be supporting other programmers such as Jlink.

1 Like

@klonyyy, @deets Thank you for your responses, it is a non-STM32 architecture if I achieve any progress I will report it.

1 Like

Nice review! I have tried it for STM32G4 fam and even when it loads .elf file it does not recognize any variable name, thus no data is plotted. Will check it later but for now, I am debugging sending through SPI and plotting using Logic.

Is there any possibility to visualize global variables with pointer to structure etc.? like myvariable->struct.y