-
Notifications
You must be signed in to change notification settings - Fork 13
Overview
comchan is engineered to be a modern, production-grade tool for embedded developers. It expands far beyond a simple text terminal by packing built-in data visualization, hardware abstraction interfaces, and robust session recording engines directly into your terminal environment.
Read incoming serial data seamlessly and send commands back to your device. It provides a lightweight, blazingly fast interface that doesn't drag down system performance, ensuring you never drop frames even at high baud rates.
Stop hunting through /dev/ or Device Manager. With the auto-detection engine, comchan dynamically scans your system bus to identify and instantly attach to connected USB serial bridges.
Hardware development is messy—boards reset, cables get yanked, and connections drop. comchan features an auto-recovery state machine that automatically catches broken pipes. It safely cleans up terminal states and will gracefully attempt to reconnect when the hardware is hot-plugged back in.
Bypass physical UART hardware entirely. By utilizing probe-rs over an SWD/JTAG debug probe (such as a J-Link or DAPLink), comchan reads logs directly out of your microcontroller's internal RAM buffers. This completely eliminates the timing overhead of traditional serial printing.
When paired with an ELF binary, comchan parses and decompresses defmt messages on-the-fly. It seamlessly inherits target board resets and fully recreates standard, highly readable colored log outputs directly in your terminal pane.
Visualize multi-channel numeric sensor data on the fly. Simply pass the plotting flag, and comchan automatically identifies distinct data channels, sets up runtime legends, and renders rolling line graphs straight inside your terminal grid.
You do not need to tear down your connection to change perspective. Pressing Ctrl+P at any moment instantly toggles the UI back and forth between the text-based Serial Monitor and the visual Plotter/3D dashboard without losing a single incoming data frame.
If your firmware streams spatial coordinates like Pitch, Yaw, and Roll from an IMU, hitting Tab or 2 while in plotting mode brings up a live 3D telemetry dashboard. It features an integrated, stationary global reference frame (X/Y/Z axes) to visually ground object rotations.
comchan adapts dynamically to your terminal workspace using a graceful degradation model:
-
GPU-Accelerated 3D: When compiled with
--features rattyand run inside the Ratty terminal emulator, it injects true, shaded 3D.objmodels directly via the Ratty Graphics Protocol (RGP). -
CPU Braille Wireframe: If run in standard modern terminals (like WezTerm, Alacritty, Kitty, or Foot), it falls back to a math-driven, zero-dependency wireframe engine using Braille patterns to draw custom
.wrfmobjects.
The system automatically sniffs out your terminal emulator capabilities and active compile features at launch. It displays your current graphics driver status (e.g., Ratty (GPU 3D) or Ratty (Braille)) right inside the UI status bar.
Extract data patterns effortlessly. The internal parser separates raw textual logs from numeric streams, writing incoming coordinates and variables into a clean, multi-column .csv file in real-time while you monitor execution.
Record now, analyze later. By loading a past .log or .csv capture into the replay engine, comchan reads the original file timestamps to perfectly recreate the historical timing, print intervals, and plotting trends of that specific hardware run.
Inspect raw binary payloads for industrial applications, custom SPI/I2C bridge packets, or framing errors:
- Raw Hex Mode: Prints unbuffered bytes precisely when they land on the UART ring buffer.
- Pretty Hex Mode: Batches incoming bytes into structured, clean, 16-byte aligned frames.
Need to document your findings or attach a timeline to a GitHub issue? Hitting Ctrl+S inside the plotter exports your session into a fully vector-scalable SVG file, offering full support for customizable memory caps, plot titles, and a dedicated Dark Mode layout.
Keep a historical record of your terminal sessions. Basic logging stamps incoming text fields with localized, accurate computer clock timings for pinpoint error tracing.
Interacting with a complex RTOS terminal shell can result in weird line wraps and prompt formatting. Activating the Zephyr shell mode adjusts line disciplines and carriage returns specifically to handle interactive Zephyr workflows natively.
Maintained shell generation capabilities ensure that you can build native tab-completion layouts for standard shells like Bash, Zsh, Fish, Elvish, PowerShell, and Nushell.
Test out plotting layouts, verify .obj alignments, or preview CSV outputs without touching physical electronics. Simulation mode spins up mock numeric sine waves to keep development moving even when your test hardware isn't on your desk.