Summary

CommBox Classic interactive flat-panel displays expose a plaintext TCP control protocol on port 4660. The protocol uses ASCII frames of the form !000<CMD> <VALUE>\r, with a 4-character command code and a setpoint or query marker. This spec documents the eight command codes the source describes.

Transport

# Protocol inference: source describes TCP frames on port 4660. No RS-232 framing
# or wiring details are documented in this source.
protocols:
  - tcp
addressing:
  port: 4660
  base_url: ""  # UNRESOLVED: source uses raw TCP sockets, not HTTP
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable   # inferred from POWR command
- levelable   # inferred from VOLM 0-100 setpoint
- routable    # inferred from INPT source-select command
- queryable   # inferred from `?` query syntax

Actions

- id: power_set
  label: Set Power
  kind: action
  command: "!000POWR {value}\r"
  params:
    - name: value
      type: enum
      description: Setpoint value (source lists examples like `1`; on/off mapping not stated)

- id: power_query
  label: Query Power
  kind: query
  command: "!000POWR ?\r"
  params: []

- id: volume_set
  label: Set Volume
  kind: action
  command: "!000VOLM {level}\r"
  params:
    - name: level
      type: integer
      description: Volume level 0-100 (per source)

- id: volume_query
  label: Query Volume
  kind: query
  command: "!000VOLM ?\r"
  params: []

- id: mute_set
  label: Set Mute
  kind: action
  command: "!000MUTE {value}\r"
  params:
    - name: value
      type: string
      description: Mute value (specific encoding UNRESOLVED: not stated in source)

- id: mute_query
  label: Query Mute
  kind: query
  command: "!000MUTE ?\r"
  params: []

- id: input_set
  label: Set Input
  kind: action
  command: "!000INPT {source}\r"
  params:
    - name: source
      type: enum
      description: Input source (source lists HDMI 1-4, DisplayPort, USB-C, OPC, Android, VGA, AV)

- id: input_query
  label: Query Input
  kind: query
  command: "!000INPT ?\r"
  params: []

- id: freeze_set
  label: Set Freeze
  kind: action
  command: "!000FREZ {value}\r"
  params:
    - name: value
      type: string
      description: Freeze state (specific encoding UNRESOLVED: not stated in source)

- id: freeze_query
  label: Query Freeze
  kind: query
  command: "!000FREZ ?\r"
  params: []

- id: model_query
  label: Query Model
  kind: query
  command: "!000MDLN ?\r"
  params: []

- id: serial_query
  label: Query Serial Number
  kind: query
  command: "!000SERN ?\r"
  params: []

- id: firmware_query
  label: Query Firmware Version
  kind: query
  command: "!000FWVR ?\r"
  params: []

Feedbacks

- id: power_state
  type: enum
  values: [on, off]
  # UNRESOLVED: source describes POWR setpoint values as numeric (e.g. `1`) but
  # does not state the on/off encoding explicitly.

- id: volume_level
  type: integer
  range: [0, 100]

- id: mute_state
  type: enum
  values: [on, off]
  # UNRESOLVED: mute state encoding not stated in source

- id: input_source
  type: enum
  values: [HDMI 1, HDMI 2, HDMI 3, HDMI 4, DisplayPort, USB-C, OPC, Android, VGA, AV]

- id: freeze_state
  type: enum
  values: [on, off]
  # UNRESOLVED: freeze state encoding not stated in source

- id: model_name
  type: string

- id: serial_number
  type: string

- id: firmware_version
  type: string

Variables

# UNRESOLVED: source documents only discrete commands and setpoints; no separate
# settable parameters beyond those encoded in the command values above.

Events

# UNRESOLVED: source does not describe unsolicited device-pushed notifications.

Macros

# UNRESOLVED: source does not describe multi-step sequences.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or
# power-on sequencing requirements.

Notes

Source is a README for a third-party CLI (commbox-cli) that reverse-engineers the panel protocol, not a vendor-issued protocol manual. Frame format !000<CMD> <VALUE>\r and the eight command codes (POWR, VOLM, MUTE, INPT, FREZ, MDLN, SERN, FWVR) are described as observed behavior. Query responses use the form !000<CMD>=<VALUE>\r. Error responses contain ERR4 (panel locked or wrong panel ID) or other ERR substrings. Each command opens a fresh TCP connection; no session persistence required. Connect timeout 2000ms, read timeout 800ms. Non-default ports supported inline as host:port. MUTE and FREZ are listed as "planned" in the implementation status but appear in the protocol command list — included here as documented, not as verified behavior. Operator-flagged "Known protocol: RS-232C" is not supported by this source (TCP only); treated as a discrepancy pending vendor confirmation.

Provenance

source_domains:
  - github.com
  - qsys.com
source_urls:
  - https://github.com/anhduyhn/commbox-cli
  - https://www.qsys.com/alliances-partnerships/commbox/
retrieved_at: 2026-07-01T14:16:53.992Z
last_checked_at: 2026-07-07T11:07:21.259Z

Verification Summary

verdict: verified
checked_at: 2026-07-07T11:07:21.259Z
matched_actions: 13
action_count: 13
confidence: medium
summary: "All 13 spec actions (8 command codes + query variants) match source; transport TCP/4660 verified; no extra commands. (11 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "firmware version compatibility, RS-232 availability (source describes TCP only — see Notes)"
- "source uses raw TCP sockets, not HTTP"
- "not stated in source)"
- "source describes POWR setpoint values as numeric (e.g. `1`) but"
- "mute state encoding not stated in source"
- "freeze state encoding not stated in source"
- "source documents only discrete commands and setpoints; no separate"
- "source does not describe unsolicited device-pushed notifications."
- "source does not describe multi-step sequences."
- "source contains no safety warnings, interlock procedures, or"
- "on/off encoding for POWR/MUTE/FREZ values; firmware version range; whether RS-232 framing exists on the device but is undocumented in this source."

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0