Close
0%
0%

MCUViewer

Microcontroller non-intrusive realtime data visualizer

Similar projects worth following
MCUViewer is a software tool that can be used to visualize variables values in realtime using a debug probe. 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.

MCUViewer is oriented for ease of use and quick setup process. There are still some functionalities it lacks, compared to STMStudio, however I'm constantly working to improve it. Currently I'm working on a large update making use of the SWO output that enables new ways of debugging live embedded applications so stay tuned for more!

You can try it right away using the installers in Releases page: https://github.com/klonyyy/MCUViewer

Any feedback is welcome! 

  • MCUViewer 1.2.7 release

    Piotr Wasilewski06/03/2026 at 15:02 0 comments

    It's been some time since the last update on Hackaday so I though I'll update the project as it is still fully active.

    Since the last project log there were some major updates - MCUViewer now has it's own website and documentation page. Many new features were implemented allowing to support new MCUs - right now, apart from native support for STLink and JLink, MCUViewer supports GDB server-compliant debug probes and if you're working with more exotic MCUs such as C2000 a serial driver might be a great fit! 

    A recorder module was added which allows for high speed oscilloscope style data collection, even when the debug probe communication speed is slow. Great solution for isolated setups or sub-millisecond control algorithms! 

    New steps include AI agent integration through MCP, math operations, JLink RTT support and many more. You can sign up for the newsletter if you'd like to get notified on new releases: https://mcuviewer.com/#signup

  • v1.1.0 update

    Piotr Wasilewski12/10/2024 at 21:17 0 comments

    Recently a new MCUViewer version was released. The update introduced some long-anticipated features:

    - XY plots - for visualizing variables related to other variable, not only time

    - Plots grouping - allowing for quickly switching views 

    - Advanced variable config - post processing, fixed point support, ability to read any memory address

    Make sure to give it a try! Here's a little teaser GIF: 

  • Full JLink support - MCUViewer

    Piotr Wasilewski09/21/2024 at 10:32 0 comments

    Up until now, STMViewer was limited to supporting the STM32 microcontrollers. However, I wanted to make it more universal and extend its capabilities to other microcontroller families. In pursuit of this, I reached out to SEGGER company. After some discussions, I was fortunate to receive official support - they provided me with access to their SDK and two JLink probes to aid the development of MCUViewer.

    With their backing, I began integrating JLink support into the software. The latest update focuses on the TraceViewer module, which now supports JLink probes for real-time trace visualization and debugging across a wider variety of microcontroller architectures. 

    This is a significant improvement, allowing to easily switch between different probe types (STLink or JLink) and microcontroller families without compromising functionality.

    Since now we're not limited to STM32 family it was natural to rename the program to MCUViewer :)

    If you'd like to try it out here's the Github page: 

    https://github.com/klonyyy/MCUViewer

  • Trace Viewer Module

    Piotr Wasilewski09/18/2023 at 17:09 0 comments

    Trace Viewer is a new module that is implemented in the STMViewer software. It allows to visualize SWO pin trace data on digital or "analog" plots.

     If you ever used GPIO pins to confirm a timer interrupt frequency, check how long a function takes to execute, or diagnose preempting interrupts you know how it's like to pull out an oscilloscope or logic analyzer and solder some wires to the prototype. It's quite annoying to set up, takes a lot of time, and you cannot easily connect mulitple channels. The Trace Viewer uses only and ST-Link programmer and it'a ability to read SWO output. Thanks to a trace peripheral in Cortex M3/M4/M7/M33 cores it is possible to measure sub-microsecond time periods (depending on your System Core Clock). 

    To create a datapoint on a plot you simply write a registers of the ITM peripheral like so: 

    ITM->PORT[x].u8 = 0xaa;

    As you can see this method is almost non intrusive when we consider the time it takes for the micro controller to execute it. After that the trace peripheral takes all the work, creating relative timestamps and attaching them to bytes that are later sent through SWO pin. 

    If you're still interested check out the README.md for more info on how to get started!

View all 4 project logs

Enjoy this project?

Share

Discussions

Mike wrote 09/05/2023 at 16:48 point

I've avoided the STM32 platform. But I've been eyeing it for a while now and this project makes me think that diving in will be easier that it was before. 

  Are you sure? yes | no

Piotr Wasilewski wrote 09/05/2023 at 17:17 point

Glad to hear that! I think STM32 is the easiest to start with when we consider 32-bit families. Lots of support on the internet as well :) 

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates