Skip to content

Overview

Vaishnav Sabari Girish edited this page Jun 13, 2026 · 1 revision

Feature 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.


Core Connectivity & Architecture

Bi-Directional Serial Monitoring

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.

Auto-Detect Serial Ports

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.

Auto-Recovery & Graceful Exit

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.


Advanced Debugging (RTT & Defmt)

Zero-Latency RTT Logging

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.

defmt Target-Side Decoding

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.


Real-Time Visual Analytics

Terminal-Based 2D Plotter

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.

Instant Mode Hot-Swapping

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.

3D Spatial Telemetry Dashboard

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.

Hybrid 3D Graphics Pipeline

comchan adapts dynamically to your terminal workspace using a graceful degradation model:

  • GPU-Accelerated 3D: When compiled with --features ratty and run inside the Ratty terminal emulator, it injects true, shaded 3D .obj models 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 .wrfm objects.

Runtime Terminal Detection

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.


Data Management & Utilities

Continuous CSV Streaming

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.

High-Fidelity Session Replay

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.

Dual-Mode Hex Dump Engine

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.

SVG Plot Exporting

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.


Customization & Ergonomics

Local Timestamps & Basic Logging

Keep a historical record of your terminal sessions. Basic logging stamps incoming text fields with localized, accurate computer clock timings for pinpoint error tracing.

Zephyr RTOS Shell Support

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.

Native Shell Completions

Maintained shell generation capabilities ensure that you can build native tab-completion layouts for standard shells like Bash, Zsh, Fish, Elvish, PowerShell, and Nushell.

Hardware Simulation Mode

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.