Summary

Aurora Dxco 1 Hdbt G4 is an HDBaseT matrix/control device controllable via TCP/IP socket (default port 1001), RS-232 (default 115200 8N1 None), and a web management interface. This spec covers the Telnet/RS-232 ASCII command set documented in Appendix 3 of the source, including video/audio routing, EDID management, scene save/recall, HDCP/HDMI mode control, serial/UART routing, network configuration, and JSON status queries. Commands use ASCII mnemonics prefixed with ! (command), ? (query), or ~ (response), terminated by <CR> (0x0D).

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 1001  # default socket server port, stated in source
serial:
  baud_rate: 115200  # default, stated in source (also configurable 38400/19200/9600)
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none  # stated as "None" in default config
auth:
  type: credentials  # web interface credentials documented: user 'user', password '123456'
  # NOTE: credentials apply to the WEB management interface per source.
  # Whether the TCP socket command server (port 1001) and RS-232 require auth is UNRESOLVED:
  # the command set documents no login sequence.

Traits

traits:
  - routable    # inferred: video (!C/!CR) and audio (!T/!TR) routing + UART routing present
  - queryable   # inferred: many query commands (PW?/CR?/TR?/UART?/NETWORK?/SVER? etc.)
  - powerable   # inferred: card power command !CPOWER present

Actions

actions:
  # --- Video routing ---
  - id: switch_video_single
    label: Switch Single-Channel Video Input to Output(s)
    kind: action
    command: "!Catob,c<CR>"
    params:
      - name: a
        type: integer
        description: Input channel (1 ~ matrix max)
      - name: b
        type: integer
        description: Output channel (1 ~ matrix max or ALL)
      - name: c
        type: integer
        description: Additional output channel (1 ~ matrix max or ALL)

  - id: switch_video_correspondence
    label: Switch Video Input to Output Correspondence
    kind: action
    command: "!CRa:b,c:d<CR>"
    params:
      - name: a
        type: integer
        description: Input channel (1 ~ matrix max)
      - name: b
        type: integer
        description: Output channel (1 ~ matrix max)
      - name: c
        type: integer
        description: Input channel (1 ~ matrix max)
      - name: d
        type: integer
        description: Output channel (1 ~ matrix max)

  - id: select_video_input
    label: Select Video Input (combine with switch_video_out)
    kind: action
    command: "!CSWI:a<CR>"
    params:
      - name: a
        type: integer
        description: Input channel (1 ~ matrix max)

  - id: switch_video_out
    label: Switch Selected Video Input to Output(s)
    kind: action
    command: "!CSWO:a<CR>"
    params:
      - name: a
        type: integer
        description: Output channel (1 ~ matrix max)

  - id: query_video_output
    label: Query Video Output Status
    kind: query
    command: "?CR<CR>"
    params: []

  # --- Audio routing (V=Internal audio, E=External audio) ---
  - id: switch_audio_single
    label: Switch Single-Channel Audio Input to Output(s)
    kind: action
    command: "!Tatob,c<CR>"
    params:
      - name: a
        type: string
        description: "Input channel + V/E (1 ~ matrix max) + V/E. V=Internal audio, E=External audio"
      - name: b
        type: string
        description: "Output channel + V/E (1 ~ matrix max or ALL) + V/E"
      - name: c
        type: string
        description: "Additional output channel + V/E (1 ~ matrix max or ALL) + V/E"

  - id: switch_audio_correspondence
    label: Switch Audio Input to Output Correspondence
    kind: action
    command: "!TRa:b,c:d<CR>"
    params:
      - name: a
        type: string
        description: "Input channel + V/E (1 ~ matrix max) + V/E"
      - name: b
        type: string
        description: "Output channel + V/E (1 ~ matrix max or ALL) + V/E"
      - name: c
        type: string
        description: "Input channel + V/E (1 ~ matrix max or ALL) + V/E"
      - name: d
        type: string
        description: "Output channel + V/E (1 ~ matrix max or ALL) + V/E"

  - id: select_audio_input
    label: Select Audio Input (combine with switch_audio_out)
    kind: action
    command: "!TSWI:a<CR>"
    params:
      - name: a
        type: string
        description: "Input channel + V/E (1 ~ matrix max) + V/E"

  - id: switch_audio_out
    label: Switch Selected Audio Input to Output(s)
    kind: action
    command: "!TSWO:a<CR>"
    params:
      - name: a
        type: string
        description: "Output channel + V/E (1 ~ matrix max) + V/E"

  - id: query_audio_output
    label: Query Audio Output Status
    kind: query
    command: "?TR<CR>"
    params: []

  # --- Scenes ---
  - id: save_scene
    label: Save Current State to Scene
    kind: action
    command: "!Sa<CR>"
    params:
      - name: a
        type: integer
        description: Scene location (1 ~ 32 max)

  - id: call_scene
    label: Call (Recall) Scene
    kind: action
    command: "!Ra<CR>"
    params:
      - name: a
        type: integer
        description: Scene location (1 ~ 32 max)

  - id: set_scene_name
    label: Set Scene Name
    kind: action
    command: "!SNAMEa:b<CR>"
    params:
      - name: a
        type: integer
        description: Scene number (1 ~ 32 max)
      - name: b
        type: string
        description: Scene name (15 English chars max)

  - id: query_scene_name
    label: Query Scene Name
    kind: query
    command: "?SNAMEa<CR>"
    params:
      - name: a
        type: integer
        description: Scene location (1 ~ 32 max)

  - id: set_scene_web_display
    label: Set Scene Web Display
    kind: action
    command: "!SUSEa:b<CR>"
    params:
      - name: a
        type: integer
        description: Scene number (1 ~ 32 max)
      - name: b
        type: integer
        description: "0 = no display on WEB, 1 = display"

  - id: query_scene_status
    label: Query Scene Use Status
    kind: query
    command: "?SUSEa<CR>"
    params:
      - name: a
        type: integer
        description: Scene location (1 ~ 32 max)

  # --- Audio/Video synchronization ---
  - id: set_sync
    label: Set Audio/Video Synchronization
    kind: action
    command: "!SYNC:a<CR>"
    params:
      - name: a
        type: integer
        description: "0 = no synchronous, 1 = synchronous"

  - id: query_sync
    label: Query Audio/Video Synchronization Status
    kind: query
    command: "?SYNC<CR>"
    params: []

  - id: set_sync_mode
    label: Set Audio/Video Synchronization Mode
    kind: action
    command: "!SYNC_MODE:a<CR>"
    params:
      - name: a
        type: integer
        description: "Mode: 0=VE->VE, 1=VE->EV, 2=V->VE (default), 3=E->VE, 4=V->V, 5=E->E, 6=V->E, 7=E->V. V=Internal audio, E=External audio"

  - id: query_sync_mode
    label: Query Audio/Video Synchronization Mode
    kind: query
    command: "?SYNC_MODE<CR>"
    params: []

  # --- UART / Serial routing ---
  - id: uart_switch
    label: UART Switch
    kind: action
    command: "!CUARTatob,c<CR>"
    params:
      - name: a
        type: integer
        description: RX channel (1 ~ matrix max)
      - name: b
        type: integer
        description: TX channel (1 ~ matrix max or ALL)
      - name: c
        type: integer
        description: Additional TX channel (1 ~ matrix max or ALL)

  - id: query_uart_status
    label: Query Status of All UART
    kind: query
    command: "?CRUART<CR>"
    params: []

  # --- Network configuration ---
  - id: set_ip_address
    label: Set IP Address
    kind: action
    command: "!IP:a.b.c.d<CR>"
    params:
      - name: a
        type: integer
        description: Address octet (0 ~ 255)
      - name: b
        type: integer
        description: Address octet (0 ~ 255)
      - name: c
        type: integer
        description: Address octet (0 ~ 255)
      - name: d
        type: integer
        description: Address octet (0 ~ 255)

  - id: set_subnet
    label: Set Subnet Mask
    kind: action
    command: "!SUBNET:a.b.c.d<CR>"
    params:
      - name: a
        type: integer
        description: Address octet (0 ~ 255)
      - name: b
        type: integer
        description: Address octet (0 ~ 255)
      - name: c
        type: integer
        description: Address octet (0 ~ 255)
      - name: d
        type: integer
        description: Address octet (0 ~ 255)

  - id: set_gateway
    label: Set Gateway
    kind: action
    command: "!GATEWAY:a.b.c.d<CR>"
    params:
      - name: a
        type: integer
        description: Address octet (0 ~ 255)
      - name: b
        type: integer
        description: Address octet (0 ~ 255)
      - name: c
        type: integer
        description: Address octet (0 ~ 255)
      - name: d
        type: integer
        description: Address octet (0 ~ 255)

  - id: set_socket_server_port
    label: Set Socket Server Port
    kind: action
    command: "!PORT:a<CR>"
    params:
      - name: a
        type: integer
        description: Server port number

  - id: set_dhcp
    label: Set Network DHCP
    kind: action
    command: "!DHCP:a<CR>"
    params:
      - name: a
        type: integer
        description: "0 = DHCP off, 1 = DHCP on"

  - id: query_network
    label: Query Network Information
    kind: query
    command: "?NETWORK<CR>"
    params: []

  # --- Serial port config ---
  - id: set_serial_port
    label: Set Serial Port Parameters
    kind: action
    command: "!UART:a,b,c,d<CR>"
    params:
      - name: a
        type: integer
        description: "Baud rate (115200 / 38400 / 19200 / 9600)"
      - name: b
        type: integer
        description: "Data bits (8 / 9)"
      - name: c
        type: number
        description: "Stop bits (1 / 1.5 / 2)"
      - name: d
        type: string
        description: "Parity bits (None / Odd / Even)"

  - id: query_serial_port
    label: Query Serial Port Parameters
    kind: query
    command: "?UART<CR>"
    params: []

  # --- Command processing control ---
  - id: set_command_enable
    label: Set Command Enable
    kind: action
    command: "!CMDEN:a<CR>"
    params:
      - name: a
        type: integer
        description: "0 = commands not processed, 1 = commands processed"
    notes: When closed, commands received by socket and serial port are not processed (the !CMDEN command itself is still accepted).

  - id: query_command_enable
    label: Query Command Enable Status
    kind: query
    command: "?CMDEN<CR>"
    params: []

  - id: set_command_sound
    label: Set Command-Sent Sound
    kind: action
    command: "!CSOUND:a<CR>"
    params:
      - name: a
        type: integer
        description: "0 = no sound, 1 = sound when command is sent"

  - id: query_command_sound
    label: Query Command-Sent Sound Status
    kind: query
    command: "?CSOUND<CR>"
    params: []

  # --- EDID management ---
  - id: switch_edid_output_to_input
    label: Switch EDID of Output to Input Port
    kind: action
    command: "!EDIDatob<CR>"
    params:
      - name: a
        type: integer
        description: Output port (1 ~ matrix max)
      - name: b
        type: integer
        description: Input port (1 ~ matrix max or ALL)

  - id: switch_edid_system_to_input
    label: Switch EDID of System to Input Port
    kind: action
    command: "!SYSEatob<CR>"
    params:
      - name: a
        type: integer
        description: System EDID slot (1 ~ 16)
      - name: b
        type: integer
        description: Input port (1 ~ matrix max or ALL)

  - id: save_edid_output_to_system
    label: Save EDID of Output to System
    kind: action
    command: "!SEDIDatob<CR>"
    params:
      - name: a
        type: integer
        description: Output port (1 ~ matrix max)
      - name: b
        type: integer
        description: System EDID slot (1 ~ 16)

  - id: set_hdmi_dvi_mode
    label: Select Output Port HDMI/DVI Format
    kind: action
    command: "!HDMODE:a,b<CR>"
    params:
      - name: a
        type: integer
        description: Output port (1 ~ matrix max)
      - name: b
        type: integer
        description: "0 = DVI, 1 = HDMI"

  - id: set_hdcp
    label: Open/Close Port HDCP
    kind: action
    command: "!HDCP:a,b<CR>"
    params:
      - name: a
        type: integer
        description: Port (1 ~ matrix max, applies to IN/OUT card)
      - name: b
        type: integer
        description: "0 = OFF, 1 = ON"

  # --- Power ---
  - id: set_card_power
    label: Turn On/Off Card Power
    kind: action
    command: "!CPOWER:a,b<CR>"
    params:
      - name: a
        type: integer
        description: Port (1 ~ matrix max)
      - name: b
        type: integer
        description: "0 = OFF, 1 = ON"

  - id: query_card_power
    label: Query Card Power Status
    kind: query
    command: "?CPOWER:a<CR>"
    params:
      - name: a
        type: integer
        description: Port (1 ~ matrix max)

  # --- Management credentials ---
  - id: set_web_credentials
    label: Set Web Interface Username and Password
    kind: action
    command: "!MUNP:a,b<CR>"
    params:
      - name: a
        type: string
        description: Username (15 English chars or Arabic numerals)
      - name: b
        type: string
        description: Password (15 English chars or Arabic numerals)

  - id: query_web_credentials
    label: Query Management Username and Password
    kind: query
    command: "?MUNP<CR>"
    params: []

  # --- Control board ---
  - id: send_control_board_command
    label: Send Command to Control Board
    kind: action
    command: "!COMa<CR>"
    params:
      - name: a
        type: string
        description: Control card command

  - id: query_control_board_online
    label: Check Whether Central Control Board Is Online
    kind: query
    command: "?COM<CR>"
    params: []

  # --- TCP socket send ---
  - id: send_tcp_socket_data
    label: Send Data to TCP Socket Server
    kind: action
    command: "!SEND-SS:a:b,c<CR>"
    params:
      - name: a
        type: string
        description: Destination IP address
      - name: b
        type: integer
        description: Destination server port
      - name: c
        type: string
        description: Data to send

  - id: query_json_status
    label: Query Status Information (JSON)
    kind: query
    command: "?JSON:a,b<CR>"
    params:
      - name: a
        type: string
        description: 'Category ("video", "scene", "system", "weburl", "cont")'
      - name: b
        type: integer
        description: "Mark (status update version; 0 = request all data)"

  # --- System ---
  - id: set_system_language
    label: Set System Language
    kind: action
    command: "!LANG:a<CR>"
    params:
      - name: a
        type: integer
        description: "0 = English, 1 = Chinese"

  - id: query_system_language
    label: Query System Language
    kind: query
    command: "?LANG<CR>"
    params: []

  - id: soft_restart
    label: Restart the System
    kind: action
    command: "!SOF-RESTART<CR>"
    params: []

  - id: factory_reset
    label: Restore Factory Settings
    kind: action
    command: "!SYS-RESET<CR>"
    params: []

  - id: query_card_types
    label: Query All Daughter Card Types
    kind: query
    command: "?RCID<CR>"
    params: []

  - id: query_main_software_version
    label: Query Main Software Version
    kind: query
    command: "?SVER<CR>"
    params: []

  - id: query_hardware_version
    label: Query Hardware Version
    kind: query
    command: "?HVER<CR>"
    params: []

  - id: query_backboard_firmware_version
    label: Query Back Board Firmware Version
    kind: query
    command: "?BVER<CR>"
    params: []

  - id: query_matrix_type
    label: Query Matrix Type
    kind: query
    command: "?M0<CR>"
    params: []

  # --- HDBT card passthrough ---
  - id: send_hdbt_command
    label: Send Command to HDBT Card
    kind: action
    command: "!SEND-CU:a:xb:c<CR>"
    params:
      - name: a
        type: integer
        description: "Baud rate (115200 / 38400 / 19200 / 9600)"
      - name: x
        type: string
        description: 'Card side - "I" (input) or "O" (output)'
      - name: b
        type: integer
        description: Card port
      - name: c
        type: string
        description: "Data (prefix with '%H ' to send hex bytes instead of ASCII, e.g. '%H 01 02 03 04 05 0D 0A')"

  - id: send_recv_hdbt_command
    label: Send and Receive Command from HDBT Card
    kind: action
    command: "!SEND-CU-RECV:a:xb:c<CR>"
    params:
      - name: a
        type: integer
        description: "Baud rate (115200 / 38400 / 19200 / 9600)"
      - name: x
        type: string
        description: 'Card side - "I" (input) or "O" (output)'
      - name: b
        type: integer
        description: Card port
      - name: c
        type: string
        description: "Data (prefix with '%H ' to send hex bytes instead of ASCII)"

Feedbacks

feedbacks:
  - id: video_routing_state
    type: string
    description: "Response to ?CR - current video input/output correspondence, e.g. ~CR1:3,2:4<CR>"
  - id: audio_routing_state
    type: string
    description: "Response to ?TR - current audio input/output correspondence, e.g. ~TR1V:3V,2V:4V<CR>"
  - id: uart_routing_state
    type: string
    description: "Response to ?CRUART - all UART routing, e.g. ~CRUART1:1,2:1,...<CR>"
  - id: network_info
    type: string
    description: "Response to ?NETWORK - IP/subnet/gateway/port, multiline"
  - id: serial_config
    type: string
    description: "Response to ?UART - e.g. ~UART:9600,8,1,None<CR>"
  - id: command_enable_state
    type: enum
    values: [on, off]
    description: "Response to ?CMDEN (1/0)"
  - id: sound_state
    type: enum
    values: [on, off]
    description: "Response to ?CSOUND (1/0)"
  - id: card_power_state
    type: enum
    values: [on, off]
    description: "Response to ?CPOWER:a (1/0)"
  - id: sync_state
    type: enum
    values: [synchronous, asynchronous]
    description: "Response to ?SYNC (1/0)"
  - id: sync_mode
    type: integer
    description: "Response to ?SYNC_MODE - mode 0..7"
  - id: scene_name
    type: string
    description: "Response to ?SNAMEa"
  - id: scene_use_state
    type: enum
    values: [display, no_display]
    description: "Response to ?SUSEa (1/0)"
  - id: control_board_online
    type: enum
    values: [online, offline]
    description: "Response to ?COM - ~COM:1<CR> when online"
  - id: web_credentials
    type: string
    description: "Response to ?MUNP - current username,password"
  - id: system_language
    type: enum
    values: [english, chinese]
    description: "Response to ?LANG (0/1)"
  - id: card_types
    type: string
    description: "Response to ?RCID - daughter card type list"
  - id: main_software_version
    type: string
    description: "Response to ?SVER"
  - id: hardware_version
    type: string
    description: "Response to ?HVER"
  - id: backboard_firmware_version
    type: string
    description: "Response to ?BVER"
  - id: matrix_type
    type: string
    description: "Response to ?M0 - e.g. ~DXM-884<CR>"
  - id: json_status
    type: object
    description: "Response to ?JSON:a,b - JSON document (video/scene/system/weburl/cont)"
  # UNRESOLVED: exact JSON schema for ?JSON responses not fully documented in source (only fragment shown).

