If you spend any significant amount of time doing embedded systems development, you know the drill. You write your firmware, flash the microcontroller, and then… you stare at a serial monitor.
For years, the options have been a bit of a mixed bag. You have the classic Arduino IDE Serial Monitor (which is functional but basic), bloated GUI protocol analyzers that eat up RAM, or simple CLI tools like minicom that get the job done but lack modern developer quality-of-life features.
As someone who lives in the terminal—relying on tools like Neovim and terminal multiplexers—I wanted a serial monitor that actually fit into a keyboard-driven, modern workflow. I wanted something lightweight, visually clean, and capable of handling complex data without breaking a sweat.
So, I built ComChan (Communication Channel).
What is ComChan?
ComChan is a minimal, blazingly fast serial monitor and plotter built entirely in Rust. It’s designed specifically for embedded systems engineers who want powerful data visualization and logging without leaving the command line.
Because it's written in Rust, it’s memory-safe, incredibly fast, and runs natively across Linux, Windows, and macOS.
Here is a look at the features that make ComChan stand out from the crowd.
1. The Terminal-Based Serial Plotter
Sometimes, raw text isn't enough. When you are debugging an IMU, reading ADC values, or tracking temperature sensors, you need to see the data visually.
Instead of exporting data to Excel or firing up a heavy GUI application, ComChan features a built-in TUI (Terminal User Interface) plotter. You simply pass the --plot flag, and ComChan will automatically parse your incoming numeric data, assign legends, and graph multiple sensor channels in real-time—right inside your terminal.

Found a spike you want to investigate? You can hit Ctrl+S to instantly export the current plot frame as a clean SVG file.
Here is how it'll look like

2. Time Travel with Session Replay
This is perhaps my favorite feature. Debugging intermittent hardware anomalies is a nightmare because you can't always recreate the exact physical conditions that caused the bug.
ComChan introduces Session Replay. You can log your raw serial output to a .log or .csv file during a test run. Later, you can run comchan --replay <file> and the tool will parse the timestamps and play the data back to you in real-time.
It perfectly recreates the exact timing of the original hardware run. You can even replay a log file directly into the visual Plotter to analyze the anomaly visually, without needing the physical microcontroller plugged in.
3. Continuous CSV Streaming
If you are doing data collection for research or analysis, ComChan can automatically parse your incoming numeric telemetry and stream it directly into a clean, multi-column .csv file on the fly.
The best part? This works concurrently. You can stream to a CSV in the background while actively watching the data on the TUI Plotter.
4. Built for the Modern Embedded Workflow
ComChan includes several smaller features designed specifically to remove friction from the embedded workflow:
- Auto-Detection: Tired of typing
/dev/ttyUSB0 or COM3? Just use comchan --auto and it will automatically find and connect to your active USB serial device.
- Zephyr RTOS Support: If you work with Zephyr, ComChan has a dedicated
--zephyr shell mode that handles its specific echo and prompt behaviors cleanly.
- Auto-Recovery: If you accidentally unplug your device or reset the power, ComChan won't crash. It detects the broken pipe and gracefully waits to reconnect when the hardware comes back online.
- Configuration Files: Save your favorite baud rates, data bits, and parity settings in a
.toml file so you don't have to pass a dozen flags every time you launch.
The "Brain Made" Philosophy
While AI tools are great for scaffolding tests or micro-optimizations, the core architecture, TUI design, and feature logic of ComChan are entirely human-crafted. It’s built to solve real pain points that I experience daily when working with memory-safe embedded development on ESP32s and RP2040s.
Try It Out
If you are ready to upgrade your embedded debugging workflow, ComChan is incredibly easy to install.
If you have Cargo installed:
cargo install comchan
For Arch Linux users, it's available on the AUR:
yay -S comchan
You can check out the full source code, read the documentation, and contribute on GitHub: Vaishnav-Sabari-Girish/ComChan
Drop a star if you find it useful, and let me know what features you’d like to see next (a Hex Dump mode is already on the roadmap!). Happy debugging!