Skip to content

Hardware Protocol Specification: Single-wire half-duplex UART link (illustrative)

Version: illustrative
Physical Layer: 115200 bps, 8N1.0
Framing: binary
Integrity Algorithm: sum8

📄 AsyncAPI Artifacts: Download AsyncAPI 2.6.0 YAML | View Interactive AsyncAPI HTML Docs

Description

A genuine single shared data line, not just RTS/CTS omitted -- both sides' TX and RX are the same open-drain/tri-state pin, common on microcontroller debug or bootload pins wired for minimal pin count.

Command Catalog & Message Signatures

Category: GENERAL

Ping (Command ID: 0x01)

Parameter Type Unit Range / Constraints Options
opcode uint8 - - -
reserved bytes - - -

Device-Initiated Messages

Pong (Message ID: 0x81)

Field Name Type Unit
opcode uint8 -
reserved bytes -

Formal AsyncAPI 2.6.0 Specification

asyncapi: 2.6.0
info:
  title: Single-wire half-duplex UART link (illustrative)
  version: illustrative
  description: A genuine single shared data line, not just RTS/CTS omitted -- both
    sides' TX and RX are the same open-drain/tri-state pin, common on microcontroller
    debug or bootload pins wired for minimal pin count.
servers:
  serial_link:
    url: serial://tty/115200
    protocol: serial
    description: Physical UART Transport (115200 bps, 8N1.0)
    bindings:
      serial:
        baudRate: 115200
        dataBits: 8
        parity: none
        stopBits: 1.0
        framingType: binary
        integrity: sum8
channels:
  omniuart/cmd/Ping:
    publish:
      summary: 'Send command Ping (ID: 0x01)'
      description: Dispatch Ping frame to microcontroller over serial line
      message:
        name: Ping_Message
        title: Ping Command
        payload:
          $ref: '#/components/schemas/Ping_Request'
  omniuart/telemetry/Pong:
    subscribe:
      summary: 'Unsolicited telemetry message Pong (ID: 0x81)'
      description: 'Unsolicited telemetry message from device: Pong'
      message:
        name: Pong_Telemetry_Message
        title: Pong Telemetry
        payload:
          $ref: '#/components/schemas/Pong_Telemetry'
components:
  messages: {}
  schemas:
    Ping_Request:
      type: object
      properties:
        command_id:
          type: integer
          const: 1
          description: Opcode ID for Ping
        opcode:
          type: integer
          default: 1
        reserved:
          type: string
          contentEncoding: base64
      description: Command payload for Ping
    Pong_Telemetry:
      type: object
      properties:
        opcode:
          type: integer
          default: 129
        reserved:
          type: string
          contentEncoding: base64
      description: Device-initiated telemetry payload for Pong