Summary
The Extron DXP 42 HD 4K PLUS is an HDMI matrix switcher (4 inputs x 2 outputs, HDCP 2.x, 4K UHD) in the DXP HD 4K PLUS Series. This spec covers the Simple Instruction Set (SIS) ASCII command protocol used to configure and control the switcher over the rear-panel Remote RS-232 connector, Telnet/TCP (Ethernet LAN), or USB. SIS commands are plain ASCII strings terminated by carriage return / line feed; the switcher replies with status or an error code.
Transport
protocols:
- serial
- tcp
addressing:
# UNRESOLVED: TCP/Telnet port number not stated in source (Tier 3 - do not assume 23)
port: null
base_ip_default: 192.168.254.254 # stated factory-default IP
serial:
baud_rate: 9600 # stated default (range 300-115200)
data_bits: 8 # stated default (alt: 7)
parity: none # stated default (alt: Odd/Even/Mark/Space)
stop_bits: 1 # stated default (alt: 2)
flow_control: null # UNRESOLVED: flow control not stated in source
auth:
type: password # optional, two levels: administrator and user
notes: >
Optional password protection. Default both administrator and user
passwords are empty (carriage return). Passwords case-sensitive, 0-128
chars, pipe (|) invalid. Login reply: "Login Administrator" or "Login User".
Setting/clearing commands: E{pwd}CA} (admin), E{pwd}CU} (user).
terminator:
host_to_device: none # "No special characters are required to begin or end a command sequence"
device_to_host: "CR/LF" # all responses end with carriage return + line feed (symbol "]")
escape_char: "ESC (0x1B)" # many SIS commands prefixed with ESC (symbol "E")
Traits
traits:
- routable # inferred: input/output tie commands present
- queryable # inferred: view/query commands return state
- levelable # inferred: volume and attenuation level commands present
Actions
# Symbol legend (verbatim from source):
# X! = input number (0 = untie; 1..max inputs)
# X@ = output number (0 = untie; 1..max outputs)
# X# = enable/disable (0/1)
# X$ = name (16 alphanumerics; 12 for rooms)
# X% = analog audio / S/PDIF output number
# X^ = HDCP authorized device (0 block / 1 allow, default)
# X* = output format (0 passthrough / 1 RGB / 2 YUV444 / 3 YUV422)
# X1) = HDCP mode (0 auto / 1 on)
# X1@ = video mute (0 off / 1 video / 2 video+sync)
# X1# = audio mute (0..7; outputs 3-8 limited to 0/1)
# X1% = input attenuation (-20..00 dB, 00 default)
# X1^ = output volume (0..100 %, ~1 dB steps; 100 default)
# X1& = global preset number (1..16)
# X1* = room number (1..10)
# X1( = room preset number (1..10)
# X2) = front panel lockout mode (0 / 1 / 2 default)
# X2# = verbose mode (0 / 1 / 2 / 3)
# X2$ = power save mode (0 / 1 / 2)
# X3% = port timeout (1..65000 in 10-sec intervals; 30 default)
# X3^ = device name (<=63 alnum/hyphen)
# X4% = serial port number (01..99)
# X4^ = baud rate (9600/19200/38400/115200)
# X4& = parity (O/E/N/M/S, first letter only)
# X4* = data bits (7/8)
# X4( = stop bits (1/2)
# X5$ = MKP mode (1 normal 1-64 / 2 MKP 1-100)
# "E" = ESC character (0x1B); "}" = CR (no LF); "]" = CR/LF
# --- Input and Output Tie Commands ---
- id: tie_input_to_hdmi_and_audio_output
label: Tie HDMI Input to HDMI and Audio Output
kind: action
command: "{X!}*{X@}!"
params:
- {name: X!, type: integer, description: Input number (0 = untie)}
- {name: X@, type: integer, description: Output number}
- id: tie_input_to_hdmi_output
label: Tie HDMI Input to HDMI Output
kind: action
command: "{X!}*{X@}% (or {X!}*{X@}&)"
params:
- {name: X!, type: integer, description: Input number}
- {name: X@, type: integer, description: Output number}
- id: tie_hdmi_audio_input_to_audio_output
label: Tie HDMI Audio Input to Audio-Only Output
kind: action
command: "{X!}*{X@}$"
params:
- {name: X!, type: integer, description: Input number}
- {name: X@, type: integer, description: Output number}
- id: tie_input_to_all_hdmi_and_audio_outputs
label: Tie HDMI Input to All HDMI and Audio Outputs
kind: action
command: "{X!}*!"
params:
- {name: X!, type: integer, description: Input number}
- id: tie_input_to_all_hdmi_outputs
label: Tie HDMI Input to All HDMI Outputs
kind: action
command: "{X!}*% (or {X!}*&)"
params:
- {name: X!, type: integer, description: Input number}
- id: tie_hdmi_audio_input_to_all_audio_outputs
label: Tie HDMI Audio Input to All Audio-Only Outputs
kind: action
command: "{X!}*$"
params:
- {name: X!, type: integer, description: Input number}
- id: quick_tie_multiple
label: Quick Tie (Multiple Ties in One Entry)
kind: action
command: "E+Q{X!}*{X@}%...{X!}*{X@}!}"
params:
- {name: ties, type: string, description: Repeating {X!}*{X@}% / {X!}*{X@}! tie fragments}
# --- View Ties ---
- id: view_hdmi_and_audio_output_tie
label: View HDMI and Audio Output Tie
kind: query
command: "{X@}!"
params:
- {name: X@, type: integer, description: Output number}
- id: view_hdmi_output_tie
label: View HDMI Output Tie
kind: query
command: "{X@}% (or {X@}&)"
params:
- {name: X@, type: integer, description: Output number}
- id: view_audio_output_tie
label: View Audio Output Tie
kind: query
command: "{X@}$"
params:
- {name: X@, type: integer, description: Output number}
# --- Input Configuration ---
- id: set_input_name
label: Set Input Name
kind: action
command: "E{X!},{X$}NI}"
params:
- {name: X!, type: integer, description: Input number}
- {name: X$, type: string, description: Name (<=16 alnum)}
- id: view_input_name
label: View Input Name
kind: query
command: "E{X!}NI}"
params:
- {name: X!, type: integer, description: Input number}
- id: set_hdcp_authorized_device
label: Set HDCP Authorized Device (per input)
kind: action
command: "EE{X!}*{X^}HDCP}"
params:
- {name: X!, type: integer, description: Input number}
- {name: X^, type: integer, description: "0 = block HDCP, 1 = allow (default)"}
- id: view_hdcp_authorized_device
label: View HDCP Authorized Device
kind: query
command: "EE{X!}HDCP}"
params:
- {name: X!, type: integer, description: Input number}
- id: view_input_hdcp_status
label: View Input HDCP Status
kind: query
command: "EI{X!}HDCP}"
params:
- {name: X!, type: integer, description: Input number}
- id: view_all_input_hdcp_status
label: View All Inputs HDCP Status
kind: query
command: "EIHDCP}"
params: []
# --- EDID Commands ---
- id: view_edid_hex
label: View EDID in Hex
kind: query
command: "ER{X!}EDID]"
params:
- {name: X!, type: integer, description: Input slot number}
- id: view_edid_native_resolution
label: View EDID Native Resolution
kind: query
command: "EN{X!}EDID]"
params:
- {name: X!, type: integer, description: Input slot number}
- id: import_edid
label: Import EDID
kind: action
command: "EI{X5@},{X5#}EDID]"
params:
- {name: X5@, type: integer, description: EDID reference slot}
- {name: X5#, type: string, description: EDID filename (.bin, 128/256 bytes)}
- id: export_edid
label: Export EDID
kind: action
command: "EE{X5@},{X5#}EDID]"
params:
- {name: X5@, type: integer, description: EDID reference slot}
- {name: X5#, type: string, description: EDID filename (.bin)}
# --- Output Configuration ---
- id: set_output_name
label: Set Output Name
kind: action
command: "E{X@},{X$}NO}"
params:
- {name: X@, type: integer, description: Output number}
- {name: X$, type: string, description: Name (<=16 alnum)}
- id: view_output_name
label: View Output Name
kind: query
command: "E{X@}NO}"
params:
- {name: X@, type: integer, description: Output number}
- id: set_output_format
label: Set Output Format
kind: action
command: "E{X@}*{X*}VTPO}"
params:
- {name: X@, type: integer, description: Output number}
- {name: X*, type: integer, description: "0 passthrough / 1 RGB / 2 YUV444 / 3 YUV422"}
- id: view_output_format
label: View Output Format
kind: query
command: "E{X@}VTPO}"
params:
- {name: X@, type: integer, description: Output number}
- id: set_output_hdcp_mode_auto
label: Set Output HDCP Mode to Auto
kind: action
command: "ES{X@}*0HDCP}"
params:
- {name: X@, type: integer, description: Output number}
- id: set_output_hdcp_mode_on
label: Set Output HDCP Mode to On
kind: action
command: "ES{X@}*1HDCP}"
params:
- {name: X@, type: integer, description: Output number}
- id: view_hdcp_mode
label: View Output HDCP Mode
kind: query
command: "ES{X@}HDCP}"
params:
- {name: X@, type: integer, description: Output number}
- id: view_output_hdcp_status
label: View Output HDCP Status
kind: query
command: "EO{X@}HDCP}"
params:
- {name: X@, type: integer, description: Output number}
- id: view_all_outputs_hdcp_status
label: View All Outputs HDCP Status
kind: query
command: "EOHDCP}"
params: []
- id: set_hdmi_video_mute
label: Set HDMI Video Mute (per output)
kind: action
command: "{X@}*{X1@}B"
params:
- {name: X@, type: integer, description: Output number}
- {name: X1@, type: integer, description: "0 unmute / 1 video / 2 video+sync"}
- id: view_hdmi_video_mute_status
label: View HDMI Video Mute Status
kind: query
command: "{X@}B"
params:
- {name: X@, type: integer, description: Output number}
- id: set_hdmi_video_mute_all_outputs
label: Set HDMI Video Mute to All Outputs
kind: action
command: "{X1@}*B"
params:
- {name: X1@, type: integer, description: "0 unmute / 1 video / 2 video+sync"}
- id: view_all_output_mutes
label: View All Output Mutes
kind: query
command: "EVM}"
params: []
# --- Audio Configuration ---
- id: set_input_attenuation
label: Set Input Attenuation
kind: action
command: "{X!}*-{X1%}G"
params:
- {name: X!, type: integer, description: Input number}
- {name: X1%, type: integer, description: Attenuation -20..00 dB (00 default)}
- id: decrease_input_attenuation
label: Decrease Input Attenuation (+1 dB)
kind: action
command: "{X!}+G"
params:
- {name: X!, type: integer, description: Input number}
- id: increase_input_attenuation
label: Increase Input Attenuation (-1 dB)
kind: action
command: "{X!}-G"
params:
- {name: X!, type: integer, description: Input number}
- id: view_input_attenuation
label: View Input Attenuation
kind: query
command: "{X!}G"
params:
- {name: X!, type: integer, description: Input number}
- id: set_output_volume
label: Set Output Volume
kind: action
command: "{X@}*{X1^}V"
params:
- {name: X@, type: integer, description: Output number}
- {name: X1^, type: integer, description: "0..100 % (~1 dB steps; 100 default)"}
- id: increase_output_volume
label: Increase Output Volume (+1 dB)
kind: action
command: "{X@}+V"
params:
- {name: X@, type: integer, description: Output number}
- id: decrease_output_volume
label: Decrease Output Volume (-1 dB)
kind: action
command: "{X@}-V"
params:
- {name: X@, type: integer, description: Output number}
- id: view_output_volume
label: View Output Volume Level
kind: query
command: "{X@}V"
params:
- {name: X@, type: integer, description: Output number}
- id: set_audio_mute
label: Set Audio Mute (per output)
kind: action
command: "{X@}*{X1#}Z"
params:
- {name: X@, type: integer, description: Output number}
- {name: X1#, type: integer, description: "0..7 (outputs 1-2); 0/1 only (outputs 3-8)"}
- id: view_audio_mute_status
label: View Audio Mute Status
kind: query
command: "{X@}Z"
params:
- {name: X@, type: integer, description: Output number}
- id: set_audio_mute_all_outputs
label: Set Audio Mute to All Outputs
kind: action
command: "{X#}*Z"
params:
- {name: X#, type: integer, description: "0 disable (unmute) / 1 enable (mute)"}
# --- Global Presets ---
- id: save_global_preset
label: Save Global Preset
kind: action
command: "{X1&},"
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
- id: recall_global_preset
label: Recall Global Preset
kind: action
command: "{X1&}."
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
- id: directly_write_global_preset
label: Directly Write Global Preset
kind: action
command: "E+{X1&}P{X!}*{X@}%...{X!}*{X@}%}"
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
- {name: ties, type: string, description: Repeating {X!}*{X@}% tie fragments}
- id: view_global_hdmi_preset
label: View Global HDMI Preset
kind: query
command: "E{X1&}*01*1VC}"
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
- id: view_global_audio_preset
label: View Global Audio Preset
kind: query
command: "E{X1&}*01*2VC}"
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
- id: set_global_preset_name
label: Set Global Preset Name
kind: action
command: "E{X1&},{X$}NG}"
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
- {name: X$, type: string, description: Name (<=16 alnum)}
- id: view_global_preset_name
label: View Global Preset Name
kind: query
command: "E{X1&}NG}"
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
- id: reset_all_global_presets
label: Reset All Global Presets
kind: action
command: "EZG}"
params: []
- id: reset_individual_global_preset
label: Reset Individual Global Preset
kind: action
command: "E{X1&}ZG}"
params:
- {name: X1&, type: integer, description: Global preset number (1..16)}
# --- Rooms ---
- id: set_room_outputs
label: Set Room Outputs
kind: action
command: "E{X1*},{X@[1]},{X@[2]}...{X@[n]}MR}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: outputs, type: string, description: Comma-separated output numbers}
- id: view_room_outputs
label: View Room Outputs
kind: query
command: "E{X1*}MR}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- id: set_room_name
label: Set Room Name
kind: action
command: "E{X1*},{X$}NR}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X$, type: string, description: Name (<=12 alnum)}
- id: view_room_name
label: View Room Name
kind: query
command: "E{X1*}NR}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- id: reset_room_map
label: Reset Room Map (all rooms)
kind: action
command: "EZR}"
params: []
- id: reset_individual_room
label: Reset Individual Room
kind: action
command: "E{X1*}ZR}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
# --- Room Presets ---
- id: save_room_preset
label: Save Room Preset
kind: action
command: "{X1*}*{X1(},"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
- id: recall_room_preset
label: Recall Room Preset
kind: action
command: "{X1*}*{X1(}."
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
- id: directly_write_room_preset
label: Directly Write Room Preset
kind: action
command: "E+{X1*}*{X1(}P{X!}*{X@}%...{X!}*{X@}%}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
- {name: ties, type: string, description: Repeating {X!}*{X@}% tie fragments}
- id: view_room_hdmi_preset
label: View Room HDMI Preset
kind: query
command: "E{X1*}*{X1(}*01*1VC}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
- id: view_room_audio_preset
label: View Room Audio Preset
kind: query
command: "E{X1*}*{X1(}*01*2VC}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
- id: set_room_preset_name
label: Set Room Preset Name
kind: action
command: "E{X1*}*{X1(},{X$}NP}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
- {name: X$, type: string, description: Name (<=16 alnum)}
- id: view_room_preset_name
label: View Room Preset Name
kind: query
command: "E{X1*}*{X1(}NP}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
- id: reset_all_room_presets
label: Reset All Room Presets
kind: action
command: "EZP}"
params: []
- id: reset_individual_room_preset
label: Reset Individual Room Preset
kind: action
command: "E{X1*}*{X1(}ZP}"
params:
- {name: X1*, type: integer, description: Room number (1..10)}
- {name: X1(, type: integer, description: Room preset number (1..10)}
# --- Advanced Configuration ---
- id: set_front_panel_lockout_mode
label: Set Front Panel Lockout Mode (Executive Mode)
kind: action
command: "{X2)}X"
params:
- {name: X2), type: integer, description: "0 unlock / 1 full lockout / 2 basic-only (default)"}
- id: view_front_panel_lockout_mode
label: View Front Panel Lockout Mode
kind: query
command: "X{X2)}]"
params: []
- id: view_video_signal_presence
label: View Video Signal Presence (all inputs)
kind: query
command: "0LS"
params: []
# --- Device Commands: Verbose Mode ---
- id: set_verbose_mode
label: Set Verbose Mode
kind: action
command: "E{X2#}CV}"
params:
- {name: X2#, type: integer, description: "0 none (Telnet default) / 1 verbose (RS-232/USB default) / 2 tagged / 3 verbose+tagged"}
- id: view_verbose_mode
label: View Verbose Mode
kind: query
command: "ECV}"
params: []
# --- Device Commands: Reset ---
- id: reset_flash_memory
label: Reset Flash Memory (clear flash)
kind: action
command: "EZFFF}"
params: []
- id: reset_all_device_settings_factory
label: Reset All Device Settings to Factory Default (except unit name)
kind: action
command: "EZXXX}"
params: []
- id: absolute_system_reset
label: Absolute System Reset (incl. DHCP off, IP settings)
kind: action
command: "EZQQQ}"
params: []
- id: reset_all_device_settings_delete_files
label: Reset All Device Settings and Delete Files (excl. IP)
kind: action
command: "EZY}"
params: []
- id: reset_mutes
label: Reset Mutes (unmute all outputs)
kind: action
command: "EZZ}"
params: []
# --- Power Save Mode ---
- id: set_power_save_mode
label: Set Power Save Mode
kind: action
command: "E{X2$}PSAV}"
params:
- {name: X2$, type: integer, description: "0 normal (default) / 1 limited / 2 limited + front-panel lock"}
- id: set_power_save_mode_2
label: Set Power Save Mode 2 (front panel locked)
kind: action
command: "E2PSAV}"
params: []
- id: set_power_save_mode_0
label: Set Power Save Mode 0 (normal operation)
kind: action
command: "E0PSAV}"
params: []
- id: view_power_save_mode
label: View Power Save Mode
kind: query
command: "EPSAV}"
params: []
# --- Information Requests ---
- id: view_general_info
label: View General Info (input/output counts)
kind: query
command: "I"
params: []
- id: view_firmware_version
label: View Firmware Version
kind: query
command: "Q"
params: []
- id: view_full_firmware_version
label: View Full Firmware Version
kind: query
command: "*Q"
params: []
- id: view_detailed_firmware_version
label: View Detailed Firmware Version (bootloader/factory/user)
kind: query
command: "0Q"
params: []
- id: view_part_number
label: View Part Number
kind: query
command: "N"
params: []
- id: view_matrix_status
label: View Matrix Status (voltage / temp / fan)
kind: query
command: "S"
params: []
- id: view_power_supply_status
label: View Power Supply Status (voltage)
kind: query
command: "1S"
params: []
- id: view_temperature
label: View Internal Temperature
kind: query
command: "2S"
params: []
- id: view_fan_speed
label: View Internal Fan Speed
kind: query
command: "3S"
params: []
# --- IP Control Port ---
- id: set_dhcp_mode
label: Set DHCP Mode
kind: action
command: "E{X#}DH}"
params:
- {name: X#, type: integer, description: "0 disable / 1 enable"}
- id: view_dhcp_mode
label: View DHCP Mode
kind: query
command: "EDH}"
params: []
- id: set_ip_address
label: Set IP Address
kind: action
command: "E{X2*}CI}"
params:
- {name: X2*, type: string, description: IP address nnn.nnn.nnn.nnn}
- id: view_ip_address
label: View IP Address
kind: query
command: "ECI}"
params: []
- id: set_subnet_mask
label: Set Subnet Mask
kind: action
command: "E{X3!}CS}"
params:
- {name: X3!, type: string, description: Subnet mask nnn.nnn.nnn.nnn}
- id: view_subnet_mask
label: View Subnet Mask
kind: query
command: "ECS}"
params: []
- id: set_gateway_ip_address
label: Set Gateway IP Address
kind: action
command: "E{X3@}CG}"
params:
- {name: X3@, type: string, description: Gateway nnn.nnn.nnn.nnn}
- id: view_gateway_ip_address
label: View Gateway IP Address
kind: query
command: "ECG}"
params: []
- id: view_mac_address
label: View MAC Address
kind: query
command: "ECH}"
params: []
- id: view_number_of_open_connections
label: View Number of Open Connections
kind: query
command: "ECC}"
params: []
- id: reboot_network
label: Reboot Network (after IP/DHCP change)
kind: action
command: "E2BOOT}"
params: []
- id: set_current_port_timeout
label: Set Current Port Timeout
kind: action
command: "E0*{X3%}TC}"
params:
- {name: X3%, type: integer, description: "1..65000 in 10-sec intervals (30 default)"}
- id: view_current_port_timeout
label: View Current Port Timeout
kind: query
command: "E0TC}"
params: []
- id: set_global_ip_port_timeout
label: Set Global IP Port Timeout
kind: action
command: "E1*{X3%}TC}"
params:
- {name: X3%, type: integer, description: "1..65000 in 10-sec intervals (30 default)"}
- id: view_global_ip_port_timeout
label: View Global IP Port Timeout
kind: query
command: "E1TC}"
params: []
- id: set_device_name
label: Set Device Name
kind: action
command: "E{X3^}CN}"
params:
- {name: X3^, type: string, description: "<=63 alnum/hyphen, first=alpha, last!=hyphen"}
- id: view_device_name
label: View Device Name
kind: query
command: "ECN}"
params: []
- id: set_date_and_time
label: Set Date and Time
kind: action
command: "E{X3&}CT}"
params:
- {name: X3&, type: string, description: "MM/DD/YY HH:mm:SS"}
- id: view_date_and_time
label: View Date and Time
kind: query
command: "ECT}"
params: []
- id: view_gmt_offset
label: View GMT Offset
kind: query
command: "ECZ}"
params: []
- id: view_available_time_zones
label: View Available Time Zones
kind: query
command: "E*TZON}"
params: []
- id: set_time_zone
label: Set Time Zone
kind: action
command: "E{X4)}*TZON}"
params:
- {name: X4), type: string, description: Time zone code (see view_available_time_zones)}
- id: view_time_zone
label: View Time Zone
kind: query
command: "ETZON}"
params: []
# --- Passwords ---
- id: set_administrator_password
label: Set Administrator Password
kind: action
command: "E{X4@}CA}"
params:
- {name: X4@, type: string, description: "Password 0..128 chars (case-sensitive, no '|')"}
- id: clear_administrator_password
label: Clear Administrator Password
kind: action
command: "E•CA}"
params: []
- id: view_administrator_password
label: View Administrator Password
kind: query
command: "ECA}"
params: []
- id: set_user_password
label: Set User Password
kind: action
command: "E{X4@}CU}"
params:
- {name: X4@, type: string, description: "Password 0..128 chars (case-sensitive, no '|')"}
- id: clear_user_password
label: Clear User Password
kind: action
command: "E•CU}"
params: []
- id: view_user_password
label: View User Password
kind: query
command: "ECU}"
params: []
# --- Serial Port Configuration ---
- id: set_serial_port_parameters
label: Set Serial Port Parameters (per port)
kind: action
command: "E{X4%}*{X4^},{X4&},{X4*},{X4(}CP}"
params:
- {name: X4%, type: integer, description: "Serial port number (01..99)"}
- {name: X4^, type: integer, description: "Baud: 9600/19200/38400/115200"}
- {name: X4&, type: string, description: "Parity first letter: O/E/N/M/S"}
- {name: X4*, type: integer, description: "Data bits: 7/8"}
- {name: X4(, type: integer, description: "Stop bits: 1/2"}
- id: view_serial_port_parameters
label: View Serial Port Parameters
kind: query
command: "E{X4%}CP}"
params:
- {name: X4%, type: integer, description: "Serial port number (01..99)"}
# --- MKP Mode for Volume Control ---
- id: set_mkp_mode
label: Set MKP Mode (volume steps)
kind: action
command: "E{X5$}SVOL}"
params:
- {name: X5$, type: integer, description: "1 normal 1-64 steps (default) / 2 MKP 1-100 steps"}
- id: view_mkp_mode
label: View MKP Mode
kind: query
command: "ESVOL}"
params: []
Feedbacks
# Verbose-mode (1 or 3) device-initiated messages - sent unsolicited on local events.
- id: password_prompt
type: string
values: ["Password:"]
- id: quick_switch_notice
type: string
values: ["Qik"] # front-panel switching occurred
- id: preset_recalled_notice
type: string
format: "Rpr{nn}" # nn = preset number recalled from front panel
- id: preset_saved_notice
type: string
format: "Spr{nn}" # nn = preset number saved from front panel
- id: video_mute_toggle_notice
type: string
format: "{nn}Vmt{x}" # nn=output, x=0 off / 1 on
- id: audio_mute_toggle_notice
type: string
format: "{nn}Amt{x}" # nn=output, x=0 off / 1 on
- id: executive_mode_toggle_notice
type: string
format: "Exe{n}" # n = 0 off / 1 view-only / 2 basic-only
- id: hot_plug_output_notice
type: string
format: "HplgO{nn}" # nn = output number where hot-plug detected
# Query-response feedbacks (one per matching query action above):
- id: tie_state
type: string
format: "Out{X@}•In{X!}•All | Vid | Aud"
- id: input_hdcp_status_value
type: enum
values: [0, 1, 2] # 0 no source / 1 HDCP compliant / 2 not compliant
- id: output_hdcp_status_value
type: enum
values: [0, 1, 2, 3]
- id: video_mute_state
type: enum
values: [0, 1, 2]
- id: audio_mute_state
type: enum
values: [0, 1, 2, 3, 4, 5, 6, 7]
- id: verbose_mode_state
type: enum
values: [0, 1, 2, 3]
- id: power_save_mode_state
type: enum
values: [0, 1, 2]
- id: error_response
type: enum
values: [E01, E10, E11, E12, E13, E14, E17, E18, E21, E22, E24, E25, E26, E27, E28]
Variables
- id: input_attenuation
type: integer
unit: dB
range: [-20, 0]
default: 0
- id: output_volume
type: integer
unit: percent
range: [0, 100]
default: 100
- id: port_timeout
type: integer
unit: seconds
range: [10, 650000] # 1..65000 in 10-sec intervals
default: 300
- id: front_panel_lockout_mode
type: enum
values: [0, 1, 2]
default: 2
- id: verbose_mode
type: enum
values: [0, 1, 2, 3]
default: 1 # RS-232/USB; 0 for Telnet
Events
# Unsolicited device-initiated messages - same content as Feedbacks "notice" entries.
# Sent only when verbose mode 1 or 3 is enabled.
- id: on_front_panel_switch
message: "Qik"
- id: on_preset_recall
message: "Rpr{nn}"
- id: on_preset_save
message: "Spr{nn}"
- id: on_video_mute_toggle
message: "{nn}Vmt{x}"
- id: on_audio_mute_toggle
message: "{nn}Amt{x}"
- id: on_executive_mode_toggle
message: "Exe{n}"
- id: on_output_hot_plug
message: "HplgO{nn}"
- id: on_password_prompt
message: "Password:"
Macros
# UNRESOLVED: no named multi-step macro sequences documented as such in source.
# Quick Tie and Direct-Write Preset commands (see Actions) are single-command
# multi-tie entries but are represented as individual actions, not macros.
Safety
confirmation_required_for:
- absolute_system_reset # EZQQQ} - full factory reset incl. IP
- reset_flash_memory # EZFFF} - clears flash memory
- reset_all_device_settings_factory # EZXXX}
- reset_all_device_settings_delete_files # EZY}
interlocks:
- password_required_for_reset_commands # E24 privilege violation if not admin-level for [24]-tagged cmds
- power_save_mode_2_blocks_front_panel # only E0PSAV} or PCS can exit
- front_panel_lockout_mode_1_blocks_changes # only lock-mode change permitted
# Reset Mode 5 (hardware) equivalent to SIS EZQQQ} - clears ties, presets, mutes, files.
# UNRESOLVED: no power-on sequencing interlocks or voltage safety warnings stated in source.
Notes
- SIS command framing: No special start/stop characters required for a command; commands can be chained back-to-back with no spaces. All device responses terminate with CR/LF (symbol
]); commands using the}terminator end with CR only (no LF). Many commands are prefixed with the ESC character (symbolE= 0x1B). - Case sensitivity: Upper- and lowercase are interchangeable in SIS commands unless otherwise stated. Passwords ARE case-sensitive.
- Copyright banner: On TCP/Telnet connect (or after power cycle on RS-232), the device emits
(c) Copyright 20nn, Extron Electronics, DXPnn HD 4K Plus, Vn.nn, 60-1495-nn] Ddd,DD Mmm YYYY HH:MM:SS]— includes firmware version and part number. - Default network: IP 192.168.254.254, subnet 255.255.0.0, gateway 0.0.0.0, DHCP off.
- Connections: Up to 200 simultaneous TCP connections (HTTP + Telnet combined); no indication given when limit reached.
- Idle timeout: Ethernet link drops after 5 minutes of inactivity by default (configurable via Port Timeout commands). Extron recommends periodic query commands to keep alive.
- Verbose mode default:
0for Telnet,1for RS-232/USB. Verbose 1 or 3 required to receive device-initiated event notices. - Numbering note: The character
0denotes the digit zero;Ois capital letter "o" — relevant for response parsing. - Telnet carriage-return: Use default Telnet LF-only on Enter;
set crlfbreaks the SIS link. - Front-panel lockout default: Mode 2 (basic-only). Opening PCS forces mode 0.
Provenance
source_domains:
- media.extron.com
- support.displaymanager.net
source_urls:
- https://media.extron.com/public/download/files/userman/68-2939-01_A_DXPHD4KPLUS_user_guide.pdf
- https://media.extron.com/public/download/files/userman/68-2961-01JControlSystNetworkPortsProtocolsLic.pdf
- https://media.extron.com/public/download/files/userman/68-3596-01F-NetworkPorts-Protocols-and-License.pdf
- https://media.extron.com/public/download/files/userman/68-3871-01_A_Extron_Control_For_Poly.pdf
- https://support.displaymanager.net/hc/en-gb/articles/22750870424733-Troubleshooting-Guide-for-Extron-Control-Systems
retrieved_at: 2026-07-25T08:18:43.553Z
last_checked_at: 2026-08-05T08:19:21.575Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T08:19:21.575Z
matched_actions: 124
action_count: 124
confidence: medium
summary: "All 124 spec action units match SIS command templates verbatim in source; transport params verified; bidirectional coverage complete. (12 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "exact TCP/Telnet port number not stated in source (Telnet protocol named but no port value given). USB transport connector named but no USB-level protocol details documented. DXP 42 (4x2) matrix geometry not explicitly enumerated in source — only DXP 88/84/44 (8x8/8x4/4x4) EDID tables appear; inferred from product model name."
- "TCP/Telnet port number not stated in source (Tier 3 - do not assume 23)"
- "flow control not stated in source"
- "no named multi-step macro sequences documented as such in source."
- "no power-on sequencing interlocks or voltage safety warnings stated in source."
- "TCP/Telnet port number not stated (Tier 3 — not assuming 23)."
- "USB transport protocol details (beyond \"connector present\") not documented."
- "serial flow_control not stated."
- "firmware version compatibility ranges not stated."
- "DXP 42 (4x2) specific matrix dimensions not explicitly tabulated (only DXP 88/84/44 EDID tables shown)."
- "power supply voltage spec, fault behavior, and error-recovery sequences not stated."
- "voltage/current/power specifications not stated (Tier 3 — never inferred)."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0