Variables

variables:
  - id: ip_address
    type: string
    description: Device IP address (set via !IP, default 192.168.88.229)
  - id: subnet_mask
    type: string
    description: Subnet mask (set via !SUBNET)
  - id: gateway
    type: string
    description: Gateway (set via !GATEWAY)
  - id: socket_server_port
    type: integer
    description: TCP socket server port (set via !PORT, default 1001)
  - id: dhcp_enabled
    type: boolean
    description: DHCP state (set via !DHCP)
  - id: serial_baud_rate
    type: integer
    description: RS-232 baud rate (set via !UART; 115200/38400/19200/9600)
  - id: system_language
    type: enum
    values: [english, chinese]
    description: System language (set via !LANG)

Events

# UNRESOLVED: source documents no unsolicited notification events. All responses are
# solicited (prefixed ~) to a command/query. No async push events described.

Macros

# UNRESOLVED: source documents no explicit multi-step macro sequences beyond the
# CSWI/CSWO (video) and TSWI/TSWO (audio) two-step select-then-switch pairs,
# which are represented as individual actions above.

Safety

confirmation_required_for:
  - soft_restart          # !SOF-RESTART restarts the system
  - factory_reset         # !SYS-RESET restores factory settings (destructive)
interlocks: []
# NOTE: source documents no explicit interlock procedures. The commands above are
# flagged as destructive based on their described effect (system restart / factory reset),
# not from an explicit source safety warning.
# UNRESOLVED: no power-on sequencing or safety interlock requirements stated in source.

