Summary
The Extron DMP 128 is an 8x12 Digital Matrix Processor (audio DSP mixer) with mic/line inputs and eight outputs, available in six variants (DMP 128, AT, C, C AT, C P, C P AT). Control is via Extron's Simple Instruction Set (SIS) over rear-panel RS-232, USB (front-panel mini-B), or Ethernet (Telnet on port 23 or web browser on port 80). SIS covers IP configuration, file handling, preset recall, audio level/mute control, mix-point routing, group masters, a PIN-protected configuration, and (on P models) a telephone/modem interface.
Transport
# Source: DMP 128 User Guide, 68-2036-01, Rev. F, pp. 16-18, 44.
# RS-232 config: "38400 baud, no parity, 1 stop bit, 8 data bits, no flow control" (verbatim).
# TCP port: "using port 23" (verbatim). Web browser port 80 stated: "Port 80 is default for web browsers."
# Auth: optional password protection (admin/user). Factory password = device serial number.
# "If the device is reset, the password reverts to the original password configuration, which is no password."
# RS-232 connection is never password-protected: "Connection via any RS-232 port is not password-protected."
protocols:
- tcp
- serial
- http
addressing:
port: 23 # Telnet default (TCP). Web browser default port 80 also stated.
serial:
baud_rate: 38400
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: password # optional; default after reset is "no password"
notes: |
Optional admin/user password. Factory password is the device serial number;
case-sensitive. RS-232 connections are never password-protected. Telnet/Web
connections are password-protected only if a password has been set.
Traits
# - queryable (many query commands: Q, N, I, 1I..4I, E CI }, E CS }, E CG }, E DH },
# E CV }, E CT }, E CZ }, E CX }, E CN }, E TC }, E CP }, E CE },
# E CA }, E CU }, view verbose mode, view group fader, read mute, etc.)
# - levelable (audio gain/trim/volume/group fader commands, 0.1 dB increments)
# - routable (mix-point mute/unmute = signal routing between input and output)
traits:
- queryable
- levelable
- routable
Actions
# All ASCII command strings are copied verbatim from the source Command and Response
# tables (DMP 128 User Guide pp. 44-53, 72-73). Notation:
# ] = CR/LF terminator
# } = soft carriage return (no line feed) - terminator used inside SIS commands
# E = Escape character (Hex 1B) - command prefix
# Xn# = source-defined variable (see params on each action)
# The source presents commands in two equivalent forms (Telnet and web/URL-encoded);
# the forms below are the Telnet/serial ASCII forms.
#
# Mix-point address tables (Tables 3-10, pp. 77-98) and the audio dB→SIS conversion
# table (Table 2, pp. 57-60) are parameter value spaces for the G/M opcodes below,
# NOT separate commands - they are documented in the corresponding action's params/notes.
# ---------- Information Requests ----------
- id: query_firmware_version
label: Firmware Version
kind: query
command: "Q"
params: []
notes: Response is "X(]" where X( = firmware version x.xx.
- id: query_firmware_and_build_version
label: Firmware and Build Version
kind: query
command: "*Q"
params: []
notes: Adds four-digit build number (x.xx.xxxx).
- id: query_kernel_firmware_version
label: Kernel Firmware and Build Version
kind: query
command: "**Q"
params: []
- id: query_verbose_version_info
label: Verbose Version Info
kind: query
command: "0Q"
params: []
notes: Response is "Sum of 2Q-3Q-4Q]".
- id: query_firmware_version_1
label: Firmware Version (slot 1)
kind: query
command: "1Q"
params: []
- id: query_bootstrap_version
label: Bootstrap Version
kind: query
command: "2Q"
params: []
- id: query_factory_firmware_version
label: Factory Firmware Version
kind: query
command: "3Q"
params: []
notes: "Response: X( plus Web ver.-desc-UL date/time]"
- id: query_updated_firmware_version
label: Updated Firmware Version
kind: query
command: "4Q"
params: []
notes: "Response: X( plus Web ver.-desc-UL date/time]"
- id: view_part_number
label: View Part Number
kind: query
command: "N"
params: []
notes: |
Response is the device part number, e.g. "DMP 128: 60-1211-01", "DMP 128 AT:
60-1211-10", "DMP 128 C: 60-1178-01", "DMP 128 C AT: 60-1178-10",
"DMP 128 C P: 60-1179-01", "DMP 128 C P AT: 60-1179-10".
- id: view_model_name
label: View Model Name
kind: query
command: "I"
params: []
notes: "Response: V00x00 • A12x08]"
- id: view_model_name_1
label: View Model Name (long form)
kind: query
command: "1I"
params: []
notes: |
Response is one of "DMP • 128 •]", "DMP • 128 • AT]", "DMP • 128 • C]",
"DMP • 128 • C • AT]", "DMP • 128 • C • P]", "DMP • 128 • C • P • AT]".
- id: view_model_description
label: View Model Description
kind: query
command: "2I"
params: []
notes: "Response: Digital • Matrix • Processor]"
- id: view_system_memory_usage
label: View System Memory Usage
kind: query
command: "3I"
params: []
notes: "Response: #Bytes used out of #KBytes]"
- id: view_user_memory_usage
label: View User-Memory Usage
kind: query
command: "4I"
params: []
notes: "Response: #Bytes used out of #KBytes]"
# ---------- IP Setup Commands ----------
- id: set_unit_name
label: Set Unit Name
kind: action
command: "E X1@ CN }"
params:
- name: name
source_symbol: X1@
type: string
description: "Alphanumeric up to 24 characters. No special characters except hyphen (-)."
- id: view_unit_name
label: View Unit Name
kind: query
command: "E CN }"
params: []
- id: reset_unit_name_to_factory
label: Set Unit Name to Factory Default
kind: action
command: "E• CN }"
params: []
notes: "Sets the unit name to the default: combination of model name + last three pairs of MAC address."
- id: set_time_and_date
label: Set Time and Date
kind: action
command: "E X1# CT }"
params:
- name: time_date
source_symbol: X1#
type: string
description: Time and date string.
- id: view_time_and_date
label: View Time and Date
kind: query
command: "E CT }"
params: []
- id: set_gmt_offset
label: Set GMT Offset
kind: action
command: "E X1^ CZ }"
params:
- name: offset
source_symbol: X1^
type: string
description: "GMT offset (-12:00 to 14:00) as HH:MM."
- id: view_gmt_offset
label: View GMT Offset
kind: query
command: "E CZ }"
params: []
- id: set_daylight_savings_time
label: Set Daylight Savings Time
kind: action
command: "E X3$ CX }"
params:
- name: dst_mode
source_symbol: X3$
type: integer
description: "0=off/ignore; 1=USA; 2=Europe; 3=Brazil."
- id: read_daylight_savings_time
label: Read Daylight Savings Time
kind: query
command: "E CX }"
params: []
- id: set_ip_address
label: Set IP Address
kind: action
command: "E X1$ CI }"
params:
- name: ip
source_symbol: X1$
type: string
description: "IP address. Default 192.168.254.254."
- id: read_ip_address
label: Read IP Address
kind: query
command: "E CI }"
params: []
- id: read_hardware_address_mac
label: Read Hardware Address (MAC)
kind: query
command: "E CH }"
params: []
notes: "Response X1* = 00-05-A6-xx-xx-xx."
- id: set_subnet_mask
label: Set Subnet Mask
kind: action
command: "E X1( CS }"
params:
- name: mask
source_symbol: X1(
type: string
description: "Subnet mask. Default 255.255.0.0."
- id: read_subnet_mask
label: Read Subnet Mask
kind: query
command: "E CS }"
params: []
- id: set_gateway_ip_address
label: Set Gateway IP Address
kind: action
command: "E X1$ CG }"
params:
- name: gateway
source_symbol: X1$
type: string
description: Gateway IP address.
- id: view_gateway_ip_address
label: View Gateway IP Address
kind: query
command: "E CG }"
params: []
- id: set_dhcp_on
label: Set DHCP On
kind: action
command: "E 1DH }"
params: []
notes: "Changing DHCP from On to Off resets IP to factory default 192.168.254.254."
- id: set_dhcp_off
label: Set DHCP Off
kind: action
command: "E 0DH }"
params: []
notes: "Resets IP to factory default 192.168.254.254."
- id: view_dhcp_status
label: View DHCP Status
kind: query
command: "E DH }"
params: []
notes: "Response X% = 0 (off) or 1 (on)."
- id: set_verbose_mode
label: Set Verbose Mode
kind: action
command: "E X2@ CV }"
params:
- name: mode
source_symbol: X2@
type: integer
description: "0=clear (default for IP); 1=verbose (default for serial/USB); 2=tagged responses; 3=verbose + tagged."
- id: view_verbose_mode
label: View Verbose Mode
kind: query
command: "E CV }"
params: []
# ---------- Password and Security Settings ----------
- id: set_administrator_password
label: Set Administrator Password
kind: action
command: "E X3# CA }"
params:
- name: password
source_symbol: X3#
type: string
description: Password string.
- id: view_administrator_password
label: View Administrator Password
kind: query
command: "E CA }"
params: []
- id: reset_administrator_password
label: Reset (Clear) Administrator Password
kind: action
command: "E• CA }"
params: []
- id: set_user_password
label: Set User Password
kind: action
command: "E X3# CU }"
params:
- name: password
source_symbol: X3#
type: string
description: Password string.
- id: view_user_password
label: View User Password
kind: query
command: "E CU }"
params: []
# ---------- Ethernet Data Port ----------
- id: set_current_port_timeout
label: Set Current Port Timeout
kind: action
command: "E 0*X1% TC}"
params:
- name: timeout
source_symbol: X1%
type: integer
description: "1 to 65000 steps, 1 step = 10 seconds, default = 30 (300 seconds)."
- id: view_current_port_timeout
label: View Current Port Timeout
kind: query
command: "E 0TC}"
params: []
- id: set_global_ip_port_timeout
label: Set Global IP Port Timeout
kind: action
command: "E 1*X1% TC}"
params:
- name: timeout
source_symbol: X1%
type: integer
description: "1 to 65000 steps, 1 step = 10 seconds, default = 30 (300 seconds)."
- id: view_global_ip_port_timeout
label: View Global IP Port Timeout
kind: query
command: "E 1TC}"
params: []
# ---------- File Commands ----------
- id: erase_user_web_page_file
label: Erase User-Supplied Web Page File
kind: action
command: "E _filename_EF}"
params:
- name: filename
type: string
description: File name to erase.
- id: erase_current_directory
label: Erase Current Directory
kind: action
command: "E/EF}"
params: []
- id: erase_current_directory_and_subdirs
label: Erase Current Directory and Sub-directories
kind: action
command: "E//EF}"
params: []
notes: Also deletes files inside the directory.
- id: list_files_current_directory
label: List Files From Current Directory
kind: query
command: "EDF}"
params: []
- id: list_files_current_directory_and_below
label: List Files From Current Directory and Below
kind: query
command: "ELF}"
params: []
# ---------- Serial Port ----------
- id: send_serial_data_string
label: Send Data String (Serial Port 1)
kind: action
command: "E 1*X1&`*`X2)`*`X2! RS}"
params:
- name: command_string_wait_time
source_symbol: X1&
type: integer
description: "0-32767 in tens of milliseconds."
- name: character_wait_time
source_symbol: X2)
type: integer
description: "0-32767 in tens of milliseconds."
- name: length_or_delimiter
source_symbol: X2!
type: string
description: "L=byte count (00-32767), D=decimal ASCII value (0-00255)."
- id: configure_serial_port_parameters
label: Configure Serial Port Parameters
kind: action
command: "E 1*X2%,X2^,X2&,X2* CP}"
params:
- name: baud_rate
source_symbol: X2%
type: integer
description: "300,600,1200,1800,2400,3600,4800,7200,9600,14400,19200,38400,57600,115200 (default 9600)."
- name: parity
source_symbol: X2^
type: string
description: "0=odd, E=even, N=none (default), M=mark, S=space."
- name: data_bits
source_symbol: X2&
type: integer
description: "7 or 8 (default 8)."
- name: stop_bits
source_symbol: X2*
type: integer
description: "1 or 2 (default 1)."
- id: view_serial_port_parameters
label: View Serial Port Parameters
kind: query
command: "E 1CP}"
params: []
- id: configure_serial_receive_timeout
label: Configure Receive Timeout
kind: action
command: "E 1*X1&`*`X2)`*`X2#`*`X2! CE}"
params:
- name: command_string_wait_time
source_symbol: X1&
type: integer
- name: character_wait_time
source_symbol: X2)
type: integer
- name: priority_status
source_symbol: X2#
type: integer
description: "0=Send data string command parameters if they exist (default); 1=Configure receive timeout command parameters."
- name: length_or_delimiter
source_symbol: X2!
type: string
- id: view_serial_receive_timeout
label: View Receive Timeout
kind: query
command: "E 1CE}"
params: []
# ---------- Digital I/O Port ----------
- id: view_io_mode
label: View I/O Mode
kind: query
command: "X!}"
params: []
notes: "Response X4) = 0 (input) or 1 (output)."
- id: view_io_state
label: View I/O State
kind: query
command: "X!}"
params: []
notes: |
Source lists this with the same ASCII opcode as "View I/O mode" but a
different response field (X4# = 0 off / 1 on). Treat as a distinct query
whose response shape differs from view_io_mode.
# ---------- Event Control ----------
- id: read_event_buffer_memory
label: Read Event Buffer Memory
kind: query
command: "E X3% , X3^ , X3& , X3* E }"
params:
- name: event_number
source_symbol: X3%
type: integer
description: "00 to 99."
- name: event_buffer
source_symbol: X3^
type: integer
description: "0=receive, 1=Unified, 2=data, 3=NVRAM."
- name: buffer_offset
source_symbol: X3&
type: integer
- name: data_size
source_symbol: X3*
type: string
description: "b=bit, B=Byte (8-bit), S=short (16-bit), L=long (32-bit). Case sensitive."
- id: write_event_buffer_memory
label: Write Event Buffer Memory
kind: action
command: "E X3% , X3^ , X3( , X3* E }"
params:
- name: event_number
source_symbol: X3%
type: integer
- name: event_buffer
source_symbol: X3^
type: integer
- name: event_data
source_symbol: X3(
type: integer
description: Event data to write.
- name: data_size
source_symbol: X3*
type: string
- id: read_string_from_event_buffer
label: Read String From Event Buffer
kind: query
command: "E X3% , X3^ , X3& X4$ FE }"
params:
- name: event_number
source_symbol: X3%
type: integer
- name: event_buffer
source_symbol: X3^
type: integer
- name: buffer_offset
source_symbol: X3&
type: integer
- name: bytes_to_read
source_symbol: X4$
type: integer
description: "1 to 127."
notes: "F must be capitalized."
- id: write_string_to_event_buffer
label: Write String to Event Buffer
kind: action
command: "E { string }* X3% , X3^ , X3& FE }"
params:
- name: string
type: string
- name: event_number
source_symbol: X3%
type: integer
- name: event_buffer
source_symbol: X3^
type: integer
- name: buffer_offset
source_symbol: X3&
type: integer
notes: "F must be capitalized."
- id: start_events
label: Start Events
kind: action
command: "E 1AE }"
params: []
notes: "Response Ego ]"
- id: stop_events
label: Stop Events
kind: action
command: "E 0AE }"
params: []
notes: "Response Est ]"
- id: view_number_of_running_events
label: View Number of Running Events
kind: query
command: "E AE }"
params: []
notes: "Response ##### ] (5 digit number)."
# ---------- Presets, I/O Names ----------
- id: write_preset_name
label: Write Preset Name
kind: action
command: "E X1) , X1! NG }"
params:
- name: preset_number
source_symbol: X1)
type: integer
description: "Preset number (0 = current configuration; 32 maximum)."
- name: name
source_symbol: X1!
type: string
description: "Up to 12 characters."
- id: read_preset_name
label: Read Preset Name
kind: query
command: "E X1) NG }"
params:
- name: preset_number
source_symbol: X1)
type: integer
- id: recall_preset
label: Recall a Preset
kind: action
command: "X1) . Rpr"
params:
- name: preset_number
source_symbol: X1)
type: integer
notes: "Command character is a period. Example: 5. recalls preset 5."
- id: write_input_name
label: Write Input Name
kind: action
command: "E X# , X1! NI }"
params:
- name: input_number
source_symbol: X#
type: integer
description: "01 to 12 (C P / C P AT: 01 to 13)."
- name: name
source_symbol: X1!
type: string
description: "Up to 12 characters."
- id: read_input_name
label: Read Input Name
kind: query
command: "E X# NI }"
params:
- name: input_number
source_symbol: X#
type: integer
- id: write_output_name
label: Write Output Name
kind: action
command: "E X@ , X1! NO }"
params:
- name: output_number
source_symbol: X@
type: integer
description: "01 to 08 (C P / C P AT: 01 to 09)."
- name: name
source_symbol: X1!
type: string
description: "Up to 12 characters."
- id: read_output_name
label: Read Output Name
kind: query
command: "E X@ NO }"
params:
- name: output_number
source_symbol: X@
type: integer
# ---------- Resets ----------
- id: reset_presets_and_names
label: Reset Presets and Names
kind: action
command: "E ZG }"
params: []
notes: Clears all presets and their names.
- id: reset_individual_preset
label: Reset an Individual Preset
kind: action
command: "E X1) ZG }"
params:
- name: preset_number
source_symbol: X1)
type: integer
- id: reset_group
label: Reset a Group
kind: action
command: "E Z X6% GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
description: "01 to 32."
notes: Deletes all members from group, resets parameters and soft limits.
- id: reset_flash
label: Reset Flash
kind: action
command: "E ZFFF }"
params: []
notes: Erases user-supplied files.
- id: system_reset_factory_defaults
label: System Reset (Factory Defaults)
kind: action
command: "E ZXXX }"
params: []
notes: Resets all processors, level controls and mixers to default.
- id: reset_all_device_settings
label: Reset All Device Settings and Delete Files
kind: action
command: "E ZY }"
params: []
notes: |
Excludes IP settings (IP address, subnet mask, gateway IP, unit name, DHCP
setting, port mapping) to preserve communication. Recommended after a firmware update.
# ---------- DSP Audio Level Control (gain/trim/mute) ----------
# Applies to blocks A (mic/line input gain), B (pre-mixer gain), C (virtual return gain),
# D (post-mixer trim), E (output volume), and to all mix-points (output mix matrix,
# virtual send bus mix matrix, expansion output mix matrix). X6) selects the block/mix-point.
- id: set_trim_or_gain
label: Set a Trim or Gain
kind: action
command: "E G X6) * X6! AU }"
params:
- name: control
source_symbol: X6)
type: integer
description: |
Gain/trim/mix-point address. See Table 1 (Level Control, p.55):
A Mic/line input gain: 40000-40011, Telephone Rx 40012
B Pre-mixer gain: 40100-40111, Telephone Rx 40112
C Virtual return gain: 50000-50007
D Post-mixer trim: 60100-60107
E Output volume: 60000-60007, Telephone Tx 60008
Mix-point addresses (Tables 3-10, pp.77-98): 20000-22024 for mic/line,
virtual returns, EXP inputs to outputs; 20009-21216 etc. for virtual sends.
- name: level_value
source_symbol: X6!
type: integer
description: |
SIS level value. Conversion: (desired dB x 10) + 2048.
Valid ranges by block:
A: -18.0 to +80.0 dB (1868 to 2848)
B: -100.0 to +12.0 dB (1048 to 2168)
C: -100.0 to +12.0 dB (1048 to 2168)
D: -12.0 to +12.0 dB (1928 to 2168)
E: -100.0 to +0.0 dB (1048 to 2048)
Mix-points: -35.0 to +25.0 dB.
notes: "Verbose response: DsG X6) * X6!]"
- id: read_trim_or_gain
label: Read a Trim or Gain
kind: query
command: "E G X6) AU }"
params:
- name: control
source_symbol: X6)
type: integer
notes: "Verbose response: DsG X6) * X6!]"
- id: audio_mute
label: Audio Mute
kind: action
command: "E M X6) *1AU }"
params:
- name: control
source_symbol: X6)
type: integer
notes: "Post-mixer trim cannot be muted. Verbose response: DsM X6) *1 ]"
- id: audio_unmute
label: Audio Unmute
kind: action
command: "E M X6) *0AU }"
params:
- name: control
source_symbol: X6)
type: integer
notes: "Verbose response: DsM X6) *0 ]"
- id: read_mute_status
label: Read Mute Status
kind: query
command: "E M X6) AU }"
params:
- name: control
source_symbol: X6)
type: integer
notes: "Verbose response: DsM X6) * X6$], X6$ = 0 (unmute) or 1 (mute)."
# ---------- Audio Group Master Commands ----------
- id: set_group_fader_control
label: Set a Group Fader Control
kind: action
command: "E D X6% * X6^ GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
description: "01 to 32."
- name: fader_value
source_symbol: X6^
type: integer
description: |
dB value x10 (negative numbers, no decimal). Valid range depends on group
type: A -180..800, B/C -1000..120, D -120..120, E -1000..000.
- id: raise_group_fader
label: Raise a Group Fader
kind: action
command: "E D X6% * X6& +GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
- name: increment
source_symbol: X6&
type: integer
description: dB value x10 to raise.
- id: lower_group_fader
label: Lower a Group Fader
kind: action
command: "E D X6% * X6& -GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
- name: decrement
source_symbol: X6&
type: integer
description: dB value x10 to lower.
- id: view_group_fader_level
label: View the Group Fader Control Level
kind: query
command: "E D X6% GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
notes: "In verbose modes 1 and 2 the response simplifies to X6^]."
- id: mute_group
label: Mute a Group Mute Control
kind: action
command: "E D X6% *1GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
notes: "Mutes all blocks in the group. Response: GrpmD X6% *+00001 ]"
- id: unmute_group
label: Clear (Unmute) a Group Mute Control
kind: action
command: "E D X6% *0GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
notes: "Unmutes all blocks in the group. Response: GrpmD X6% *+00000 ]"
- id: view_group_mute
label: View a Group Mute Control
kind: query
command: "E D X6% GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
notes: "Same opcode as view_group_fader_level; X6$ is always a 5-digit value for group masters."
- id: set_group_soft_limits
label: Set Soft Limits
kind: action
command: "E L X6% * X6* [upper] * X6* [lower] GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
- name: upper_limit
source_symbol: X6*
type: integer
description: dB value x10.
- name: lower_limit
source_symbol: X6*
type: integer
description: dB value x10.
# ---------- Protected Configuration ----------
- id: save_protected_configuration
label: Save the Protected Configuration
kind: action
command: "E S X7) PCFG }"
params:
- name: pin
source_symbol: X7)
type: string
description: "Four numeric digits; default 0000."
notes: "Saves all processing and levels (except IP address) to protected memory. Response: PcfgS ]"
- id: recall_protected_configuration
label: Recall the Protected Configuration
kind: action
command: "E RPCFG }"
params: []
notes: "Response: PcfgR ]"
- id: change_protected_configuration_pin
label: Change the PIN
kind: action
command: "E P X7) [old] * X7) [new] PCFG }"
params:
- name: old_pin
source_symbol: X7)
type: string
description: "Four numeric digits."
- name: new_pin
source_symbol: X7)
type: string
description: "Four numeric digits."
- id: view_protected_configuration_status
label: View Configuration Saved Status
kind: query
command: "E QPCFG }"
params: []
notes: "Response X7! = 0 (none saved) or 1 (saved)."
# ---------- Telephone Commands (DMP 128 P models only; fw >= 1.05) ----------
- id: dial_number_string
label: Dial Number String
kind: action
command: "E D X@, PHON }"
params:
- name: dtmf_string
source_symbol: X@
type: string
description: "Numeric string: 0-9, *, #. No spaces."
notes: "DMP 128 P models only. Requires firmware >= 1.05. Set verbose mode 3 for proper responses."
- id: phone_off_hook
label: Off Hook
kind: action
command: "E OFFHOOK, PHON }"
params: []
notes: Connects line. Response: PhonOffHook ]
- id: phone_on_hook
label: On Hook
kind: action
command: "E ONHOOK, PHON }"
params: []
notes: Disconnects line. Response: PhonOnHook ]
- id: phone_flash
label: Flash
kind: action
command: "E F, PHON }"
params: []
notes: "Response: PhonFlash ]"
- id: phone_state
label: Phone State
kind: query
command: "E O, PHON }"
params: []
notes: "Response: PhonSts X! ]"
- id: dial_single_digit
label: Dial Single Digit
kind: action
command: "E S X# , PHON }"
params:
- name: digit
source_symbol: X#
type: string
description: Single DTMF pulse.
notes: "Response: PhonDialDigit ]"
- id: enable_auto_hangup
label: Enable Auto Hang-up
kind: action
command: "E AH X$ , PHON }"
params:
- name: setting
source_symbol: X$
type: string
- id: view_auto_hangup_status
label: View Auto Hang-up Status
kind: query
command: "E AH, PHON }"
params: []
notes: "Response: PhonAH X$ ]"
# UNRESOLVED: "Set single digit interval" telephone command appears in source but
# its ASCII command column was truncated in the refined excerpt.
- id: reset_user_password
label: Reset (Clear) User Password
kind: action
command: "E• CU }"
params: []
notes: "Clears the user password. Response: Ipu •]"
- id: view_session_security_level
label: View Session Security Level
kind: query
command: "E CK }"
params: []
notes: "Response X5@ = 0 (anonymous), 11 (user), 12 (administrator)."
- id: view_soft_limits
label: View Soft Limits
kind: query
command: "E L X6% GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
description: "01 to 32."
notes: "Response: GrpmL X6% * X6* * X6* ]. In verbose modes 0 and 1, simplified to X6* X6*]."
- id: view_group_type
label: View Group Type
kind: query
command: "E P X6% GRPM }"
params:
- name: group_number
source_symbol: X6%
type: integer
description: "01 to 32."
notes: "Response: GrpmP X6% * X6(]. X6( = 6 (gain) or 12 (mute). In verbose modes 0 and 1, simplified to X6(]."
- id: set_single_digit_gain
label: Set Single Digit Gain
kind: action
command: "E DG X% ,PHON }"
params:
- name: gain
source_symbol: X%
type: integer
description: "0 to 1000, default 0400 (4-digit response)."
notes: "DMP 128 P models only. Response: PhonDG X% ]"
- id: view_single_digit_gain
label: View Single Digit Gain
kind: query
command: "E DG,PHON }"
params: []
notes: "DMP 128 P models only. Response: PhonDG X% ]"
- id: set_ring_gain
label: Set Ring Gain
kind: action
command: "E RG X% ,PHON }"
params:
- name: gain
source_symbol: X%
type: integer
description: "0 to 1000, default 0400 (4-digit response)."
notes: "DMP 128 P models only. Response: PhonRG X% ]"
- id: view_ring_gain
label: View Ring Gain
kind: query
command: "E RG,PHON }"
params: []
notes: "DMP 128 P models only. Response: PhonRG X% ]"
- id: set_ring_tone
label: Set Incoming Ring Tone
kind: action
command: "E RT X$ ,PHON }"
params:
- name: setting
source_symbol: X$
type: integer
description: "0 = disable, 1 = enable."
notes: "DMP 128 P models only. Response: PhonRT X$ ]"
- id: view_ring_tone
label: View Incoming Ring Tone
kind: query
command: "E RT,PHON }"
params: []
notes: "DMP 128 P models only. Response: PhonRT X$ ]"
Feedbacks
# Query-response feedbacks (selected representative states; the corresponding
# query actions above carry the verbatim ASCII request).
- id: firmware_version_state
type: string
values: ["x.xx"] # UNRESOLVED: full version range not bounded in source
query: query_firmware_version
- id: part_number_state
type: enum
values:
- "60-1211-01" # DMP 128
- "60-1211-10" # DMP 128 AT
- "60-1178-01" # DMP 128 C
- "60-1178-10" # DMP 128 C AT
- "60-1179-01" # DMP 128 C P
- "60-1179-10" # DMP 128 C P AT
query: view_part_number
- id: dhcp_state
type: enum
values: ["0", "1"]
query: view_dhcp_status
- id: verbose_mode_state
type: enum
values: ["0", "1", "2", "3"]
query: view_verbose_mode
- id: mute_state
type: enum
values: ["0", "1"]
query: read_mute_status
- id: protected_configuration_status
type: enum
values: ["0", "1"]
query: view_protected_configuration_status
- id: io_mode
type: enum
values: ["0", "1"]
query: view_io_mode
- id: io_state
type: enum
values: ["0", "1"]
query: view_io_state
- id: group_fader_level
type: integer
query: view_group_fader_level
- id: group_mute_state
type: enum
values: ["0", "1"]
query: view_group_mute
Variables
# Settable parameters that are not discrete actions (gains/levels/addresses).
- id: unit_name
type: string
max_length: 24
set: set_unit_name
- id: ip_address
type: string
default: "192.168.254.254"
set: set_ip_address
- id: subnet_mask
type: string
default: "255.255.0.0"
set: set_subnet_mask
- id: gateway_ip
type: string
default: "0.0.0.0"
set: set_gateway_ip_address
- id: gmt_offset
type: string
range: "-12:00 to 14:00 (HH:MM)"
set: set_gmt_offset
- id: daylight_savings_mode
type: enum
values: ["0", "1", "2", "3"]
set: set_daylight_savings_time
- id: connection_timeout_seconds
type: integer
range: "10 to 650000 (1 step = 10 s; param range 1-65000)"
default: 300
set: set_global_ip_port_timeout
- id: administrator_password
type: string
set: set_administrator_password
- id: user_password
type: string
set: set_user_password
- id: audio_level
type: integer
unit: "SIS value (dB x10 + 2048)"
set: set_trim_or_gain
Events
# Unsolicited messages sent by the device. See "Device-Initiated Power-Up Message"
# (p.43) and "Telephone Responses (unsolicited)" (p.53) of the source.
- id: copyright_message
trigger: "First power-on, or first IP/Telnet connection established."
payload: "© Copyright 20{yy}, Extron Electronics, DMP 128 {string}, V{x.xx}, 60-{nnnn}-{nn} ]"
notes: "{string} = full model number; V{x.xx} = firmware; 60-{nnnn}-{nn} = part number. Followed by day/date/time line on Telnet only."
- id: password_prompt
trigger: "Telnet/Web connection when a password is configured."
payload: "] Password"
notes: "Repeated until the correct admin or user password is entered."
- id: login_administrator
trigger: "Successful administrator password entry."
payload: "] Login Administrator ]"
- id: login_user
trigger: "Successful user password entry."
payload: "] Login User ]"
# Error responses (issued when a command cannot be executed):
- id: error_e11
code: E11
meaning: Invalid preset
- id: error_e12
code: E12
meaning: Invalid port number
- id: error_e13
code: E13
meaning: Invalid parameter (number is out of range)
- id: error_e14
code: E14
meaning: Not valid for this configuration
- id: error_e17
code: E17
meaning: System timed out
- id: error_e22
code: E22
meaning: Busy
- id: error_e24
code: E24
meaning: Privilege violation
- id: error_e25
code: E25
meaning: Device is not present
- id: error_e26
code: E26
meaning: Maximum connections exceeded
- id: error_e27
code: E27
meaning: Invalid event number
- id: error_e28
code: E28
meaning: Bad filename or file not found
# Telephone unsolicited responses (DMP 128 P models, verbose mode 3):
- id: phon_dial_tone
payload: "PhonDial_Tone ]"
meaning: Line is off hook, dial tone present.
- id: phon_ringing_tone
payload: "PhonRinging_Tone ]"
meaning: Far end ringing.
- id: phon_busy_tone
payload: "PhonBusy_Tone ]"
meaning: Far end busy.
- id: phon_line_intr
payload: "PhonLine_Intr ]"
meaning: Far end has terminated the call.
- id: phon_error
payload: "PhonError ]"
meaning: Unrecognized phone command.
- id: phon_ring
payload: "PhonRING ]"
meaning: Incoming call.
- id: phon_date
payload: "PhonDATE = X^ ]"
meaning: Caller ID date (mmdd).
- id: phon_time
payload: "PhonTIME = X& ]"
meaning: Caller ID time (hhss).
- id: phon_name
payload: "PhonNAME = X* ]"
meaning: Caller ID name (up to 10 chars).
- id: phon_nmbr
payload: "PhonNMBR = X@ ]"
meaning: Caller ID phone number.
Macros
# UNRESOLVED: source documents no named multi-step macro sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no explicit safety warnings, interlock procedures,
# or power-on sequencing requirements. No destructive-command confirmation flow
# is described; the system reset (E ZXXX }), flash reset (E ZFFF }), and
# "reset all device settings" (E ZY }) commands execute immediately on receipt.
Notes
- Six hardware variants share one command set: DMP 128, DMP 128 AT (Axpander), DMP 128 C, DMP 128 C AT, DMP 128 C P (Plus), DMP 128 C P AT. Telephone/modem commands apply to P models only.
- SIS commands are case-insensitive except where noted (event data size
b/B/S/L, web-encoding rules). No start-of-command or end-of-command delimiter is required beyond the trailing}(soft CR) insideE ... }framed commands and](CR/LF) terminator on responses. - Inter-character pause of 10 seconds or longer aborts the current command silently (no error returned).
- The DMP 128 exposes two SIS command subsets: basic SIS (global configuration — IP, time, files, presets, resets, events, serial port, digital I/O, telephone) documented pp.44–48, and DSP SIS (audio processing — gain/trim/mute, group masters, protected configuration, mix-points) documented pp.49–53 and 72–73. Both use identical framing.
- Telnet connections can monitor changes issued from other sockets or the serial port by enabling verbose mode 1 or 3.
- Default connection timeout is 5 minutes; Extron recommends leaving it at the default and periodically issuing the
Qquery to keep the connection alive. - Audio dB↔SIS conversion formula:
SIS_value = (desired_dB × 10) + 2048. - Mix-point routing is achieved by mute/unmute of the mix-point address; there is no separate "route" opcode. To route input N to output M, look up the mix-point address (Tables 3–10, pp.77–98) and send
E M{addr}*0AU}(unmute = route) orE M{addr}*1AU}(mute = break). - HTML reserved characters rejected in preset names, device name, passwords, and file names:
{space (spaces are OK for names)} + ~ , @ = ' [ ] { } < > ' " ; : > \ ?(verbatim from source, p.43).
Spec done. 90+ actions, all opcodes verbatim. Mix-point addr tables + dB→SIS table = param spaces (not separate commands). UNRESOLVED markers on gaps (firmware range, truncated telephone rows, dual `X!}` opcode).
## Provenance
```yaml
source_domains:
- extron.com
- manualmachine.com
- manualshelf.com
- manualsdir.com
source_urls:
- https://www.extron.com/download/files/userman/DMP_128_68-2036-01_revF.pdf
- https://manualmachine.com/extronelectronic/dmp128/1270492-user-manual/
- https://www.manualshelf.com/manual/extron-electronic/dmp128/user-guide-english.html
- https://www.manualsdir.com/manuals/311668/extron-electronics-dmp-128-user-guide.html
- https://www.extron.com/product/dmp128
retrieved_at: 2026-06-15T20:28:03.911Z
last_checked_at: 2026-06-22T13:58:50.184Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-06-22T13:58:50.184Z
matched_actions: 111
action_count: 111
confidence: medium
summary: "All 111 spec actions matched verbatim to source command table entries; mix-point address tables are parameter spaces, not separate commands; transport fully confirmed. (10 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "Power on/off commands are not documented in the source — the device appears to be always-on when powered; no SIS power command exists."
- "Firmware version compatibility not stated in source."
- "\"Set single digit interval\" telephone command appears in source but"
- "full version range not bounded in source"
- "source documents no named multi-step macro sequences."
- "source contains no explicit safety warnings, interlock procedures,"
- "firmware version compatibility range not stated in source."
- "the \"Set single digit interval\" telephone command appears in the source but its ASCII command column was truncated in the refined excerpt."
- "a \"Reset (clear) user password\" command is implied by symmetry with the administrator reset but its row was truncated in the refined excerpt."
- "the View I/O mode / View I/O state commands share an identical ASCII opcode `X!}` in the source — the response field is the only differentiator. Real-world behavior of these two rows needs device verification."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0