Skip to content

About OmniUART: Universal Schema-Driven UART Protocol Workbench

Release Licence Platforms AsyncAPI 2.6.0

OmniUART is a universal, schema-driven hardware protocol workbench and telemetry visualization tool for embedded systems, IoT devices, and hardware test engineering.


πŸ’‘ About OmniUART

Embedded software developers, test engineers, and hardware integrators often write custom, ad-hoc Python or C scripts for every new microcontroller or IoT peripheral. Those scripts send commands, parse packet responses, verify CRCs, and log serial communications.

OmniUART solves this problem by completely decoupling hardware protocol logic from tooling. By capturing framing parameters, packet envelopes, byte-slicing rules, parametric CRCs, and command signatures in declarative JSON or YAML specifications, OmniUART automatically provides:

  • πŸ’» Interactive Web & Native Desktop UI: Multi-tab serial terminal, dynamic parameter forms, 60 FPS streaming spectrum telemetry plotter, and signal quality charts.
  • ⚑ Ad-hoc CLI Command Runner: Send commands, format parameters, and parse structured serial responses directly from your terminal.
  • πŸ“œ Automated Sequence Test Runner: Execute multi-step test scripts with expected field assertions, timeouts, repeat loops, and automated PASS/FAIL reporting.
  • πŸ§ͺ Boundary Mutation Fuzzer: Inject field boundary mutations, length mismatches, bitflips, and invalid CRCs to test device firmware resilience.
  • ⏺️ Wireshark PCAPNG Session Recording & Replay: Capture microsecond-timestamped transactions and export directly to .pcapng, .jsonl, or raw .bin, with real-time replay onto target hardware.
  • πŸ“‘ Telemetry Bridge: Stream parsed sensor data directly to MQTT brokers (omniuart/telemetry/<cmd>) and HTTP Webhooks.
  • πŸ“„ AsyncAPI 2.6.0 Documentation Generator: Auto-generate formal AsyncAPI specifications and interactive HTML documentation for any hardware protocol.

OmniUART is distributed as a zero-dependency standalone executable for Windows and Linuxβ€”no Python or Node environment required.


πŸ“š MkDocs System Documentation Hub

Explore the complete collection of user guides, architectural specifications, JSON schemas, and test strategies:

Documentation Hub Page Direct Link Purpose & Contents
πŸ“– User Manual & CLI Guide Read User Manual Installation, standalone executable usage, CLI subcommands (send, run, fuzz, replay), Desktop & Web UI, and logging.
πŸ›οΈ System Architecture Explore Architecture C4 architectural diagrams, framing pipeline, transport abstraction, virtual device simulation, and state machines.
βš™οΈ Protocol Specification View Protocol Spec Specification for YAML/JSON protocol envelopes, framing modes, parametric CRCs (Rocksoft model), and payload fields.
πŸ“œ Automation Script Spec View Script Spec Sequence runner step schemas, parameter injection, response assertions, delay timers, and loop execution.
βš™οΈ Declarative JSON Schemas Inspect JSON Schemas Official JSON Schema files for IDE auto-completion, linting, and automated protocol schema validation.
πŸ§ͺ Test Strategy & Quality View Test Strategy Automated unit testing, standalone binary smoke testing, loopback transport tests, and CI/CD verification pipelines.

πŸ”Œ Hardware Protocols & AsyncAPI Tooling Specifications

OmniUART features built-in integration with @asyncapi/cli and @asyncapi/html-template (via npx asyncapi) to convert declarative UART protocol definitions into standard AsyncAPI 2.6.0 hardware interface specifications.

  • πŸ“š Browse Full Hardware Protocol Catalogue: Explore 32+ pre-configured hardware protocols, including AT Commands, Modbus RTU/ASCII, COBS, SLIP, BACnet MS/TP, MAVLink, DMX512, UBX, XBee, and custom CRC node protocols.
  • πŸ“„ AsyncAPI Artifacts: Download standalone AsyncAPI 2.6.0 .yaml files or view interactive single-file AsyncAPI HTML specifications for any protocol.

πŸ’Ύ Download Executable Releases

Platform Download Link Quickstart Command
Windows (64-bit) πŸ“¦ Download omni-uart-windows-amd64.zip Double-click omni-uart-windows-amd64.exe to open Desktop App
Linux (64-bit) πŸ“¦ Download omni-uart-linux-amd64.tar.gz tar -xzf omni-uart-linux-amd64.tar.gz && ./omni-uart-linux-amd64

πŸ“– Protocol Definition Example

Declarative YAML protocol specification (BinarySensorNode.yaml):

schema_version: "1.0.0"
metadata:
  name: "BinarySensorNode"
  version: "1.1.0"
  description: "Binary UART protocol for multi-channel environmental sensor node with CRC16-Modbus"

serial_config:
  baudrate: 115200

framing:
  type: "binary"
  header: [0xAA, 0x55]
  length:
    type: "uint16"
    endian: "little"
    includes: "payload_only"
  command_id:
    type: "uint8"
  integrity:
    algorithm: "crc16_modbus"
  footer: [0x55, 0xAA]

commands:
  - name: "get_readings"
    id: 0x02
    description: "Query sensor channel temperature and humidity readings"
    parameters:
      - name: "channel"
        type: "uint8"
        min: 0
        max: 3
    response:
      id: 0x82
      fields:
        - name: "temperature"
          type: "float32"
          unit: "Β°C"
        - name: "humidity"
          type: "float32"
          unit: "%"