Summary

The Binary B-660-MTRX-8x8 is an 8x8 HDMI 2.0 matrix switcher with HDBaseT VLC output and audio matrix capabilities. It supports RS-232 serial control and Telnet (TCP port 23) connections. Commands are ASCII text terminated with <CR><LF> and are case insensitive.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 115200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: 23  # stated default for Telnet
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable    # STANDBY / WAKE commands present
  - routable     # SET SW in out - video and audio routing commands
  - queryable    # GET MP, GET EDID, GET STANDBY, GET IPADDR, GET VER - query commands returning state

Actions

actions:
  - id: switch_video
    label: Switch Video Input to Output
    kind: action
    command: "SET SW {in} {out}"
    response: "SW {in} {out}"
    params:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8, in0]
        description: "Input source; in0 = power down output"
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8]
        description: Output sink
    description: Switch one input source for one output

  - id: switch_video_all
    label: Switch Video Input for All Outputs
    kind: action
    command: "SET SW {in} all"
    response: "SW {in} all"
    params:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8, in0]
        description: "Input source; in0 = power down all outputs"
    description: Switch one input source for all output sinks

  - id: switch_audio
    label: Switch Audio Input for Output
    kind: action
    command: "SET AUDIOSW {in} {out}"
    response: "AUDIOSW {in} {out}"
    params:
      - name: in
        type: enum
        values: [hdmi, arc]
        description: "hdmi = audio extracted from HDMI OUT; arc = audio from HDMI ARC"
      - name: out
        type: enum
        values: [audioout1, audioout2, audioout3, audioout4, audioout5, audioout6, audioout7, audioout8]
        description: Audio output
    description: Set audio switch from one input source to one audio output

  - id: set_cec_power
    label: Set CEC Power On/Off
    kind: action
    command: "SET CEC_PWR {out} {state}"
    response: "CEC_PWR {out} {state}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8, all]
        description: Output or all
      - name: state
        type: enum
        values: [on, off]
    description: Set sink power on or off via CEC

  - id: set_auto_cec
    label: Set CEC Auto Power On/Off
    kind: action
    command: "SET AUTOCEC_FN {out} {state}"
    response: "AUTOCEC_FN {out} {state}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8]
      - name: state
        type: enum
        values: [on, off]
    description: Set sink auto power function on or off

  - id: set_cec_delay
    label: Set CEC Auto Power Delay
    kind: action
    command: "SET AUTOCEC_D {out} {minutes}"
    response: "AUTOCEC_D {out} {minutes}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8]
      - name: minutes
        type: integer
        min: 0
        max: 30
        description: "Delay in minutes; 0 = immediate power off; default is 2"
    description: Set auto power-off delay when no active signal

  - id: set_input_hdcp
    label: Set Input HDCP Support
    kind: action
    command: "SET HDCP_S {in} {state}"
    response: "HDCP_S {in} {state}"
    params:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8]
      - name: state
        type: enum
        values: [on, off]
    description: Enable or disable HDCP support on an input

  - id: set_input_edid
    label: Set Input EDID
    kind: action
    command: "SET EDID {in} {preset}"
    response: "EDID {in} {preset}"
    params:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8]
      - name: preset
        type: integer
        min: 1
        max: 27
        description: "1-8 = copy from HDMI output N; 9-27 = fixed EDID presets (4K60/4K30/1080p with various audio/HDR/SDR combos)"
    description: Set EDID for a given input

  - id: write_input_edid
    label: Write Custom EDID Block
    kind: action
    command: "SET EDID_W {in} {block} {data}"
    response: "EDID_W {in} {block} {status}"
    params:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8]
      - name: block
        type: enum
        values: [block0, block1]
      - name: data
        type: string
        description: "256 bytes of EDID ASCII data with spaces (hex converted to ASCII)"
    description: Write custom EDID content to input; returns ok or error (checksum)

  - id: set_output_hdcp
    label: Set Output HDCP Mode
    kind: action
    command: "SET HDCP {out} {mode}"
    response: "HDCP {out} {mode}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8, all]
      - name: mode
        type: enum
        values: [follow, "hdcp1.4", off]
        description: "follow = match source HDCP version; off = no HDCP"
    description: Set output HDCP mode

  - id: factory_reset
    label: Factory Reset
    kind: action
    command: "RESET"
    response: "RESET"
    params: []
    description: Factory reset all boards

  - id: system_reboot
    label: System Reboot
    kind: action
    command: "REBOOT"
    response: "REBOOT"
    params: []
    description: Software reboot of the system

  - id: hardware_reboot
    label: Hardware Reboot
    kind: action
    command: "HW_REBOOT"
    response: "HW_REBOOT"
    params: []
    description: Hardware reboot

  - id: standby
    label: Standby
    kind: action
    command: "STANDBY"
    response: "STANDBY!"
    params: []
    description: Put device into standby mode

  - id: wake
    label: Wake
    kind: action
    command: "WAKE"
    response: "WAKE!"
    params: []
    description: Wake device from standby

  - id: set_ir_system_code
    label: Set IR System Code
    kind: action
    command: "Set IR_SC {mode}"
    response: "IR_SC {mode}"
    params:
      - name: mode
        type: enum
        values: [all, mode1, mode2]
        description: "mode1 = 0x00; mode2 = 0x4E"
    description: Set IR system code mode

  - id: save_preset
    label: Save Preset Scene
    kind: action
    command: "SAVE PRESET {preset}"
    response: "PRESET {preset}"
    params:
      - name: preset
        type: enum
        values: ["1", "2", "3"]
    description: Save current routing state as a preset scene

  - id: restore_preset
    label: Restore Preset Scene
    kind: action
    command: "RESTORE PRESET {preset}"
    response: "PRESET {preset}"
    params:
      - name: preset
        type: enum
        values: ["1", "2", "3"]
    description: Restore a saved preset scene

Feedbacks

feedbacks:
  - id: video_mapping
    label: Video Input Mapping for Output
    type: query
    command: "GET MP {out}"
    response: "MP {in} {out}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8, all]
    return_values:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8, in0]
    description: "Get which input is mapped to an output; in0 = output powered down. Use 'all' to get all mappings."

  - id: audio_mapping
    label: Audio Input Mapping for Output
    type: query
    command: "GET AUDIOMP {out}"
    response: "AUDIOMP {in} {out}"
    params:
      - name: out
        type: enum
        values: [audioout1, audioout2, audioout3, audioout4, audioout5, audioout6, audioout7, audioout8]
    return_values:
      - name: in
        type: enum
        values: [hdmi, arc]
    description: Get audio input mapping for an audio output

  - id: auto_cec_status
    label: CEC Auto Power Status
    type: query
    command: "GET AUTOCEC_FN {out}"
    response: "AUTOCEC_FN {out} {state}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8]
    return_values:
      - name: state
        type: enum
        values: [on, off]

  - id: cec_delay_status
    label: CEC Auto Power Delay
    type: query
    command: "GET AUTOCEC_D {out}"
    response: "AUTOCEC_D {out} {minutes}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8]
    return_values:
      - name: minutes
        type: integer
        description: "Delay in minutes (0-30)"

  - id: input_hdcp_status
    label: Input HDCP Support Status
    type: query
    command: "GET HDCP_S {in}"
    response: "HDCP_S {in} {state}"
    params:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8]
    return_values:
      - name: state
        type: enum
        values: [on, off]

  - id: all_input_edid
    label: All Input EDID Status
    type: query
    command: "GET EDID all"
    response: "EDID {in} {preset} (multiple lines)"
    return_values:
      - name: preset
        type: integer
        min: 1
        max: 27

  - id: single_input_edid
    label: Single Input EDID Status
    type: query
    command: "GET EDID {in}"
    response: "EDID {in} {preset}"
    params:
      - name: in
        type: enum
        values: [in1, in2, in3, in4, in5, in6, in7, in8]
    return_values:
      - name: preset
        type: integer
        min: 1
        max: 27

  - id: output_edid_read
    label: Read Output EDID
    type: query
    command: "GET EDID_R {out}"
    response: "EDID_R {out} {block} {data_or_status}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8]
    return_values:
      - name: data_or_status
        type: string
        description: "256-byte EDID ASCII block data, 'error' (checksum), or 'unconnect' (no sink)"

  - id: output_hdcp
    label: Output HDCP Mode
    type: query
    command: "GET HDCP {out}"
    response: "HDCP {out} {mode}"
    params:
      - name: out
        type: enum
        values: [out1, out2, out3, out4, out5, out6, out7, out8, all]
    return_values:
      - name: mode
        type: enum
        values: [follow, "hdcp1.4", off]

  - id: standby_status
    label: Standby Status
    type: query
    command: "GET STANDBY"
    response: "STANDBY! or WAKE!"
    return_values:
      - name: state
        type: enum
        values: [standby, wake]

  - id: ip_address
    label: IP Address
    type: query
    command: "GET IPADDR"
    response: "IPADDR {ip}"
    return_values:
      - name: ip
        type: string

  - id: firmware_version
    label: Firmware Version
    type: query
    command: "GET VER"
    response: "VER {version}"
    return_values:
      - name: version
        type: string

  - id: ir_system_code
    label: IR System Code
    type: query
    command: "Get IR_SC"
    response: "IR_SC {mode}"
    return_values:
      - name: mode
        type: enum
        values: [all, mode1, mode2]

  - id: api_list
    label: API Command List
    type: query
    command: "help"
    response: "List of available commands"

