Skip to content

A cross-platform serial monitor/plotter written entirely in rust.

License

hacknus/serial-monitor-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

serial-monitor-rust

A cross-platform serial monitor/plotter written entirely in rust, the GUI is written using egui.
Inspired by the serial monitor/plotter from the Arduino IDE, but both plotting and reading the traffic can be done simultaneously.
Additionally, the output of the plot and the traffic can be saved to a file (TBD). The window of the plot can also be adjusted.
Data points in the received string between ", " or "," or ":" or ": " that can be parsed into floats will be plotted as lines, everything else will be discarded without raising an error.

Features:

  • Plotting and printing of data simultaneously
  • Smart data parser, works with ", " or "," or ":" or ": "
  • History of the past sent commands
  • Low CPU Usage, lightweight
  • Clear history options
  • Data Window width is adjustable
  • Cross-platform, fully written in Rust
  • Ability to save text to file

TODOs:

  • Save raw data to file (at least as an option)
  • Save Plot to file (needs egui plot feature?)
  • Smarter data parser
  • allow to put in labels for the different data columns (instead of column 1, 2, ...)
  • make serial print selectable and show corresponding datapoint in plot
  • COM-Port names on Windows (display manufacturer, name, pid or vid of device?)
  • make side panel and plot/serial prompt be resizeable (snappy?)
  • current command entered is lost when navigating through the history
  • command history is currently unlimited (needs an upper limit to prevent huge memory usage)
  • ...

Screenshot of the application on macOS

The source code can be run using cargo run or bundled to a platform-executable using cargo bundle.
Currently cargo bundle only supports linux and macOS bundles see github issue. As a work-around we can use cargo wix to create a windows installer.
It can be compiled and run on all platforms. Tested on:

  • macOS 12.4 Monterey x86
  • macOS 13.2.1 Ventura ARM
  • Windows 10 x86
  • ...

On Debian 12 (Testing) the following error occurred:

Error: glib-2.0 was not found in the pkg-config search path. 

solved through

sudo apt-get install libgtk-3-dev 

One might have to delete the Cargo.lock file before compiling.

About

A cross-platform serial monitor/plotter written entirely in rust.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 8