Notes

  • Command prefixes: ! = command, ? = query, ~ = response. All terminated with <CR> (0x0D).
  • Default communication settings: 115200 8N1 None. Default IP 192.168.88.229, socket server port 1001. Web server default port 80, credentials user / 123456.
  • Audio routing uses V/E suffix convention: V = Internal audio, E = External audio (e.g. 1V = input 1 internal audio, 2E = output 2 external audio).
  • SYNC_MODE default is mode 2 (V -> VE).
  • Scene locations are 1–32.
  • HDBT card passthrough commands (!SEND-CU / !SEND-CU-RECV) support hex byte payloads via the %H prefix (e.g. %H 01 02 03 04 05 0D 0A).
  • RS-232 connector is 3.5mm TRS: Tip = TX, Ring = RX, Sleeve = GND.
  • Troubleshooting note from source: when testing via terminal, commands may need to be sent in one shot (try Hercules over HyperTerminal); sending speed can affect operation. Check RX/TX swap and baud rate if commands fail.

## Provenance

```yaml
source_domains:
  - files.hdtvsupply.com
  - manualslib.com
source_urls:
  - https://files.hdtvsupply.com/brand/aurora/aurora-multimedia-dxm-88-16164-g4-um.pdf
  - "https://www.manualslib.com/manual/1628153/Aurora-Dxm-G4-Series.html?page=45"
retrieved_at: 2026-07-01T04:26:38.962Z
last_checked_at: 2026-07-07T11:02:06.956Z
```

