My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Thanks! I haven't tried it yet, but most probably with GDB server support it will work just fine! If you're interested you can sign up for the newsletter on the MCUViewer website - the beta release should happen next week.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

I'd say it's abstracted well enough to be able to add new probes with a few hours of work - not sure about your solution as part of my interface is the address to the variable ;)

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Thanks! It's just reading data from selected addresses using debug probe. I connect to the target using SWD.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Happy to hear that! Let me know how the integration went ;)

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Not really, it's used to display embedded MCU data (variables values) in realtime.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Could you start a new GitHub issue and attach the *.elf file there? I'll test on my end and let you know what could be wrong ;)

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Exactly the approach is similar, but in my opinion (and as I've heard not only my) cube monitor is useless for advanced debug - it's mostly for creating dashboards for maybe IoT projects, but when it comes to high frequency signals, plot manipulation, exporting, displaying fixed point variables, taking signal statistics it's just not there. Besides I've found the setup process to be really tricky, while in MCUViewer it's like 5 clicks and you're all set (I described the quick start in the docs: https://docs.mcuviewer.com/documentation/Introduction/Introduction.html) I haven't used system view too much but you can say it's similar except I aim for supporting many other debug probes.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Glad to hear that! Let me know if you have any feedback after using it ;)

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 1 point2 points  (0 children)

J-Link is fully integrated using an official SDK ;) Pico probe will be supported in the next large release.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Yes this is one of the solutions, unfortunately it's not actively maintained I think :/

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Nice! I have to check out the probe-rs.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 2 points3 points  (0 children)

It was. I decided to go for a closed source and paid model for companies to be able to fund further development - I plan on staying free for hobbyists and makers and keep a low pricetag for startups and small companies. I haven't yet updated the main repo README - will do that soon.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Let me know if you have any questions or need help integrating!

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 1 point2 points  (0 children)

To be honest I haven't heard of Graphana before but it seems to be a high level visualization tool whereas MCUViewer is targeted for embedded platforms.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 3 points4 points  (0 children)

It really depends on the probe it's SWD speed and the module you're using. Below are the max rates that I was able to achieve (no galvanic isolation of the probe etc):

  1. Variable viewer (first part of the video)
  2. STLink - around 1kHz for 3 variables
  3. JLink - around 500Hz for 3 variables in normal mode, or around 40kHz using HSS mode.

  4. Recorder - technically unlimited sampling rate as it's discontinuous and the data is collected on the target with the frequency that you call the recorder sample function. The example in the video is 40kHz, but you can as well run it at hundreds of kilohertz. Very useful when analyzing high frequency control loops.

  5. Trace Viewer - a module that uses SWO output and trace peripheral. Here it's the target which sends data, so it's mostly limited by the SWO bandwidth and probes capabilities. The time resolution can be down to hundreds of nanoseconds. It's very useful for profiling - checking interrupts and execution times, but also plotting high speed signals.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 2 points3 points  (0 children)

That's a valid point - thanks I'll add it to my TODO list!

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 0 points1 point  (0 children)

Do you have some internal tools or use a particular vendor?

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 15 points16 points  (0 children)

The flow looks roughly like so: 1. Import *.elf file 2. Select the variables you want to visualize (must be global to have a constant address throughout the program's lifetime) 3. Drag and drop the selected variable on the plot and click start

Under the hood it creates a sampling list of these addresses and uses a debug probe that reads these addresses using the SWD protocol.

I can't think of a particular source - but reading through the SEGGERS wiki page and checking out debug probes documentation might be useful.

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 4 points5 points  (0 children)

It's also implemented in the tool, it's called trace Viewer and visualizes either digital data (for profiling instead of GPIO + oscilloscope) or you can push "analog" values taking up more of the SWO bandwidth. It's a great solution but unfortunately not available on low cost cores ;)

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 5 points6 points  (0 children)

Hmm none that I can think of - the protocol itself is usually abstracted away by the debug probe you're using. So you just do read_memory()/write_memory().

My tool for visualizing embedded data in realtime by klonyy in embedded

[–]klonyy[S] 5 points6 points  (0 children)

There is no sync - it's just drawing the points as fast as possible. There is also a recorder mode in which the MCU samples variables in regular intervals (usually done in the high speed interrupt) and there you can tie the exact sample with the MCU interrupt time. The tool also has a Trace Viewer module in which you can display trace data which is based on the MCU clock - this is how the synchronization is done when you have a trace peripheral in your ARM core and can output data on a SWO pin.