Variables

# No continuous/settable parameters beyond discrete actions identified in source.

Events

# UNRESOLVED: no unsolicited notification events documented in source; all responses appear to be command-reply only

Macros

# Preset save/restore is covered under Actions (save_preset, restore_preset). No multi-step sequences described beyond that.

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures found in source

Notes

  • All commands are case insensitive and must be terminated with <CR><LF>.
  • The device supports both RS-232 serial and Telnet (TCP) control with the same command set.
  • Video routing uses inputs in1in8 and outputs out1out8; in0 means power down the output.
  • Audio routing uses hdmi or arc as input sources and audioout1audioout8 as outputs.
  • EDID preset values 1–8 copy from HDMI outputs; values 9–27 are fixed EDID tables with various resolution/audio/HDR combinations.
  • EDID preset values 21–27 are mentioned in parameter lists but not fully enumerated in the source (only values up to 20 are described in detail in some tables).
  • Three preset scene slots (1, 2, 3) for saving/restoring routing configurations.
  • CEC auto power-off delay default is 2 minutes, max 30 minutes; 0 = immediate.
  • Output HDCP follow mode mirrors the source's HDCP version automatically.

Provenance

source_domains:
  - snapav.com
source_urls:
  - https://www.snapav.com/wcsstore/ExtendedSitesCatalogAssetStore/attachments/documents/MediaDistribution/SupportDocuments/B-660-MTRX-8x8-API-Command-Set_V1.0.1.pdf
retrieved_at: 2026-04-30T04:24:50.218Z
last_checked_at: 2026-06-02T21:51:27.706Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T21:51:27.706Z
matched_actions: 18
action_count: 18
confidence: medium
summary: "18 spec actions verified against Binary projector control protocol. (6 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "exact product family scope unclear — source title says \"B-660-MTRX-8x8\" but user refers to \"Binary B Series\"; other B-Series models may share this command set"
- "no unsolicited notification events documented in source; all responses appear to be command-reply only"
- "no safety warnings or interlock procedures found in source"
- "EDID presets 21-27 descriptions incomplete in source — only listed in parameter range but details not fully documented"
- "no information on command timing, rate limiting, or connection keep-alive for Telnet"
- "firmware version compatibility not stated in source"

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