## Verification Summary

```yaml
verdict: verified
checked_at: 2026-07-07T11:02:06.956Z
matched_actions: 58
action_count: 58
confidence: medium
summary: "All 58 spec actions match source commands verbatim; transport (TCP port 1001, RS232 115200 8N1) confirmed in source. (7 unresolved item(s) noted in Known Gaps.)"
```

## Known Gaps

```yaml
- "the source is a refined excerpt of a broader DXM matrix manual; device name \"Dxco 1 Hdbt G4\" vs. internal references \"DXM\"/\"DXM-884\" — model identity not fully reconciled. Firmware version not stated. Whether the TCP socket command port (1001) requires the web login credentials is not documented."
- "# the command set documents no login sequence."
- "exact JSON schema for ?JSON responses not fully documented in source (only fragment shown)."
- "source documents no unsolicited notification events. All responses are"
- "source documents no explicit multi-step macro sequences beyond the"
- "no power-on sequencing or safety interlock requirements stated in source."
- "device model identity — source is a DXM matrix manual excerpt but the target device is \"Axco 1 Hdbt G4\"; \"matrix max\" values depend on actual matrix size and are not fixed in source. Firmware version compatibility not stated. Whether TCP socket port 1001 requires web login credentials is not documented. JSON status response schema only partially documented."
```

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