Summary
Video Storm CMX86 is an RS-232-controlled matrix switch. Source documents serial settings, routing, configuration, audio gain and processing commands, status queries, acknowledgements, input notifications, and expansion-port forwarding.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: UNRESOLVED # source does not state this (was inferred none: no auth procedure in source)
Traits
- powerable # inferred from CF03 power control
- routable # inferred from routing commands
- queryable # inferred from STAT and status responses
- levelable # inferred from audio gain and processing commands
Actions
- id: config_control
label: Config Control
kind: action
command: "CF##<cr>"
params:
- name: control
type: integer
description: "Control number: 1-6"
- name: state
type: enum
values: [F, T]
description: "F turns control off; T turns control on"
- id: clear_zerokey_ir_codes
label: Clear ZeroKey IR Codes and Config Bits
kind: action
command: "CF1T<cr>"
params: []
- id: led_off
label: LED Off
kind: action
command: "CF2T<cr>"
params: []
- id: power_off
label: Power Off
kind: action
command: "CF3T<cr>"
params: []
- id: advanced_scheme_enable
label: Advanced Scheme Enable
kind: action
command: "CF4T<cr>"
params: []
- id: debug_control_1
label: Debug Control 1
kind: action
command: "CF5F<cr>"
params: []
- id: debug_control_2
label: Debug Control 2
kind: action
command: "CF6F<cr>"
params: []
- id: request_device_status
label: Request Device Status
kind: query
command: "STAT<cr>"
params: []
- id: request_audio_dsp_status
label: Request Audio DSP Settings Status
kind: query
command: "STATL<cr>"
params: []
- id: request_formatted_audio_status
label: Request Formatted Audio Settings Status
kind: query
command: "STATAUDIO<cr>"
params: []
- id: flash_mode_control
label: Flash Modes Control
kind: action
command: "F{slot}{operation}<cr>"
params:
- name: slot
type: integer
description: "Flash slot, 01-08"
- name: operation
type: enum
values: [S, R]
description: "S saves current config; R recalls saved config"
- id: zone_restriction_control
label: Zone Restriction Control
kind: action
command: "Z{zone}{zone_mask}<cr>"
params:
- name: zone
type: integer
description: "Zone, 01-16"
- name: zone_mask
type: string
description: "Four-digit hexadecimal zone mask"
- id: basic_output_control
label: Basic Mode Output Control
kind: action
command: "V{output}{input}{digital_type}<cr>"
params:
- name: output
type: integer
description: "Output, 1-8"
- name: input
type: integer
description: "Input, 0-8; 00 disables selected output"
- name: digital_type
type: enum
values: [D, O]
description: "D selects digital coax; O selects digital toslink"
- id: component_video_output_control
label: Component Video Output Control
kind: action
command: "V{output}{input}<cr>"
params:
- name: output
type: integer
description: "Output, 01-16"
- name: input
type: integer
description: "Input, 00-16; 00 disables selected output"
- id: audio_output_control
label: Audio Output Control
kind: action
command: "A{output}{input}<cr>"
params:
- name: output
type: integer
description: "Output, 01-16"
- name: input
type: integer
description: "Input, 00-16; 00 disables selected output"
- id: composite_video_output_control
label: Composite Video Output Control
kind: action
command: "P{output}{input}<cr>"
params:
- name: output
type: integer
description: "Output, 01-16"
- name: input
type: integer
description: "Input, 00-16; 00 disables selected output"
- id: digital_coax_output_control
label: Digital Audio Coax Output Control
kind: action
command: "C{output}{input}{digital_type}<cr>"
params:
- name: output
type: integer
description: "Output, 1-8"
- name: input
type: integer
description: "Input, 0-8; 0 disables selected output"
- name: digital_type
type: enum
values: [D, O]
description: "D selects digital coax; O selects digital toslink"
- id: digital_toslink_output_control
label: Digital Audio Toslink Output Control
kind: action
command: "O{output}{input}{digital_type}<cr>"
params:
- name: output
type: integer
description: "Output, 1-6"
- name: input
type: integer
description: "Input, 0-8; 0 disables selected output"
- name: digital_type
type: enum
values: [D, O]
description: "D selects digital coax; O selects digital toslink"
- id: cmx3838a2_digital_coax_output_control
label: CMX3838A2 Digital Audio Coax Output Control
kind: action
command: "C{output}{input}<cr>"
params:
- name: output
type: integer
description: "Output, 01-16"
- name: input
type: integer
description: "Input, 0-38; 00 disables selected output"
- id: cmx3838a2_digital_toslink_output_control
label: CMX3838A2 Digital Audio Toslink Output Control
kind: action
command: "O{output}{input}<cr>"
params:
- name: output
type: integer
description: "Output, 01-06"
- name: input
type: integer
description: "Input, 0-38; 00 disables selected output"
- id: network_audio_switch_control
label: Network Audio Switch Control
kind: action
command: "N{output}{input}<cr>"
params:
- name: output
type: integer
description: "Output, 01-08"
- name: input
type: integer
description: "Input, 0-38; 00 disables selected output"
- id: audio_output_gain_control
label: Audio Output Gain Control
kind: action
command: "G{output}{gain}<cr>"
params:
- name: output
type: integer
description: "Output, 01-16"
- name: gain
type: string
description: "Numeric gain value 000-255, or U, D, MT, MF, or M on firmware 1.5 and later"
- id: audio_input_gain_control
label: Audio Input Gain Control
kind: action
command: "E{zone}{gain}<cr>"
params:
- name: zone
type: string
description: "Input zone, 01-MAX"
- name: gain
type: integer
description: "Gain value, 00-255; 128 nominal"
- id: audio_output_balance_control
label: Audio Output Balance Control
kind: action
command: "M{zone}{balance}<cr>"
params:
- name: zone
type: string
description: "Input zone, 01-MAX"
- name: balance
type: integer
description: "Balance value, 00-255; 128 nominal"
- id: audio_bass_control
label: Audio Bass Control
kind: action
command: "B{zone}{level}<cr>"
params:
- name: zone
type: string
description: "Input zone, 01-MAX"
- name: level
type: integer
description: "Bass value, 00-255; 128 nominal"
- id: audio_treble_control
label: Audio Treble Control
kind: action
command: "T{zone}{level}<cr>"
params:
- name: zone
type: string
description: "Input zone, 01-MAX"
- name: level
type: integer
description: "Treble value, 00-255; 128 nominal"
- id: audio_input_delay_control
label: Audio Input Delay Control
kind: action
command: "X{input}{delay}<cr>"
params:
- name: input
type: integer
description: "Input, 01-16"
- name: delay
type: string
description: "Delay value, 00-255, U, or D; each numeric step is 0.25 video frames at 60 Hz, or 4.1666 ms"
- id: audio_output_delay_control
label: Audio Output Delay Control
kind: action
command: "D{output}{delay}<cr>"
params:
- name: output
type: integer
description: "Output, 01-16"
- name: delay
type: string
description: "Delay value, 00-255, U, or D; each numeric step is 0.25 video frames at 60 Hz, or 4.1666 ms"
- id: audio_bass_pole_frequency
label: Audio Bass Pole Frequency
kind: action
command: "BPF{frequency}<cr>"
params:
- name: frequency
type: integer
description: "Value, 00-255; 128 nominal"
- id: audio_internal_ramp_speed
label: Audio Internal Ramp Speed
kind: action
command: "RT{speed}<cr>"
params:
- name: speed
type: integer
description: "Speed, 00-06; 00 slowest and 06 fastest"
- id: forward_command
label: Forward Command To Expansion Port
kind: action
command: "/F{command}<cr>"
params:
- name: command
type: string
description: "Normal command; repeat /F prefix for each downstream device"
- id: forward_command_device_2
label: Forward Command To Second Downstream Device
kind: action
command: "/F/F{command}<cr>"
params:
- name: command
type: string
description: "Normal command"
- id: forward_command_device_3
label: Forward Command To Third Downstream Device
kind: action
command: "/F/F/F{command}<cr>"
params:
- name: command
type: string
description: "Normal command"
- id: flash_modes_control_source_notation
label: Flash Modes Control Source Notation
kind: action
command: "Faab<cr>"
params:
- name: slot
type: integer
description: "01-08"
- name: operation
type: enum
values: [S, R]
description: "S saves current config, R recalls saved config"
- id: zone_restriction_control_source_notation
label: Zone Restriction Control Source Notation
kind: action
command: "Zaahhhh<cr>"
params:
- name: zone
type: integer
description: "01-16"
- name: zone_mask
type: string
description: "4 digit hexadecimal number corresponding to the ZONE MASK"
- id: audio_input_gain_control_source_notation
label: Audio Input Gain Control Source Notation
kind: action
command: "Eaabbb<cr>"
params:
- name: zone
type: string
description: "01-MAX"
- name: gain
type: integer
description: "00-255"
- id: audio_output_balance_control_source_notation
label: Audio Output Balance Control Source Notation
kind: action
command: "Maabbb<cr>"
params:
- name: zone
type: string
description: "01-MAX"
- name: balance
type: integer
description: "00-255"
- id: audio_bass_control_source_notation
label: Audio Bass Control Source Notation
kind: action
command: "Baabbb<cr>"
params:
- name: zone
type: string
description: "01-MAX"
- name: level
type: integer
description: "00-255"
- id: audio_treble_control_source_notation
label: Audio Treble Control Source Notation
kind: action
command: "Taabbb<cr>"
params:
- name: zone
type: string
description: "01-MAX"
- name: level
type: integer
description: "00-255"
- id: audio_input_delay_control_source_notation
label: Audio Input Delay Control Source Notation
kind: action
command: "Xaabbb<cr>"
params:
- name: input
type: integer
description: "01-16"
- name: delay
type: string
description: "00-255, U, or D; each delay step is 0.25 video frames (60Hz), or 4.1666ms"
- id: audio_output_delay_control_source_notation
label: Audio Output Delay Control Source Notation
kind: action
command: "Daabbb<cr>"
params:
- name: output
type: integer
description: "01-16"
- name: delay
type: string
description: "00-255, U, or D; each delay step is 0.25 video frames (60Hz), or 4.1666ms"
- id: audio_bass_pole_frequency_source_notation
label: Audio Bass Pole Frequency Source Notation
kind: action
command: "BPFbbb<cr>"
params:
- name: frequency
type: integer
description: "00-255; 128 nominal"
- id: audio_internal_ramp_speed_source_notation
label: Audio Internal Ramp Speed Source Notation
kind: action
command: "RTaa<cr>"
params:
- name: speed
type: integer
description: "00-06; 00 is the slowest and 06 is the fastest"
Feedbacks
- id: acknowledge
type: string
pattern: "OK<cr>"
- id: negative_acknowledge
type: string
pattern: "NAK<CR>"
- id: volume_acknowledge
type: string
pattern: "OK:###(M):##<cr>"
- id: device_status
type: string
pattern: "Video Storm LLC CMX##### switch (with HDMI##-##)<cr>"
query_command: "STAT<cr>"
- id: firmware_version
type: string
pattern: "Version 1.X<cr>"
query_command: "STAT<cr>"
- id: component_video_status
type: string
pattern: "V{output}{input}<cr>"
query_command: "STAT<cr>"
- id: analog_audio_status
type: string
pattern: "A{output}{input}<cr>"
query_command: "STAT<cr>"
- id: composite_video_status
type: string
pattern: "P{output}{input}<cr>"
query_command: "STAT<cr>"
- id: digital_coax_status
type: string
pattern: "C{output}{digital_type}<cr>"
query_command: "STAT<cr>"
- id: digital_toslink_status
type: string
pattern: "O{output}{digital_type}<cr>"
query_command: "STAT<cr>"
- id: audio_gain_status
type: string
pattern: "G{output}{gain}(M)<cr>"
query_command: "STATL<cr>"
- id: audio_equalizer_status
type: string
pattern: "E{input}{gain}<cr>"
query_command: "STATL<cr>"
- id: config_status
type: string
pattern: "CF{control}{state}<cr>"
query_command: "STAT<cr>"
- id: input_status_notification
type: string
pattern: "IS{input_state}<cr>"
description: "Six hexadecimal strings; 1 indicates locked/present and 0 indicates no signal"
query_command: "STAT<cr>"
Variables
- id: output_gain
name: Output Gain
type: integer
range: [0, 255]
description: "000 mutes output; otherwise gain(dB) = 31.5 - [0.5 * (255 - value)]"
- id: input_gain
name: Input Gain
type: integer
range: [0, 255]
description: "128 nominal; signal = signal * value / 128 otherwise"
- id: output_balance
name: Output Balance
type: integer
range: [0, 255]
description: "128 nominal; channel scaling depends on value relative to 128"
- id: bass
name: Bass
type: integer
range: [0, 255]
description: "128 nominal"
- id: treble
name: Treble
type: integer
range: [0, 255]
description: "128 nominal"
- id: input_delay
name: Input Delay
type: integer
range: [0, 255]
description: "Each step is 0.25 video frames at 60 Hz, or 4.1666 ms"
- id: output_delay
name: Output Delay
type: integer
range: [0, 255]
description: "Each step is 0.25 video frames at 60 Hz, or 4.1666 ms"
- id: bass_pole_frequency
name: Bass Pole Frequency
type: integer
range: [0, 255]
description: "128 nominal"
- id: internal_ramp_speed
name: Internal Ramp Speed
type: integer
range: [0, 6]
description: "00 slowest and 06 fastest"
Events
- id: input_status_changed
description: "Sent whenever input status changes"
payload: "IS{input_state}<cr>"
Macros
- id: discover_expansion_network
label: Discover Expansion Network
steps:
- "Send repeat('/F', index) + 'STAT<CR>'"
- "Inspect returned status first line"
- "Continue until no status response"
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings, interlock procedures, or power-on sequencing requirements stated in source
Notes
Commands terminate with one ASCII carriage return character, code 0xD. CMX echoes all received characters and does not append line feed after carriage return. Selecting input 00 disables selected output. Expansion forwarding uses /F prefixes immediately after a carriage return. Source identifies CMX86 in network discovery but does not provide a CMX86-only command subset.
Provenance
source_domains:
- video-storm.com
- elanportal.com
source_urls:
- "https://www.video-storm.com/manuals/CMX%20rs232.pdf"
- https://www.elanportal.com/supportdocs/catalog/VideoStorm_CMX.pdf
retrieved_at: 2026-07-22T00:47:51.424Z
last_checked_at: 2026-10-07T13:20:36.168Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T13:20:36.168Z
matched_actions: 54
action_count: 54
confidence: medium
summary: "All 54 action units match source command literals and shapes; serial transport matches; source catalogue essentially fully covered. (4 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- H01bb
- "source does not state CMX86-specific supported output types beyond identifying CMX84, CMX86, and CMX88 as device types."
- "no safety warnings, interlock procedures, or power-on sequencing requirements stated in source"
- "source does not state firmware compatibility range beyond mentioning firmware versions 1.5 and later for volume extensions."
- "source does not specify unsolicited status behavior for all status fields."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0