A Rust 1.77.1 application for reading and displaying serial data from devices like Arduino. Configurations can be passed via the command line to quickly connect and prepare the application for a specific device.
The repo contains a cargo project to build the application. Run cargo build [--release]
in the root of the repository to compile an exe.
All dependencies are available on github and crates.io:
- egui/eframe for window creation and UI
- serialport-rs to connect to serial ports
- clap for command line parsing
- rfd to create native file dialogs
- image to load the icon
- serde to save/load configs as json
- windows for windows console ctrl
serial_monitor.exe --config "PATH_TO_CONFIG.JSON" [--connect] [--terminal] [--headless]
--config <CONFIG> # Path to a json file containing a saved configuration
--connect [-c] # Try to connect to the port from the configuration
--terminal [-t] # Enable output to the console/terminal
--headless # Prevent GUI creation. Requires --config and --connect
- Depending on the device, reading valid data will not be possible immediately after connecting! Change the start mode to wait for a short time or use a specific start message to notify the monitor that your device is ready.
- Data sent by the serial device has to be in ASCII character format. The monitor reads data line by line to separate entries.
- To send multiple values for each entry, values have to be separated by ','
- Variable value counts for entries are not supported!
- Lines that can not be parsed are still printed to the console/terminal
- Plots are read only while data is being read. When paused, the graphs can be dragged with
LMB
and zoomed withCtrl
+Mouse wheel
. - Pausing will not suspend data reading! Only displaying is paused and the read values are discarded. After continuing, there will be a gap in the displayed data.