Summary
SIS (Simple Instruction Set) command protocol for the Extron NetPA Ultra Series Dante-equipped DSP power amplifiers, covering NetPA U 1002 (2-channel) and NetPA U 1004 (4-channel) variants in low-impedance, 70 V, and 100 V versions. Control is exposed over RS-232 (38400 8N1), USB Config, and the Dante/AT Ethernet port. Includes device identification, firmware queries, verbose mode, network configuration, standby control, naming, preset recall, per-block audio gain/mute, group master control, system resets, and extensive status/fault monitoring with unsolicited notification support.
Transport
protocols:
- serial
- tcp # inferred from "AT port" / Dante Ethernet network commands
serial:
baud_rate: 38400
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from standby / power-save commands
- routable # inferred from mix-point OID matrix and preset recall
- queryable # inferred from query command examples
- levelable # inferred from gain / fader commands
Actions
# --- Generic Hardware Setup and Access ---
- id: query_part_number
label: Query Part Number
kind: query
command: "N"
params: []
- id: query_model_number
label: Query Model Number
kind: query
command: "1I"
params: []
- id: query_model_description
label: Query Model Description
kind: query
command: "2I"
params: []
- id: query_firmware_version
label: Query Firmware Version
kind: query
command: "Q"
params: []
- id: query_firmware_version_with_patch
label: Query Firmware Version (w/patch)
kind: query
command: "*Q"
params: []
- id: query_embedded_os_version
label: Query Embedded OS Type/Version
kind: query
command: "14Q"
params: []
- id: query_build_info
label: Query Build and Special-build Text
kind: query
command: "20Q"
params: []
- id: query_detailed_firmware_version
label: Query Detailed Firmware Version
kind: query
command: "0Q"
params: []
- id: set_verbose_mode
label: Set Verbose Mode
kind: action
command: "EX2@CV}"
params:
- name: mode
type: integer
description: 0=clear, 1=verbose, 2=tagged query, 3=verbose+tagged
- id: view_verbose_mode
label: View Verbose Mode
kind: query
command: "ECV}"
params: []
- id: reboot_dante_device
label: Reboot Dante Device
kind: action
command: "EBEXPD}"
params: []
- id: query_current_status
label: Query Current Status (Verbose 2/3)
kind: query
command: "EKEXPD}"
params: []
# --- Network Commands ---
- id: set_dhcp_on
label: Set DHCP On
kind: action
command: "ED1EXPD}"
params: []
- id: view_dhcp_status
label: View DHCP Status
kind: query
command: "EDEXPD}"
params: []
- id: set_dante_ip
label: Set Dante IP/Subnet/Gateway
kind: action
command: "EIX#*X$*X%EXPD}"
params:
- name: ip
type: string
description: IP address
- name: subnet
type: string
description: Subnet mask
- name: gateway
type: string
description: Gateway address
- id: view_dante_ip
label: View IP/Subnet/Gateway
kind: query
command: "EIEXPD}"
params: []
- id: view_mac_address
label: View MAC Address
kind: query
command: "EHEXPD}"
params: []
- id: view_dante_device_name
label: View Dante Device Name
kind: query
command: "ENEXPD}"
params: []
# --- Standby Commands ---
- id: disable_standby
label: Disable Standby (Mode 0)
kind: action
command: "E0PSAV}"
params: []
- id: enable_auto_standby
label: Enable Auto Standby (Mode 1, default)
kind: action
command: "E1PSAV}"
params: []
- id: force_standby_on
label: Force Standby On (Mode 2)
kind: action
command: "E2PSAV}"
params: []
- id: query_standby_mode
label: Query Standby Power Mode and Power Save State
kind: query
command: "EPSAV}"
params: []
# --- Naming ---
- id: write_input_name
label: Write Input Name
kind: action
command: "EX!,X@NI}"
params:
- name: input
type: integer
description: Input number (1-4)
- name: name
type: string
description: Input name (max 12 chars, illegal: ~ , @ = ` [ ] { } < > " ; : | \ ?)
- id: write_output_name
label: Write Output Name
kind: action
command: "EX!,X@NO}"
params:
- name: output
type: integer
description: Output number
- name: name
type: string
description: Output name (max 12 chars, illegal: ~ , @ = ` [ ] { } < > " ; : | \ ?)
- id: write_preset_name
label: Write Preset Name
kind: action
command: "EX#,X$NG}"
params:
- name: preset
type: integer
description: Preset number (1-8)
- name: name
type: string
description: Preset name (illegal: ~ , @ = ` [ ] { } < > " ; : | \ ?)
- id: write_group_master_name
label: Write Group Master Name
kind: action
command: "ENX1$*nameGRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- name: name
type: string
description: Group master name
- id: view_input_name
label: View Input Name
kind: query
command: "EX!NI}"
params:
- name: input
type: integer
description: Input number (1-4)
- id: view_output_name
label: View Output Name
kind: query
command: "EX!NO}"
params:
- name: output
type: integer
description: Output number
- id: view_group_master_name
label: View Group Master Name
kind: query
command: "ENX1$GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
# --- Presets ---
- id: recall_preset
label: Recall Preset
kind: action
command: "X#."
params:
- name: preset
type: integer
description: Preset number (1-8)
# --- Audio Level Control ---
- id: set_gain_level
label: Set Gain Level on OID
kind: action
command: "EGX7@*X7#AU}"
params:
- name: oid
type: integer
description: Target OID (see OID tables)
- name: gain
type: integer
description: Gain in 0.1 dB steps using 10x multiplier (e.g. +10.4 dB = 104, -3.2 dB = -32)
- id: read_gain_level
label: Read Gain Level on OID
kind: query
command: "EGX7@AU}"
params:
- name: oid
type: integer
description: Target OID (see OID tables)
# --- Audio Mute ---
- id: audio_mute
label: Mute Audio on OID
kind: action
command: "EMX7@*1AU}"
params:
- name: oid
type: integer
description: Target OID (see OID tables)
- id: audio_unmute
label: Unmute Audio on OID
kind: action
command: "EMX7@*0AU}"
params:
- name: oid
type: integer
description: Target OID (see OID tables)
- id: read_mute_status
label: Read Mute Status on OID
kind: query
command: "EMX7@AU}"
params:
- name: oid
type: integer
description: Target OID (see OID tables)
# --- Audio Group Master Commands ---
- id: set_group_fader
label: Set Group Fader Value
kind: action
command: "EDX1$*X1^GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- name: fader
type: integer
description: Fader value in 0.1 dB (10x multiplier, e.g. -29.3 dB = -293)
- id: increment_group_fader
label: Increment Group Fader
kind: action
command: "EDX1$*X2)+GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- name: delta
type: integer
description: Increment in 0.1 dB (10x multiplier, e.g. +3 dB = 30)
- id: decrement_group_fader
label: Decrement Group Fader
kind: action
command: "EDX1$*X2)-GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- name: delta
type: integer
description: Decrement in 0.1 dB (10x multiplier, e.g. -3 dB = -30)
- id: view_group_fader
label: View Group Fader Value
kind: query
command: "EDX1$GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- id: mute_group
label: Mute Group
kind: action
command: "EDX1$*1GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- id: unmute_group
label: Unmute Group
kind: action
command: "EDX1$*0GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- id: set_soft_limits
label: Set Group Soft Limits
kind: action
command: "ELX1$*X1& upper*X1& lowerGRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- name: upper
type: integer
description: Upper soft limit in 0.1 dB (10x multiplier, e.g. +6.0 dB = 60)
- name: lower
type: integer
description: Lower soft limit in 0.1 dB (10x multiplier, e.g. -6.0 dB = -60)
- id: view_soft_limits
label: View Group Soft Limits
kind: query
command: "ELX1$GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- id: view_group_type
label: View Group Type
kind: query
command: "EPX1$GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
- id: view_group_members
label: View Group Members
kind: query
command: "EOX1$GRPM}"
params:
- name: group
type: integer
description: Group master number (1-32)
# --- Resets ---
- id: reset_status
label: Reset Status Flag
kind: action
command: "EX99(ZSTS}"
params:
- name: status
type: integer
description: 0=all flags, or 53/54/55/57/58/60/61/64 for specific status
- id: reset_presets_and_names
label: Reset Presets and Names
kind: action
command: "EZG}"
params: []
- id: reset_individual_preset
label: Reset Individual Preset
kind: action
command: "EX31!ZG}"
params:
- name: preset
type: integer
description: Preset number to reset
- id: system_reset_factory_default
label: System Reset (Factory Default)
kind: action
command: "EZXXX}"
params: []
# --- Status / Monitoring ---
- id: configure_monitoring
label: Configure Monitoring Unsolicited Responses
kind: action
command: "EMX10$*X10%NTFY}"
params:
- name: flags
type: integer
description: 4-digit bitmap nBasic nDigitalClip nOverload nSignalPresence (each 0/1)
- name: port
type: integer
description: 0=all, 1=Dante, 2=RS-232, 3=USB
- id: view_monitoring_config
label: View Monitoring Configuration
kind: query
command: "EMNTFY}"
params: []
- id: view_internal_temp
label: View Internal Operating Temperature
kind: query
command: "E20STAT}"
params: []
- id: view_fault_statuses
label: View System Fault Statuses
kind: query
command: "E32STAT}"
params: []
- id: view_system_overtemp
label: View System Over-temp Fault Status
kind: query
command: "E53STAT}"
params: []
- id: view_dc_protect
label: View DC Protection Fault Status
kind: query
command: "E54STAT}"
params: []
- id: view_thermal_limit
label: View Thermal Limiting Status (per channel)
kind: query
command: "E55STAT}"
params: []
- id: view_overload_protect
label: View Overload Protect Status (per channel)
kind: query
command: "E57STAT}"
params: []
- id: view_output_open_circuit
label: View Output Open Circuit Status (per channel)
kind: query
command: "E58STAT}"
params: []
- id: view_loss_of_ac
label: View Loss of AC Status
kind: query
command: "E60STAT}"
params: []
- id: view_main_power_supply
label: View Main Power Supply Status
kind: query
command: "E61STAT}"
params: []
- id: view_signal_presence
label: View Signal Presence (per channel)
kind: query
command: "E62STAT}"
params: []
- id: view_digital_clip
label: View Digital Clip Status (per channel)
kind: query
command: "E64STAT}"
params: []
Feedbacks
- id: model_name
type: string
description: "From 1I: e.g. NetPA U 1004, NetPA U 1002-70V, etc."
- id: model_description
type: string
description: "From 2I: e.g. 100 watt 4 Channel low impedance amplifier with DSP and Dante"
- id: firmware_version
type: string
description: "From Q, returns Vn.nn"
- id: firmware_version_with_patch
type: string
description: "From *Q"
- id: embedded_os_version
type: string
description: "From 14Q"
- id: build_info
type: string
description: "From 20Q, includes build and special-build text"
- id: detailed_firmware_version
type: string
description: "From 0Q, format <bootloader> - <factory> - <updated>"
- id: verbose_mode
type: integer
values: [0, 1, 2, 3]
description: "0=clear, 1=verbose, 2=tagged query, 3=verbose+tagged"
- id: dhcp_status
type: integer
values: [0, 1]
description: "0=off, 1=on"
- id: dante_ip
type: string
description: "IP address (X#)"
- id: dante_subnet
type: string
description: "Subnet mask (X$)"
- id: dante_gateway
type: string
description: "Gateway address (X%)"
- id: mac_address
type: string
description: "From EH command (X^)"
- id: dante_device_name
type: string
description: "From EN command (X&)"
- id: standby_mode
type: integer
values: [0, 1, 2]
description: "0=timer disabled, 1=timer running not triggered, 2=standby triggered (SIS)"
- id: standby_state
type: integer
values: [0, 1, 2, 3, 4]
description: "0=active+timer off, 1=timer running (default), 2=SIS triggered, 3=timer triggered, 4=contact closure triggered"
- id: gain_level
type: integer
description: "Gain in 0.1 dB units, 10x multiplier (e.g. +10.4 dB = 104)"
- id: mute_state
type: integer
values: [0, 1]
description: "0=unmuted, 1=muted"
- id: internal_temp_c
type: integer
description: "Internal temperature in degrees Celsius"
- id: global_fault_status
type: string
description: "5-digit string: nSystemOvertemp nDCProtect nLossOfAC nPowerSupplyFault nStandby"
- id: system_overtemp_fault
type: integer
values: [0, 1, 2]
description: "0=never, 1=no longer detected, 2=detected now"
- id: dc_protect_fault
type: integer
values: [0, 1, 2]
description: "0=never, 1=no longer, 2=active protection (amber power LED; may need service)"
- id: loss_of_ac_fault
type: integer
values: [0, 1, 2]
description: "0=never, 1=past disruption, 2=current loss"
- id: power_supply_fault
type: integer
values: [0, 1, 2]
description: "0=never, 1=past, 2=current fault (may need service)"
- id: monitoring_config
type: string
description: "4-digit bitmap nBasic nDigitalClip nOverload nSignalPresence"
- id: monitoring_port
type: integer
values: [0, 1, 2, 3]
description: "0=all, 1=Dante, 2=RS-232, 3=USB"
Variables
# Audio gain (per OID) - 10x multiplier in 0.1 dB steps. Acceptable range varies by block:
- id: mic_line_input_gain
type: integer
description: "Mic/Line input gain, -18 dB to +60 dB in 0.1 dB increments (10x multiplier, e.g. 104 = +10.4 dB)"
- id: pre_mixer_gain
type: integer
description: "Pre-mixer or virtual return gain, -100 dB to +12 dB in 0.1 dB increments"
- id: post_mixer_gain
type: integer
description: "Post-mixer gain, -12 dB to +12 dB in 0.1 dB increments. Post-mixer trim cannot be muted."
- id: output_attenuation
type: integer
description: "Output attenuation, -100 dB to 0 dB in 0.1 dB increments"
- id: group_fader
type: integer
description: "Group fader value in 0.1 dB (10x multiplier)"
- id: group_soft_limit_upper
type: integer
description: "Group soft limit upper in 0.1 dB (10x multiplier)"
- id: group_soft_limit_lower
type: integer
description: "Group soft limit lower in 0.1 dB (10x multiplier)"
Events
- id: copyright_message
description: "Sent on power-up or first USB connection: (c) Copyright 2020, Extron Electronics, {model}, Vn.nn, 60-nnnn-nn"
direction: device_to_host
- id: status_change_notice
description: "Unsolicited status changes reported in verbose modes 1 or 3. Enabled via the NTFY command and directed to a specific port (all/Dante/RS-232/USB). Includes basic monitoring (system over-temp, DC protect, output thermal limit, loss of AC, standby status, output open circuit, main power supply status), digital clip, overload, and signal presence."
direction: device_to_host
- id: standby_change_notice
description: "Unsolicited response when unit enters or leaves standby mode"
direction: device_to_host
Macros
# UNRESOLVED: source does not document user-definable macro sequences
# Standby command is single-step; bridging is a hardware procedure, not a macro.
Safety
confirmation_required_for:
- system_reset_factory_default # E ZXXX - restores most settings; Dante settings preserved
- reset_presets_and_names # E ZG - wipes all presets and group master memory
interlocks:
- standby_priority_contact_closure > SIS > timer
# Contact closure shorted → mode 4 standby, persists until port un-shorted;
# supersedes all other standby conditions
- on_88_2_96khz_at_tx_disabled # NetPA U 1004: 88.2/96 kHz sample rate disables AT transmit channels
# Source contains explicit safety notes: attenuation blocks default to -24 dB on amp
# outputs out-of-the-box to prevent excessive signal at first power-up.
Notes
- Commands begin with a
W(Esc, hex 1B) prefix; the}terminator is CR only (no LF) for the command itself, while responses end with CR+LF.*is a literal command character, not a wildcard. - 38400 baud is unusual for Extron products; ensure host (DataViewer, control system) matches.
- DSP Configurator software is the primary configuration tool; SIS is the scripted/textual control plane. Both target the same internal model.
- Gain uses a 10x multiplier with no decimal; +10.4 dB =
104, -3.2 dB =-32. Negative values use an explicit-prefix. - Six model variants exist (1002/1004 × low-Z/70V/100V). OID table contents differ; the input/output naming convention (
1I,2I,N, etc.) returns the variant-specific model string. - The AT port is Dante (UDP/IP via AES67-compatible). SIS over Dante requires a DMP Plus device to bridge RS-232-style SIS into the Dante control plane; commands then use
win place of Esc and|in place of CR. - The standby contact closure (rear-panel 2-pin captive screw) is the highest-priority standby trigger and forces mode 4 until released; cannot be overridden by SIS or the inactivity timer.
- 44.1/88.2/96 kHz sample rates are supported on the AT port, but the DSP itself runs at 48 kHz. On the 1004, 88.2 and 96 kHz disable AT transmit.
- AT port latency can be set per device to 1.0, 2.0, or 5.0 ms (Dante Controller).
Provenance
source_domains:
- media.extron.com
- extron.com
- manua.ls
source_urls:
- https://media.extron.com/public/download/files/userman/68-3165-01_revE.pdf
- https://www.extron.com/product/netpa1001at
- https://www.manua.ls/extron/netpa-1001-70v-at/manual
- https://www.extron.com/download/files/userman/68-3165-50_B_NetPAU1004_1002_revB.pdf
retrieved_at: 2026-06-11T04:56:00.246Z
last_checked_at: 2026-06-11T13:42:36.297Z
Verification Summary
verdict: verified
checked_at: 2026-06-11T13:42:36.297Z
matched_actions: 62
action_count: 62
confidence: medium
summary: "All 62 spec actions matched verbatim in source command tables; source contains exactly 62 commands with no extras; transport confirmed. (3 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "AT port IP control is via Dante (UDP), not generic TCP — the only TCP-style framing is RS-232 (serial). Dante control-plane commands are pass-through and not enumerated in the source."
- "source does not document user-definable macro sequences"
- "firmware version compatibility not stated in source; error recovery sequences not documented; line-voltage/fuse ratings not part of the protocol manual."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0