Skip to content

Latest commit

 

History

139 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔌 bbcom

Cross-platform desktop serial-port debug assistant

License: MIT Tauri v2 Vue 3 Rust TypeScript

English · 中文

Download


Overview

bbcom is a Tauri desktop tool for embedded developers who need a fast, inspectable serial console. It combines multi-session serial TX/RX, protocol parsing, Modbus master tooling, waveform plotting, export, and an optional Z.ai-powered command/log assistant in one application.

For module ownership, data-flow invariants, and runtime topology, see ARCHITECTURE.md.

Highlights

  • Multi-session serial console with independent connection state, TX/RX counters, pause/resume, search, direction filters, and restored recent captures.
  • High-throughput rendering path using a bounded O(1) RX queue, threshold/ timer-based runtime drains, virtual scrolling, and per-session frame invalidation.
  • Modbus master for RTU and raw-PDU transports, FC01-FC06/FC10 operations, contiguous read/write batching, periodic read/write loops, replay sources, and register-to-waveform bindings.
  • Protocol tools for delimiter, fixed-length, and length-field frame parsing with bounded resynchronization and absolute stream offsets.
  • Waveform plotting for numeric RX streams or Modbus register samples, with channel visibility, statistics, autoscale, pause, clear, and CSV export.
  • Automation helpers including ordered send/delay macros, RX-triggered responses, quick commands, send history, highlights, connection presets, DTR/RTS control, and a 250 ms BREAK pulse.
  • Export and logging to TXT, CSV, JSONL, and BIN through bounded backend sessions, opaque save grants, incremental batches, and atomic replacement.
  • AI assistant for Linux/BusyBox command generation and serial-log analysis, with model validation, request limits/cancellation, role-separated prompts, and risk classification.
  • Desktop polish with dark/light themes, English/Chinese UI catalogs, persisted settings, keyboard shortcuts, and installer releases with explicit per-platform signing status.

Screenshots

Main Window AI Assistant
Main window AI assistant
Modbus Registers Waveform Plot
Modbus registers Waveform plot

Core Features

Serial Console

  • Display modes: HEX, ASCII, UTF-8, ANSI, and HEX+ASCII split view.
  • Port settings: baud rate, data bits, stop bits, parity, flow control, DTR, and RTS.
  • Hot-plug port refresh, reconnect attempts, millisecond timestamps, per-frame and merged views.
  • Cyclic sending, quick commands, send history, and serialized 4 KiB write chunks without unsafe automatic retransmission after partial failure.
  • Trigger rules that match text or HEX in RX and send a response with cooldown.
  • Keyword highlights scoped to All/TX/RX with text or HEX matching.

Protocol And Data Tools

  • Parser presets for CRLF, NMEA 0183, AT/modem, SCPI, NUL-delimited binary, and length-prefixed frames.
  • Modbus .bbreg import/export for register tables and replay data sources.
  • Export filters by time range and direction.
  • Checksum, CRC-8, CRC-16/X-25, CRC-16/Modbus, and CRC-32 calculations.

AI Workflows

  • Standalone always-on-top assistant window.
  • Natural-language prompt to terminal command, with safe/caution/dangerous risk classification.
  • Serial-log Q&A scoped to the current session context.
  • Z.ai model registry shared between frontend validation and Rust dispatch.
  • Explicit cancellation, 60-second timeout, bounded context, and at most two concurrent requests without a hidden queue.

Tech Stack

Layer Technology
Desktop Tauri v2
Backend Rust 2024, tokio, serde, thiserror, crc, zai-rs
Frontend Vue 3 Composition API + TypeScript
UI Naive UI, @lucide/vue
State Pinia
Build Vite 8, pnpm
Serial tauri-plugin-serialplugin
Persistence bounded localStorage snapshots + OS credential store for API keys
Test/Quality Vitest, V8 coverage, WebdriverIO/Jasmine, ESLint, Prettier, cargo test, clippy, llvm-cov, criterion

Getting Started

Prerequisites

  • Rust 1.97.0 (edition 2024)
  • Node.js 24.13.0
  • pnpm 11.11.0
  • cargo-llvm-cov 0.8.7 and cargo-audit 0.22.2
  • ShellCheck available on PATH
  • OS permission to access serial ports

pnpm install --frozen-lockfile provisions the exact Node.js runtime declared by the repository, and project scripts run with that managed runtime.

Install the local quality-gate tools before making a commit:

cargo install cargo-llvm-cov --version 0.8.7 --locked
cargo install cargo-audit --version 0.22.2 --locked
# ShellCheck: macOS `brew install shellcheck`; Ubuntu/Debian
# `sudo apt-get install shellcheck`; Windows `choco install shellcheck`.

On Linux you may need to add your user to the serial group, for example:

sudo usermod -aG dialout "$USER"

Install And Run

pnpm install
pnpm tauri:dev

Frontend-only development:

pnpm dev

Production builds:

pnpm build
pnpm tauri:build

The helper script wraps the same common flows:

chmod +x scripts/dev.sh
./scripts/dev.sh install
./scripts/dev.sh dev
./scripts/dev.sh build

Documentation

Document Description
ARCHITECTURE.md Topology, runtime ownership, data flow, and boundaries
CONTRIBUTING.md Quality gate, IPC contracts, release process, and PR rules
CHANGELOG.md Version history
SECURITY.md Vulnerability reporting

FAQ

Which platforms are supported?

bbcom targets Windows, macOS, and Linux through Tauri v2.

How do I get a Z.ai API key?

Create a key at open.bigmodel.cn and enter it in the AI assistant settings panel.

Why is my serial port missing?
  • Confirm the device is connected and the driver is installed.
  • On Linux, check group permissions such as dialout.
  • On macOS, check ls /dev/cu.*.
  • Reopen the port list after plugging in the device.

Contributing

See CONTRIBUTING.md for the local quality gate, IPC contract workflow, and release checklist.

License

This project is licensed under the MIT License.

About

Cross-platform serial port debug assistant for embedded developers: multi-session TX/RX, Modbus master, live waveform plotting, protocol parsing, macros/triggers, export, and AI terminal/log help.

Topics

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages