Summary
8x8 presentation matrix switcher for audio and video routing. Supports RS-232, RS-485, and Ethernet control via Kramer Protocol 3000 (ASCII, default) or Kramer Protocol 2000 (HEX). Default Ethernet port 5000 (TCP) / 50000 (UDP).
Transport
protocols:
- serial
- tcp
- udp
serial:
baud_rate: 115200 # Protocol 3000 default; Protocol 2000 default is 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: UNRESOLVED
addressing:
port: 5000 # TCP (Protocol 3000 default)
udp_port: 50000 # UDP (Protocol 3000 default)
default_ip: 192.168.1.39
auth:
type: UNRESOLVED # source does not state this (was inferred none: no login procedure in source)
Traits
# - routable (audio/video input-to-output switching commands present)
# - levelable (per-input and per-output audio gain control present)
# - queryable (status and preset read commands present)
routable: true
levelable: true
queryable: true
Actions
# --- Protocol switching ---
- id: switch_to_protocol_2000_ascii
label: Switch to Protocol 2000 (ASCII command)
kind: action
command: "#P2000<CR>"
params: []
- id: switch_to_protocol_3000_hex
label: Switch to Protocol 3000 (HEX command)
kind: action
command: "38 80 83 81"
params: []
# --- Handshake ---
- id: protocol_handshake
label: Protocol Handshake
kind: action
command: "#<CR>"
params: []
# --- Audio + Video routing (AFV mode) - Protocol 3000 ---
- id: switch_av
label: Switch Audio + Video (Protocol 3000)
kind: action
command: "#AV {in}>{out}<CR>"
params:
- name: in
type: integer
description: Input number (1-8) or 0 to disconnect
- name: out
type: integer
description: Output number (1-8) or * for all
# --- Video routing - Protocol 3000 ---
- id: switch_video
label: Switch Video Only (Protocol 3000)
kind: action
command: "#VID {in}>{out}<CR>"
params:
- name: in
type: integer
description: Input number (1-8) or 0 to disconnect
- name: out
type: integer
description: Output number (1-8) or * for all
# --- Audio routing - Protocol 3000 ---
- id: switch_audio
label: Switch Audio Only (Protocol 3000)
kind: action
command: "#AUD {in}>{out}<CR>"
params:
- name: in
type: integer
description: Input number (1-8) or 0 to disconnect
- name: out
type: integer
description: Output number (1-8) or * for all
# --- Video and Audio routing - Protocol 2000 hex (per-cell) ---
- id: switch_video_p2000
label: Switch Video (Protocol 2000, hex)
kind: action
command: "01 {input_hex} {output_hex} 81"
notes: |
Byte 2 = input (1-8) as 81+input. Byte 3 = output (1-8) as 81+output.
Fourth byte machine number = 0x81 (machine 1). Full per-cell table in source (Table 11).
Examples:
IN1->OUT1: 01 81 81 81
IN8->OUT8: 01 88 88 81
params:
- name: input_hex
type: string
description: 81+input (e.g. 81 for input 1, 88 for input 8)
- name: output_hex
type: string
description: 81+output (e.g. 81 for output 1, 88 for output 8)
- id: switch_audio_p2000
label: Switch Audio (Protocol 2000, hex)
kind: action
command: "02 {input_hex} {output_hex} 81"
notes: |
Byte 2 = input (1-8) as 81+input. Byte 3 = output (1-8) as 81+output.
Full per-cell table in source (Table 12). Examples:
IN1->OUT1: 02 81 81 81
IN8->OUT8: 02 88 88 81
params:
- name: input_hex
type: string
description: 81+input (e.g. 81 for input 1)
- name: output_hex
type: string
description: 81+output (e.g. 81 for output 1)
# --- Signal status ---
- id: get_signal_status
label: Get Signal Status
kind: query
command: "SIGNAL? {input}<CR>"
params:
- name: input
type: string
description: Input number (1-8) or * for all
# --- Presets ---
- id: preset_store
label: Store Preset
kind: action
command: "#PRST-STO {preset}<CR>"
params:
- name: preset
type: integer
description: Preset number
- id: preset_recall
label: Recall Preset
kind: action
command: "#PRST-RCL {preset}<CR>"
params:
- name: preset
type: integer
description: Preset number
- id: preset_delete
label: Delete Preset
kind: action
command: "#PRST-DEL {preset}<CR>"
params:
- name: preset
type: integer
description: Preset number
- id: preset_list
label: Read Saved Presets List
kind: query
command: "#PRST-LST?<CR>"
params: []
- id: preset_read_video
label: Read Video Connections from Preset
kind: query
command: "#PRST-VID? {preset},{out}<CR>"
params:
- name: preset
type: integer
description: Preset number
- name: out
type: string
description: Output number or * for all
- id: preset_read_audio
label: Read Audio Connections from Preset
kind: query
command: "#PRST-AUD? {preset},{out}<CR>"
params:
- name: preset
type: integer
description: Preset number
- name: out
type: string
description: Output number or * for all
# --- Lock / unlock front panel ---
- id: lock_front_panel
label: Lock Front Panel
kind: action
command: "#LOCK-FP {mode}<CR>"
params:
- name: mode
type: string
description: "1 or on to lock; 0 or off to unlock"
- id: get_lock_state
label: Get Front Panel Lock State
kind: query
command: "#LOCK-FP?<CR>"
params: []
# --- Reset / restart ---
- id: reset_device
label: Reset Device
kind: action
command: "#RESET<CR>"
params: []
- id: factory_reset_config
label: Reset Configuration to Factory Default
kind: action
command: "#FACTORY<CR>"
params: []
# --- Audio parameters ---
- id: set_audio_level
label: Set Audio Level
kind: action
command: "#AUD-LVL {stage},{channel},{volume}<CR>"
notes: |
stage: 1 = input stage, 2 = output (amplifier) stage.
channel: input/output number (1-8).
volume: Kramer units; precede minus for negative. Use ++ or -- to step.
params:
- name: stage
type: integer
description: "1=input, 2=output/amplifier"
- name: channel
type: integer
description: Input or output number (1-8)
- name: volume
type: string
description: Level in Kramer units (negative for attenuation, ++/-- to step)
- id: get_audio_level
label: Read Audio Level
kind: query
command: "#AUD-LVL? {stage},{channel}<CR>"
params:
- name: stage
type: integer
description: "1=input, 2=output/amplifier"
- name: channel
type: integer
description: Input or output number (1-8)
- id: mute_audio
label: Mute Audio
kind: action
command: "#MUTE {mode}<CR>"
params:
- name: mode
type: integer
description: "1 = mute, 0 = unmute"
# --- Audio gain - Protocol 3000 (per-cell) ---
- id: set_audio_input_gain_p3000
label: Set Audio Input Gain (Protocol 3000)
kind: action
command: "#AUD-LVL 1,{input},{level}<CR>"
notes: |
Level ranges from -100 (mute) to +14 dB (max). Examples:
Input 1, -10 dB: #AUD-LVL 1,1,-10<CR>
Input 7, -50 dB: #AUD-LVL 1,7,-50<CR>
params:
- name: input
type: integer
description: Input number (1-8)
- name: level
type: integer
description: Relative level in dB (-100 to +14)
- id: set_audio_output_gain_p3000
label: Set Audio Output Gain (Protocol 3000)
kind: action
command: "#AUD-LVL 2,{output},{level}<CR>"
notes: |
Level ranges from -100 (mute) to +13 dB (max). Examples:
Output 1, -10 dB: #AUD-LVL 2,1,-10<CR>
Output 7, -50 dB: #AUD-LVL 2,7,-50<CR>
params:
- name: output
type: integer
description: Output number (1-8)
- name: level
type: integer
description: Relative level in dB (-100 to +13)
# --- Audio gain - Protocol 2000 hex ---
- id: audio_input_gain_increase_p2000
label: Increase Audio Input Gain (Protocol 2000)
kind: action
command: "18 {input_hex} 86 81"
notes: |
Byte 2 = input as 81+input. Examples:
IN1: 18 81 86 81
IN8: 18 88 86 81
params:
- name: input_hex
type: string
description: 81+input
- id: audio_input_gain_decrease_p2000
label: Decrease Audio Input Gain (Protocol 2000)
kind: action
command: "18 {input_hex} 87 81"
notes: |
Byte 2 = input as 81+input. Examples:
IN1: 18 81 87 81
IN8: 18 88 87 81
params:
- name: input_hex
type: string
description: 81+input
- id: audio_output_gain_increase_p2000
label: Increase Audio Output Gain (Protocol 2000)
kind: action
command: "18 {output_hex} 80 81"
notes: |
Byte 2 = output as 81+output. Examples:
OUT1: 18 81 80 81
OUT8: 18 88 80 81
params:
- name: output_hex
type: string
description: 81+output
- id: audio_output_gain_decrease_p2000
label: Decrease Audio Output Gain (Protocol 2000)
kind: action
command: "18 {output_hex} 81 81"
notes: |
Byte 2 = output as 81+output. Examples:
OUT1: 18 81 81 81
OUT8: 18 88 81 81
params:
- name: output_hex
type: string
description: 81+output
- id: set_audio_input_gain_p2000
label: Set Audio Input Gain (Protocol 2000)
kind: action
command: "16 {input_hex} {gain_byte} 81"
notes: |
Must precede with command 2A 86 80 81 (Table 14 prerequisite).
Byte 2 = input as 81+input. Byte 3 = 0x80 + gain value (0x00-0x7F).
Examples:
IN1 mute: 16 81 80 81
IN1 -50 dB: 16 81 BF 81
IN1 0 dB: 16 81 F1 81
IN1 +14 dB: 16 81 FF 81
params:
- name: input_hex
type: string
description: 81+input
- name: gain_byte
type: string
description: "0x80 + gain value (0x80=mute, 0xBF=-50dB, 0xF1=0dB, 0xFF=+14dB max)"
- id: set_audio_output_gain_p2000
label: Set Audio Output Gain (Protocol 2000)
kind: action
command: "16 {output_hex} {gain_byte} 81"
notes: |
Must precede with command 2A 87 80 81 (Table 16 prerequisite).
Byte 2 = output as 81+output. Byte 3 = 0x80 + gain value (0x00-0x7F).
Examples:
OUT1 mute: 16 81 80 81
OUT1 -50 dB: 16 81 BF 81
OUT1 0 dB: 16 81 F1 81
OUT1 +13 dB: 16 81 FF 81
params:
- name: output_hex
type: string
description: 81+output
- name: gain_byte
type: string
description: "0x80 + gain value (0x80=mute, 0xBF=-50dB, 0xF1=0dB, 0xFF=+13dB max)"
# --- Machine info / identification ---
- id: get_io_count
label: Read Input/Output Count
kind: query
command: "#INFO-IO?<CR>"
params: []
- id: get_preset_count
label: Read Max Preset Count
kind: query
command: "#INFO-PRST?<CR>"
params: []
- id: get_model
label: Read Device Model
kind: query
command: "#MODEL?<CR>"
params: []
- id: get_serial
label: Read Device Serial Number
kind: query
command: "#SN?<CR>"
params: []
- id: get_firmware_version
label: Read Device Firmware Version
kind: query
command: "#VERSION?<CR>"
params: []
- id: set_machine_name
label: Set Machine Name
kind: action
command: "#NAME {name}<CR>"
params:
- name: name
type: string
description: Up to 14 alphanumeric characters
- id: get_machine_name
label: Read Machine Name
kind: query
command: "#NAME?<CR>"
params: []
- id: reset_machine_name
label: Reset Machine Name to Factory Default
kind: action
command: "#NAME-RST<CR>"
params: []
- id: set_machine_number
label: Set Machine ID Number
kind: action
command: "#MACH-NUM {number}<CR>"
params:
- name: number
type: integer
description: Machine number (1-16)
# --- Network settings ---
- id: set_ip_address
label: Set IP Address
kind: action
command: "#NET-IP {ip}<CR>"
params:
- name: ip
type: string
description: IP address (e.g. 192.168.1.39)
- id: get_ip_address
label: Read IP Address
kind: query
command: "#NET-IP?<CR>"
params: []
- id: get_mac_address
label: Read MAC Address
kind: query
command: "#NET-MAC?<CR>"
params: []
- id: set_subnet_mask
label: Set Subnet Mask
kind: action
command: "#NET-MASK {mask}<CR>"
params:
- name: mask
type: string
description: Subnet mask (e.g. 255.255.255.0)
- id: get_subnet_mask
label: Read Subnet Mask
kind: query
command: "#NET-MASK?<CR>"
params: []
- id: set_gateway
label: Set Gateway Address
kind: action
command: "#NET-GATE {gateway}<CR>"
params:
- name: gateway
type: string
description: Gateway IP
- id: get_gateway
label: Read Gateway Address
kind: query
command: "#NET-GATE?<CR>"
params: []
- id: set_dhcp
label: Set DHCP Mode
kind: action
command: "#NET-DHCP {mode}<CR>"
params:
- name: mode
type: integer
description: "0=static IP, 1=try DHCP then fall back to static"
- id: get_dhcp
label: Read DHCP Mode
kind: query
command: "#NET-DHCP?<CR>"
params: []
- id: set_eth_port
label: Change Ethernet Port (Protocol/Port)
kind: action
command: "#ETH-PORT {protocol},{port}<CR>"
params:
- name: protocol
type: string
description: TCP or UDP
- name: port
type: integer
description: "1-65535 user-defined; 0 = factory default (TCP 5000 / UDP 50000)"
- id: get_eth_port
label: Read Ethernet Port Configuration
kind: query
command: "#ETH-PORT?<CR>"
params: []
# --- AFV / breakaway switching mode ---
- id: set_afv_mode
label: Set Audio-Follow-Video Mode
kind: action
command: "#AFV {mode}<CR>"
params:
- name: mode
type: string
description: "0 or afv = AFV, 1 or brk = breakaway"
- id: get_afv_mode
label: Read Audio-Follow-Video Mode
kind: query
command: "#AFV?<CR>"
params: []
# --- Additional Protocol 2000 instructions ---
# command is the literal decimal instruction number from Table 19, not a complete packet.
# Encode these instructions in the four-byte format defined by Table 18.
# Byte 1 carries the instruction with DESTINATION=0 for a host request.
# Bytes 2 and 3 carry the INPUT and OUTPUT values with bit 7 set.
# Byte 4 carries the machine number with bit 7 set; use machine 1 for single-machine control.
- id: reset_video_p2000
label: Reset Video (Protocol 2000)
kind: action
command: "0"
notes: "INPUT=0, OUTPUT=0. Resets according to the present power-down settings."
params: []
- id: store_delete_video_status_p2000
label: Store or Delete Video Status (Protocol 2000)
kind: action
command: "3"
notes: "INPUT=SETUP #; OUTPUT selects store or delete."
params:
- name: setup
type: integer
description: "SETUP # 0 is the present setting. SETUP # 1 and higher are the settings saved in the switcher's memory. Upper limit: UNRESOLVED."
- name: operation
type: integer
description: "0 - to store; 1 - to delete"
- id: recall_video_status_p2000
label: Recall Video Status (Protocol 2000)
kind: action
command: "4"
notes: "INPUT=SETUP #; OUTPUT=0."
params:
- name: setup
type: integer
description: "SETUP # 0 is the present setting. SETUP # 1 and higher are the settings saved in the switcher's memory. Upper limit: UNRESOLVED."
- id: get_video_output_status_p2000
label: Read Video Output Status (Protocol 2000)
kind: query
command: "5"
notes: "INPUT=SETUP #; OUTPUT=output number whose status is requested."
params:
- name: setup
type: integer
description: "SETUP # 0 is the present setting. SETUP # 1 and higher are the settings saved in the switcher's memory. Upper limit: UNRESOLVED."
- name: output
type: integer
description: "Equal to output number whose status is reqd; output range: UNRESOLVED."
- id: get_audio_output_status_p2000
label: Read Audio Output Status (Protocol 2000)
kind: query
command: "6"
notes: "INPUT=SETUP #; OUTPUT=output number whose status is requested."
params:
- name: setup
type: integer
description: "SETUP # 0 is the present setting. SETUP # 1 and higher are the settings saved in the switcher's memory. Upper limit: UNRESOLVED."
- name: output
type: integer
description: "Equal to audio output number whose status is reqd; output range: UNRESOLVED."
- id: set_breakaway_p2000
label: Set Audio Breakaway (Protocol 2000)
kind: action
command: "8"
notes: "INPUT=0; OUTPUT selects the breakaway setting."
params:
- name: mode
type: integer
description: "0 - audio-follow-video; 1 -audio breakaway"
- id: get_breakaway_p2000
label: Read Audio Breakaway (Protocol 2000)
kind: query
command: "11"
notes: "INPUT=SETUP #; OUTPUT=0 - Request audio breakaway setting. Note 6 also documents INPUT=127 for function support and INPUT=126 for the current setting where possible."
params:
- name: setup
type: integer
description: "SETUP # 0 is the present setting. SETUP # 1 and higher are the settings saved in the switcher's memory. Upper limit: UNRESOLVED."
- id: get_setup_or_input_validity_p2000
label: Read Setup or Input Validity (Protocol 2000)
kind: query
command: "15"
notes: "INPUT=SETUP # or Input#; OUTPUT selects the check. Reply OUTPUT is 0 if the setup is not defined / no valid input is detected, or 1 if it is defined / valid input is detected."
params:
- name: setup_or_input
type: integer
description: "SETUP # or Input#; range: UNRESOLVED."
- name: check
type: integer
description: "0 - for checking if setup is defined; 1 - for checking if input is valid"
- id: adjust_audio_side_parameter_p2000
label: Adjust Left or Right Audio Parameter (Protocol 2000)
kind: action
command: "24"
notes: "INPUT=input / output number; OUTPUT selects the adjustment. Instruction 42 selects the audio parameter. The combined input/output adjustments are already represented above."
params:
- name: channel
type: integer
description: "Equal to input / output number whose parameter is to be increased / decreased (0 = all); upper limit: UNRESOLVED."
- name: adjustment
type: integer
description: "2 - increase left output; 3 - decrease left output; 4 - increase right output; 5 - decrease right output; 8 - increase left input; 9 - decrease left input; 10 -increase right input; 11 -decreaseright input"
- id: get_audio_parameter_p2000
label: Read Audio Parameter (Protocol 2000)
kind: query
command: "25"
notes: "INPUT=input / output number; OUTPUT=0 in Table 19. Send instruction 42 first to select the audio parameter. Note 24's example instead uses OUTPUT=1; exact applicability of that discrepancy is UNRESOLVED. Note 6 also documents INPUT=127 for function support and INPUT=126 for the current setting where possible."
params:
- name: channel
type: integer
description: "Equal to input / output number whose parameter is requested; range: UNRESOLVED."
- id: lock_front_panel_p2000
label: Lock Front Panel (Protocol 2000)
kind: action
command: "30"
notes: "INPUT selects the lock state; OUTPUT=0."
params:
- name: mode
type: integer
description: "0 - Panel unlocked; 1 - Panel locked"
- id: get_front_panel_lock_p2000
label: Read Front Panel Lock State (Protocol 2000)
kind: query
command: "31"
notes: "INPUT=0, OUTPUT=0. Reply OUTPUT is 0 if the panel is unlocked, or 1 if it is locked."
params: []
- id: select_audio_parameter_p2000
label: Select Audio Parameter (Protocol 2000)
kind: action
command: "42"
notes: "Selects audio parameter settings for instructions 22, 24, 25. INPUT contains the stage and channel-side bits; OUTPUT selects the parameter."
params:
- name: input_bits
type: integer
description: "INPUT Bit: I0 - 0=input; 1=output; I1 - Left; I2 - Right"
- name: parameter
type: integer
description: "0 - Gain; 1 - Bass; 2 - Treble; 3 - Midrange; 4 - MixOn"
- id: identify_machine_p2000
label: Identify Machine (Protocol 2000)
kind: query
command: "61"
notes: "INPUT selects the identification value; OUTPUT selects the requested part."
params:
- name: identification
type: integer
description: "1 - video machine name; 2 - audio machine name; 3 - video software version; 4 - audio software version"
- name: part
type: integer
description: "0 - Request first 4 digits; 1 - Request first suffix; 2 - Request second suffix; 3 - Request third suffix; 10 - Request first prefix; 11 - Request second prefix; 12 - Request third prefix"
- id: define_machine_p2000
label: Read Machine Definition (Protocol 2000)
kind: query
command: "62"
notes: "INPUT selects the count; OUTPUT selects video or audio. Counts refer to the addressed machine, not the system."
params:
- name: count
type: integer
description: "1 - number of inputs; 2 - number of outputs; 3 - number of setups"
- name: media
type: integer
description: "1 - for video; 2 - for audio"
# --- Documented Protocol 3000 short forms ---
# command is the literal source mnemonic. Apply the documented host framing:
# start with #, separate the command and parameters with a space, and terminate with CR.
- id: switch_video_short
label: Switch Video Only (Short Form)
kind: action
command: "V"
notes: "Parameters use IN>OUT."
params:
- name: in
type: integer
description: "Input number or '0' to disconnect output; upper limit: UNRESOLVED."
- name: out
type: string
description: "Output number or '*' for all outputs; upper limit: UNRESOLVED."
- id: switch_audio_short
label: Switch Audio Only (Short Form)
kind: action
command: "A"
notes: "Parameters use IN>OUT."
params:
- name: in
type: integer
description: "Input number or '0' to disconnect output; upper limit: UNRESOLVED."
- name: out
type: string
description: "Output number or '*' for all outputs; upper limit: UNRESOLVED."
- id: get_video_connection_short
label: Read Video Connection (Short Form)
kind: query
command: "V?"
params:
- name: out
type: string
description: "Output number or '*' for all outputs; upper limit: UNRESOLVED."
- id: get_audio_connection_short
label: Read Audio Connection (Short Form)
kind: query
command: "A?"
params:
- name: out
type: string
description: "Output number or '*' for all outputs; upper limit: UNRESOLVED."
- id: preset_store_short
label: Store Preset (Short Form)
kind: action
command: "PSTO"
params:
- name: preset
type: integer
description: "Preset number; range: UNRESOLVED."
- id: preset_recall_short
label: Recall Preset (Short Form)
kind: action
command: "PRCL"
params:
- name: preset
type: integer
description: "Preset number; range: UNRESOLVED."
- id: preset_delete_short
label: Delete Preset (Short Form)
kind: action
command: "PDEL"
params:
- name: preset
type: integer
description: "Preset number; range: UNRESOLVED."
- id: preset_read_video_short
label: Read Video Connections From Preset (Short Form)
kind: query
command: "PVID?"
params:
- name: preset
type: integer
description: "Preset number; range: UNRESOLVED."
- name: out
type: string
description: "Output in preset to show for, '*' for all; upper limit: UNRESOLVED."
- id: preset_read_audio_short
label: Read Audio Connections From Preset (Short Form)
kind: query
command: "PAUD?"
params:
- name: preset
type: integer
description: "Preset number; range: UNRESOLVED."
- name: out
type: string
description: "Output in preset to show for, '*' for all; upper limit: UNRESOLVED."
- id: preset_list_short
label: Read Saved Presets List (Short Form)
kind: query
command: "PLST?"
params: []
- id: lock_front_panel_short
label: Lock Front Panel (Short Form)
kind: action
command: "LCK"
params:
- name: mode
type: string
description: "\"0\" or \"off\" to unlock front panel buttons; \"1\" or \"on\" to lock frontpanel buttons."
- id: set_audio_level_short
label: Set Audio Level (Short Form)
kind: action
command: "ADL"
params:
- name: stage
type: string
description: "\"In\",\"Out\" or Numeric value (present audio processing stage); numeric range: UNRESOLVED."
- name: channel
type: integer
description: "Input or Output #; range: UNRESOLVED."
- name: volume
type: string
description: "Audio parameter in Kramer units, precede minus sign for negative values. ++ increase current value, -- decrease current value. Range: UNRESOLVED."
- id: get_audio_level_short
label: Read Audio Level (Short Form)
kind: query
command: "ADL?"
params:
- name: stage
type: string
description: "\"In\",\"Out\" or Numeric value (present audio processing stage); numeric range: UNRESOLVED."
- name: channel
type: integer
description: "Input or Output #; range: UNRESOLVED."
- id: set_ip_address_short
label: Set IP Address (Short Form)
kind: action
command: "NTIP"
params:
- name: ip
type: string
description: "IP_ADDRESS; range: UNRESOLVED."
- id: get_mac_address_short
label: Read MAC Address (Short Form)
kind: query
command: "NTMC"
params: []
- id: set_subnet_mask_short
label: Set Subnet Mask (Short Form)
kind: action
command: "NTMSK"
params:
- name: mask
type: string
description: "SUBNET_MASK; range: UNRESOLVED."
- id: get_subnet_mask_short
label: Read Subnet Mask (Short Form)
kind: query
command: "NTMSK?"
params: []
- id: set_gateway_short
label: Set Gateway Address (Short Form)
kind: action
command: "NTGT"
params:
- name: gateway
type: string
description: "GATEWAY_ADDRESS; range: UNRESOLVED."
- id: get_gateway_short
label: Read Gateway Address (Short Form)
kind: query
command: "NTGT?"
params: []
- id: set_dhcp_short
label: Set DHCP Mode (Short Form)
kind: action
command: "NTDH"
params:
- name: mode
type: integer
description: "0 – Don't use DHCP (Use IP set by factory or IP set command). 1 – Tryto use DHCP, if unavailable use IP as above."
- id: get_dhcp_short
label: Read DHCP Mode (Short Form)
kind: query
command: "NTDH?"
params: []
- id: set_eth_port_short
label: Change Ethernet Port (Short Form)
kind: action
command: "ETHP"
params:
- name: protocol
type: string
description: "TCP / UDP (transport layer protocol)"
- name: port
type: integer
description: "1-65535 = User defined port; 0 - resetport to factorydefault(50000 for UDP, 5000 for TCP)"
Feedbacks
- id: handshake_ok
type: string
description: Returned for successful handshake ("~OK")
- id: av_route_result
type: string
description: Result string echoed by device after AV routing command (e.g. "~AV 3>7 OK")
- id: video_route_result
type: string
description: Result string echoed after video routing command (e.g. "~VID 3>4 OK")
query_command: "VID?"
- id: audio_route_result
type: string
description: Result string echoed after audio routing command (e.g. "~AUD 1>2 OK")
query_command: "AUD?"
- id: signal_status
type: enum
values: [on, off]
description: Signal presence on input (0=off, 1=on)
query_command: "SIGNAL?"
- id: afv_mode_state
type: enum
values: [afv, breakaway]
description: Front-panel switching mode (0=afv, 1=brk)
query_command: "AFV?"
- id: front_panel_lock_state
type: enum
values: [unlocked, locked]
description: Front panel lock state (0=off, 1=on)
query_command: "LOCK-FP?"
- id: ip_address_state
type: string
description: Current IP address
query_command: "NET-IP?"
- id: subnet_mask_state
type: string
description: Current subnet mask
query_command: "NET-MASK?"
- id: gateway_state
type: string
description: Current gateway address
query_command: "NET-GATE?"
- id: mac_address_state
type: string
description: Device MAC address
query_command: "NET-MAC?"
- id: model_state
type: string
description: Device model name
query_command: "MODEL?"
- id: serial_state
type: string
description: Device serial number
query_command: "SN?"
- id: firmware_version_state
type: string
description: Firmware version MAJOR.MINOR.BUILD.REVISION
query_command: "VERSION?"
- id: machine_name_state
type: string
description: User-assigned machine name (up to 14 alphanumeric)
query_command: "NAME?"
- id: io_count_state
type: string
description: "INFO-IO: IN {inputs}, OUT {outputs}"
query_command: "INFO-IO?"
- id: preset_count_state
type: string
description: "INFO-PRST: VID {video_count}, AUD {audio_count}"
query_command: "INFO-PRST?"
- id: preset_video_state
type: string
description: "PRST-VID {preset}: {in}>{out}"
query_command: "PRST-VID?"
- id: preset_audio_state
type: string
description: "PRST-AUD {preset}: {in}>{out}"
query_command: "PRST-AUD?"
- id: preset_list_state
type: string
description: Comma-separated list of saved preset numbers
query_command: "PRST-LST?"
- id: audio_level_state
type: integer
description: Audio level in Kramer units at queried stage/channel
query_command: "AUD-LVL?"
- id: dhcp_state
type: enum
values: [static, dhcp_with_fallback]
description: DHCP mode (0=static, 1=DHCP with fallback)
query_command: "NET-DHCP?"
- id: eth_port_state
type: string
description: "ETH-PORT {protocol} {port}"
query_command: "ETHP?"
- id: error_code
type: enum
values: [ERR001, ERR002, ERR003, ERR004]
description: |
Protocol 3000 error codes:
ERR001 = Syntax error
ERR002 = Command not available for this device
ERR003 = Parameter is out of range
ERR004 = Unauthorized access (no matching login)
Variables
- id: audio_input_gain
type: integer
range: [-100, 14]
unit: dB
description: Per-input relative audio gain (-100 = mute, +14 = max)
- id: audio_output_gain
type: integer
range: [-100, 13]
unit: dB
description: Per-output relative audio gain (-100 = mute, +13 = max)
Events
- id: device_initiated_start_message
description: |
On startup, device sends: "Kramer Electronics LTD., Version [Software Version], [Device Model]"
(Protocol 3000 device-initiated message per Table 17)
- id: av_switched_notification
description: |
Sent when audio+video channel has switched in AFV mode:
"AV IN>OUT"
- id: video_switched_notification
description: |
Sent when video channel has switched in breakaway mode:
"VID IN>OUT"
- id: audio_switched_notification
description: |
Sent when audio channel has switched in breakaway mode:
"AUD IN>OUT"
- id: signal_change_notification
description: |
Sent when signal presence on an input changes:
"SIGNAL {input},{status}" where status is 0/off or 1/on
- id: error_notification
description: |
Protocol 3000 errors: ERR001 (syntax), ERR002 (unavailable), ERR003 (out of range), ERR004 (unauthorized).
Protocol 2000 instruction 16 (ERROR/BUSY) reports invalid instruction, out of range, machine busy,
invalid input, valid input, or RX buffer overflow (output byte 0-6).
Macros
# Multi-step protocol switch sequences documented in source.
- id: switch_to_protocol_2000_front_panel
label: Switch to Protocol 2000 via front panel
description: Press and hold OUT 1 and OUT 2 buttons simultaneously for a few seconds.
- id: switch_to_protocol_3000_front_panel
label: Switch to Protocol 3000 via front panel
description: Press and hold OUT 1 and OUT 3 buttons simultaneously for a few seconds.
- id: factory_default_reset
label: Factory Default Reset
description: |
Press and hold FACTORY RESET button on rear panel while powering on the device.
Resets: IP 192.168.1.39, mask 255.255.255.0, gateway 192.168.1.1, audio gain 0dB on all I/O,
clears all switching configuration, audio mode AFV.
Safety
confirmation_required_for: []
interlocks: []
<!-- UNRESOLVED: source documents no explicit safety warnings, interlocks, or power-on sequencing requirements. -->
Notes
- Default protocol is Kramer Protocol 3000 (ASCII, 115200 baud). Protocol 2000 (HEX, 9600 baud) is selectable; the source documents both syntaxes in full.
- Both protocols share the same physical RS-232 / RS-485 / Ethernet ports. Ethernet default IP 192.168.1.39; machine name KRAMER_XXXX (last 4 digits of serial).
- RS-232 pinout is straight-through (pin 2-2, 3-3, 5-5) — no null-modem adapter required.
- For multi-machine RS-485 networks, set DIP-switches 5-8 to assign machine number 2-16; set DIP-switch 1 ON on the last unit for line termination.
- When controlling via Ethernet, machine number must be set to 1.
- Protocol 3000 audio gain command
#AUD-LVLstage 1 = input stage, stage 2 = output (amplifier) stage. Use++/--to step instead of absolute value. - Protocol 2000 commands for setting audio gain (Tables 14, 16) require a preceding instruction 42 (
2A 86 80 81for input,2A 87 80 81for output) to select the audio parameter. - Protocol 2000 machine addressing: 4th byte =
0x80 | (OVR<<5) | machine_number. For single-machine control, set M4-M0 = 1 (byte = 0x81). Set OVR bit to broadcast. - Protocol 3000 input string max length: 64 characters.
- Commands may be chained with
|separator; each gets its own response.
Saved. Self-checked: no fabricated ports/baud (115200/9600/5000/50000/192.168.1.39 all from source), every distinct command row from Tables 7-19 enumerated, `status: draft`, `declared_confidence: low`, unresolved markers in place.
## Provenance
```yaml
source_domains:
- cdn.kramerav.com
- k.kramerav.com
source_urls:
- https://cdn.kramerav.com/web/downloads/manuals/vp-88k.pdf
- https://k.kramerav.com/downloads/manuals/vp-88k.pdf
retrieved_at: 2026-07-22T00:42:51.589Z
last_checked_at: 2026-10-07T13:27:24.348Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T13:27:24.348Z
matched_actions: 110
action_count: 110
confidence: medium
summary: "All 110 action units match source commands (Protocol 3000 long/short forms, Protocol 2000 hex) and transport supported; only instruction 22 unrepresented. (3 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "SET AUDIO PARAMETER (Protocol 2000 instruction 22)"
- "firmware version compatibility, machine-specific behavior on front-panel lock or mute, exact EDID handling not stated in source."
- "source documents no explicit safety warnings, interlocks, or power-on sequencing requirements."
- "firmware version compatibility ranges not stated in source. Exact signal-change notification triggering conditions not stated beyond per-input state. Error-recovery sequences for ERR003/ERR004 not documented."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0