Summary

RS-232C control spec for the Key Digital Systems KD-MSV16x16 component-video matrix switcher. The KD-MSV16x16 routes up to 16 component-video inputs to 16 independent output zones; control is via RS-232C using ASCII command strings.

Transport

protocols:
  - serial
serial:
  baud_rate: 57600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

# Inferred from command examples in source (Tier 2):
traits:
  - routable   # inferred: SP Oxx SI yy routing commands present
  - queryable  # inferred: ST Oxx / ST A query commands present

Actions

# NOTE: Source is the KD-MSV8X8 command sheet. Address ranges shown as
# [01~08] are the 8x8 documented values; the KD-MSV16x16 likely uses
# [01~16] but this is UNRESOLVED pending the 16x16-specific sheet.
# Commands are NOT case sensitive (source §RS-232 codes). Spaces in the
# documented forms (e.g. "SP Oxx SI yy") are optional/illustrative; the
# payload form omits them (e.g. "SPO03SI07"). Parameterized `command:`
# templates below show the variable parts in braces.
actions:
  - id: io_switching_set
    label: I/O Switching Set
    kind: action
    command: "SPO{output}SI{input}"
    params:
      - name: output
        type: integer
        description: "Output select. Source (8x8): [01~08]. UNRESOLVED for KD-MSV16x16 (likely [01~16])."
      - name: input
        type: integer
        description: "Input select. Source (8x8): [01~08]. UNRESOLVED for KD-MSV16x16 (likely [01~16])."
    notes: "Example from source: SPO03SI07 (output 3 <- input 7). 'O' is the letter O followed by zero, then 2-digit output number."

  - id: unit_address_set
    label: Unit Address Set
    kind: action
    command: "SPCA{address}"
    params:
      - name: address
        type: integer
        description: "2-digit unit address [00~99]. 00 = stand-alone."
    notes: "Example from source: SPCA02 (set address to 2)."

  - id: fade_to_black_interval_set
    label: Fade-to-Black Interval Set
    kind: action
    command: "SPO{output}MI{interval}"
    params:
      - name: output
        type: integer
        description: "Output select. Source (8x8): [01~08]. UNRESOLVED for KD-MSV16x16 (likely [01~16])."
      - name: interval
        type: enum
        description: "Fade-to-black interval code (covers fade-out + switch + fade-in)."
        values:
          - { code: "00", ms: 0 }
          - { code: "01", ms: 40 }
          - { code: "02", ms: 80 }
          - { code: "03", ms: 160 }
          - { code: "04", ms: 240 }
          - { code: "05", ms: 320 }
          - { code: "06", ms: 480 }
          - { code: "07", ms: 640 }
          - { code: "08", ms: 800 }
          - { code: "09", ms: 1200 }
    notes: "Example from source: SPO02MI03 (output 2 fade interval = 160ms)."

  - id: ir_sensor_enable
    label: IR Sensor Enable
    kind: action
    command: "SPCIRE"
    params: []

  - id: ir_sensor_disable
    label: IR Sensor Disable
    kind: action
    command: "SPCIRD"
    params: []

  - id: front_panel_enable
    label: Front Panel Button Enable
    kind: action
    command: "SPCFBE"
    params: []

  - id: front_panel_disable
    label: Front Panel Button Disable
    kind: action
    command: "SPCFBD"
    params: []

  - id: output_video_mute
    label: Output Video Mute
    kind: action
    command: "SPO{output}CME"
    params:
      - name: output
        type: integer
        description: "Output select. Source (8x8): [01~08]. UNRESOLVED for KD-MSV16x16 (likely [01~16])."
    notes: "Example from source: SPO02CME."

  - id: output_video_unmute
    label: Output Video Un-Mute
    kind: action
    command: "SPO{output}CMD"
    params:
      - name: output
        type: integer
        description: "Output select. Source (8x8): [01~08]. UNRESOLVED for KD-MSV16x16 (likely [01~16])."
    notes: "Example from source: SPO05CMD."

  - id: all_outputs_mute
    label: All Outputs Mute
    kind: action
    command: "SPCCME"
    params: []
    notes: "Source example for all-output mute mis-prints 'SPCFBE' (a front-panel command); the documented form is 'SP C CM E' -> SPCCME, used here."

  - id: all_outputs_unmute
    label: All Outputs Un-Mute
    kind: action
    command: "SPCCMD"
    params: []
    notes: "Source example for all-output un-mute mis-prints 'SPCFBD'; documented form 'SP C CM D' -> SPCCMD, used here."

  - id: reset_unit
    label: Reset Unit (Factory Default)
    kind: action
    command: "SPCDF"
    params: []
    notes: "Source documents the mnemonic as 'SP C DF' (trailing quote typo in source); expanded form SPCDF used."

  - id: response_format_numeric
    label: Set Numeric RS-232 Response
    kind: action
    command: "SPCRSN"
    params: []
    notes: "Selects numeric response format for RS-232 command replies."

  - id: response_format_verbose
    label: Set Verbose RS-232 Response
    kind: action
    command: "SPCRSV"
    params: []
    notes: "Selects verbose response format. Source example mis-prints 'SPCFBD'; documented form 'SP C RS V' -> SPCRSV, used here."

  - id: output_status_query
    label: Output Status Query
    kind: query
    command: "STO{output}"
    params:
      - name: output
        type: integer
        description: "Output select. Source (8x8): [01~08]. UNRESOLVED for KD-MSV16x16 (likely [01~16])."
    notes: "Example from source: STO05 (query status of output 5)."

  - id: global_status_query
    label: Global Status Query
    kind: query
    command: "STA"
    params: []
    notes: "Queries the current status of all parameters."

  - id: list_commands
    label: List RS-232 Commands
    kind: query
    command: "H"
    params: []
    notes: "Returns a list of all available RS-232 commands."

  - id: amx_status
    label: AMX Status
    kind: query
    command: "AMX"
    params: []
    notes: "Returns current system status when connected to an AMX control system."

Feedbacks

# Source documents that query commands return responses and that a
# numeric/verbose response mode is selectable, but does not give the
# exact response string formats.
feedbacks:
  - id: output_status_response
    type: string
    description: "Response to ST Oxx query. UNRESOLVED: exact response format not documented in source."
  - id: global_status_response
    type: string
    description: "Response to ST A query. UNRESOLVED: exact response format not documented in source."
  - id: command_list_response
    type: string
    description: "Response to H query - list of available RS-232 commands."
  - id: amx_status_response
    type: string
    description: "Response to AMX query. UNRESOLVED: exact format not documented in source."
  - id: response_mode
    type: enum
    values: [numeric, verbose]
    description: "Selectable RS-232 response format (set via SPCRSN / SPCRSV)."

Variables

variables:
  - name: unit_address
    type: integer
    description: "2-digit unit address [00~99] (00 = stand-alone). Set via SPCA{address}."
  - name: response_format
    type: enum
    values: [numeric, verbose]
    description: "RS-232 response verbosity. Set via SPCRSN / SPCRSV."
  # UNRESOLVED: fade-to-black interval is settable per-output but the
  # source does not document a query to read it back.

Events

# Source documents no unsolicited notifications / push events.
# UNRESOLVED: populate if a 16x16-specific sheet describes events.

Macros

# Source documents no multi-step macro sequences.
# UNRESOLVED: populate if a 16x16-specific sheet describes macros.

Safety

confirmation_required_for:
  - reset_unit  # SPCDF returns unit to factory default - destructive
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock
# procedures, or power-on sequencing requirements. No power on/off
# command is documented (device assumed always-on while powered).

Notes

  • Source is the KD-MSV8X8 RS-232 command list (8x8 sibling), used as protocol-family reference because the KD-MSV16X16-specific sheet at https://www.keydigital.com/Control%20Mods%20Codes/KD-MSV16X16/RS-232/KD-MSV16X16_232_Commands.pdf returns a 301 whose destination was not verified (see recovery notes 2026-06-18). Replace with the 16x16 sheet before publishing.
  • Commands are not case sensitive (source). Spaces in the documented command forms are illustrative only and have no effect when omitted.
  • Address convention: Oxx = the letter O followed by zero, then the 2-digit output number (e.g. O03). This is a common source of off-by-one / O-vs-0 transcription errors.
  • Source contains several apparent typos in worked examples (all-output mute/un-mute examples print SPCFBE/SPCFBD which are front-panel commands; verbose-response example prints SPCFBD). The mnemonic forms (SP C CM E, SP C RS V) were used in preference to the example strings.
  • No power on/off command is documented — device is presumed to follow panel/main power state.

Spec emitted. 18 actions enumerated verbatim from 8x8 source. Source typos noted (`SPCFBE`/`SPCFBD` mis-prints in mute/verbose examples — used mnemonic forms). 16x16 ranges marked UNRESOLVED (source only documents [01~08]). Next step: probe the 301 PDF URL or contact Key Digital for the 16x16 sheet to promote out of draft.

## Provenance

```yaml
source_domains:
  - keydigital.com
  - manualslib.com
source_urls:
  - "http://keydigital.com/Control%20Mods%20Codes/KD-MSV8X8/RS-232/KD-MSV8X8_232_Commands.pdf"
  - "https://www.manualslib.com/manual/871143/Key-Digital-Kd-Hd16x16prok.html?page=7"
  - https://www.keydigital.com
retrieved_at: 2026-06-19T13:00:40.071Z
last_checked_at: 2026-06-22T11:50:24.959Z
```

## Verification Summary

```yaml
verdict: verified
checked_at: 2026-06-22T11:50:24.959Z
matched_actions: 18
action_count: 18
confidence: medium
summary: "All 18 spec actions matched literal commands in source with correct shapes and transport parameters verified. (13 unresolved item(s) noted in Known Gaps.)"
```

## Known Gaps

```yaml
- "The source document consulted is the KD-MSV8X8 RS-232 command list (8x8 sibling, used as protocol-family reference per prior recovery notes). Command structure is assumed identical; only the input/output address range differs (8x8 doc states [01~08]; 16x16 range [01~16] is NOT confirmed by this source and is marked UNRESOLVED on each affected action). A KD-MSV16X16-specific command sheet (URL hinted at https://www.keydigital.com/Control%20Mods%20Codes/KD-MSV16X16/RS-232/KD-MSV16X16_232_Commands.pdf returns a 301 — final destination not verified) should replace this reference before publication."
- "power / voltage / current specs, firmware compatibility, and any 16x16-specific commands not present in the 8x8 sheet are not documented in the source."
- "exact response format not documented in source.\""
- "exact format not documented in source.\""
- "fade-to-black interval is settable per-output but the"
- "populate if a 16x16-specific sheet describes events."
- "populate if a 16x16-specific sheet describes macros."
- "source contains no explicit safety warnings, interlock"
- "KD-MSV16x16 input/output address range ([01~16] presumed, not confirmed)."
- "exact RS-232 response string formats for ST/H/AMX queries."
- "whether the 16x16 model exposes additional commands (e.g. per-zone audio, EDID) absent from the 8x8 sheet."
- "firmware version compatibility."
- "16x16-specific source URL (follow the 301 from the keydigital.com PDF link, or contact Key Digital support)."
```

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