{"id":13453836,"url":"https://github.com/hacknus/serial-monitor-rust","last_synced_at":"2025-03-24T01:32:02.586Z","repository":{"id":50659717,"uuid":"519759649","full_name":"hacknus/serial-monitor-rust","owner":"hacknus","description":"A cross-platform serial monitor/plotter written entirely in rust.","archived":false,"fork":false,"pushed_at":"2025-03-19T06:46:07.000Z","size":8369,"stargazers_count":161,"open_issues_count":10,"forks_count":17,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-19T07:35:43.658Z","etag":null,"topics":["egui","rust","serial","serial-communication","serial-monitor","serial-plotter"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hacknus.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-31T11:41:35.000Z","updated_at":"2025-03-19T06:46:11.000Z","dependencies_parsed_at":"2023-02-16T00:45:44.970Z","dependency_job_id":"1c00c1c1-dd37-467b-ad67-f630ff693c29","html_url":"https://github.com/hacknus/serial-monitor-rust","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacknus%2Fserial-monitor-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacknus%2Fserial-monitor-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacknus%2Fserial-monitor-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacknus%2Fserial-monitor-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hacknus","download_url":"https://codeload.github.com/hacknus/serial-monitor-rust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245194319,"owners_count":20575740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["egui","rust","serial","serial-communication","serial-monitor","serial-plotter"],"created_at":"2024-07-31T08:00:48.259Z","updated_at":"2025-03-24T01:32:02.580Z","avatar_url":"https://github.com/hacknus.png","language":"Rust","funding_links":[],"categories":["Unsorted","Sensor and Communication Protocol"],"sub_categories":[],"readme":"# Serial Monitor\n\n\u003ca href=\"https://github.com/hacknus/serial-monitor-rust/releases\"\u003e\u003cimg src=\"icons/icon.png\" alt=“” width=\"100\" height=\"100\"\u003e \u003c/img\u003e \u003c/a\u003e\n\nA cross-platform serial monitor and plotter written entirely in rust, the GUI is written\nusing [egui](https://github.com/emilk/egui).  \nInspired by the serial monitor/plotter from the Arduino IDE, but both plotting and reading the traffic can be done\nsimultaneously.\n\n## Installation:\n\n### Download pre-built executables\n\n[Binary bundles](https://github.com/hacknus/serial-monitor-rust/releases) are available for Linux, macOS and Windows.\n\nRunning the apple silicon binary (serial-monitor-aarch64-apple-darwin.app) may result to the message \"Serial Monitor is\ndamaged and cannot be opened.\", to get\naround this you first need to run:  \n`xattr -rd com.apple.quarantine Serial\\ Monitor.app`\n\nOn Linux first install the following:\n\n```sh\nsudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev\n```\n\n### Compile from source\n\nThe source code can be run using ```cargo run``` or bundled to a platform-executable using cargo bundle.  \nCurrently [cargo bundle](https://github.com/burtonageo/cargo-bundle) only supports linux and macOS\nbundles [see github issue](https://github.com/burtonageo/cargo-bundle/issues/77).\nAs a work-around we can use [cargo wix](https://github.com/volks73/cargo-wix) to create a windows installer.\n\n#### Ubuntu\n\n```sh\nsudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev\ncargo install cargo-bundle\ncargo bundle\n```\n#### Debian\n\n```sh\nsudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libudev-dev\ncargo install cargo-bundle\ncargo bundle\n```\n\n#### macOS\n\n```sh\ncargo install cargo-bundle\ncargo bundle\n```\n\n#### Windows\n\n```sh\ncargo install cargo-wix\ncargo wix\n```\n\n## Features:\n\n- [X] Plotting and printing of data simultaneously\n- [X] Smart data parser, works with \", \" or \",\" or \":\" or \": \"\n- [X] History of the past sent commands\n- [X] Low CPU Usage, lightweight\n- [X] Clear history options\n- [X] Data Window width (number of displayed datapoints in plot) is adjustable\n- [X] Cross-platform, fully written in Rust\n- [X] Ability to save text to file\n- [X] Ability to save the plot\n- [X] Allow to put in labels for the different data columns (instead of column 1, 2, ...)\n- [X] Allow to choose Data-bits, Flow-Control, Parity and Stop-Bits for Serial Connection\n- [X] Saves the configuration for the serial port after closing and reloads them automatically upon selection\n- [X] Option to save raw data to file\n- [X] Use keyboard shortcuts (ctrl-S to save data, ctrl-shift-S to save plot, ctrl-X to clear plot)\n- [X] Automatic reconnect after device has been unplugged\n- [X] Color-picker for curves\n- [X] Open a CSV file and display data in plot\n- [ ] Allow to select (and copy) more than just the displayed raw traffic (also implement ctrl + A)\n- [ ] Smarter data parser\n- [ ] make serial print selectable and show corresponding datapoint in plot\n- [ ] COM-Port names on Windows (display manufacturer, name, pid or vid of device?)\n- [ ] current command entered is lost when navigating through the history\n- [ ] command history is currently unlimited (needs an upper limit to prevent huge memory usage)\n- [ ] data history is currently unlimited (needs an upper limit to prevent huge memory usage)\n- [ ] ...\n\n![Screenshot of the application on macOS](screenshot.png)\n\nTested on:\n\n- macOS 12 Monterey x86\n- macOS 13 Ventura x86\n- macOS 13 Ventura ARM\n- macOS 14 Sonoma ARM\n- Debian 12 (Testing) x86\n- Windows 10 x86\n- ...\n\nOne might have to delete the ```Cargo.lock``` file before compiling.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacknus%2Fserial-monitor-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhacknus%2Fserial-monitor-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacknus%2Fserial-monitor-rust/lists"}