Summary

The Powersoft M20D HDSP+ETH is a member of the Powersoft M Series amplifier family. This spec covers the NetLinx module control interface, which communicates with the amplifier over UDP. The module exposes commands for power control, muting, volume, and preset recall, along with telemetry feedback for temperature, impedance, current, and protection status.

Transport

protocols:
  - udp
addressing:
  port: 8002
  discovery_port: 30718
auth:
  type: none  # inferred: no auth procedure in source

Traits

traits:
  - powerable    # inferred from power on/off commands
  - levelable    # inferred from volume up/down controls
  - queryable    # inferred from query feedbacks (temperature, impedance, firmware, etc.)

Actions

actions:
  - id: power_on
    label: Power On
    kind: action
    command: "<POWER>1."
    description: "Switch amplifier ON. Requires 12V external power supply."
    params: []

  - id: power_off
    label: Power Off
    kind: action
    command: "<POWER>2."
    description: "Switch amplifier OFF. Requires 12V external power supply."
    params: []

  - id: connect
    label: Connect
    kind: action
    command: "<CONNECT>1."
    description: "Connect amplifier to NetLinx master."
    params: []

  - id: disconnect
    label: Disconnect
    kind: action
    command: "<CONNECT>0."
    description: "Disconnect amplifier from NetLinx master. Required before using Armonia software."
    params: []

  - id: debug_on
    label: Debug On
    kind: action
    command: "<DEBUG>1."
    description: "Enable module debugger."
    params: []

  - id: debug_off
    label: Debug Off
    kind: action
    command: "<DEBUG>0."
    description: "Disable module debugger."
    params: []

  - id: preset_recall
    label: Recall Preset
    kind: action
    command: "<PRESET>z-y,x."
    description: "Recall a preset from the device. By default set to off at startup."
    params:
      - name: tp_index
        type: integer
        description: "Touchpanel count index (1 to max TP count), used for feedback"
      - name: module_id
        type: integer
        description: "Module ID (1-4)"
      - name: preset_number
        type: integer
        description: "Preset number (1-4)"

  - id: mute_on
    label: Mute On
    kind: action
    description: "Mute amplifier. Channel varies by NetLinx channel code (1005=Module1, 1019=Module2)."
    params:
      - name: module
        type: integer
        description: "DSP module number (1 or 2)"

  - id: mute_off
    label: Mute Off
    kind: action
    description: "Unmute amplifier. Channel varies by NetLinx channel code (1006=Module1, 1020=Module2)."
    params:
      - name: module
        type: integer
        description: "DSP module number (1 or 2)"

  - id: mute_toggle
    label: Mute Toggle
    kind: action
    description: "Toggle mute state. Channel varies by NetLinx channel code (1007=Module1, 1021=Module2)."
    params:
      - name: module
        type: integer
        description: "DSP module number (1 or 2)"

  - id: mute_channel_on
    label: Mute Channel On
    kind: action
    description: "Software mute specific channel (1009=Ch1, 1011=Ch2, 1023=Ch3, 1025=Ch4)."
    params:
      - name: channel
        type: integer
        description: "Channel number (1-4)"

  - id: mute_channel_off
    label: Mute Channel Off
    kind: action
    description: "Software unmute specific channel (1008=Ch1, 1010=Ch2, 1022=Ch3, 1024=Ch4)."
    params:
      - name: channel
        type: integer
        description: "Channel number (1-4)"

  - id: mute_channel_toggle
    label: Mute Channel Toggle
    kind: action
    description: "Toggle mute on specific channel (1012=Ch1, 1013=Ch2, 1026=Ch3, 1027=Ch4)."
    params:
      - name: channel
        type: integer
        description: "Channel number (1-4)"

  - id: hw_mute_on
    label: Hardware Mute On
    kind: action
    description: "Hardware mute channel pair (1137=Ch1&2, 1138=Ch3&4)."
    params:
      - name: pair
        type: integer
        description: "Channel pair (1 for Ch1&2, 2 for Ch3&4)"

  - id: hw_mute_off
    label: Hardware Mute Off
    kind: action
    description: "Hardware unmute channel pair (1141=Ch1&2, 1142=Ch3&4)."
    params:
      - name: pair
        type: integer
        description: "Channel pair (1 for Ch1&2, 2 for Ch3&4)"

  - id: volume_up
    label: Volume Up
    kind: action
    description: "Increment volume for a channel. Step size defined by Dsp1VoldBStep."
    params:
      - name: channel
        type: integer
        description: "Channel number (1-4)"

  - id: volume_down
    label: Volume Down
    kind: action
    description: "Decrement volume for a channel. Step size defined by Dsp1VoldBStep."
    params:
      - name: channel
        type: integer
        description: "Channel number (1-4)"

  - id: volume_reload
    label: Reload Volume
    kind: action
    description: "Reload volume level from device (1301=Module1, 1302=Module2)."
    params:
      - name: module
        type: integer
        description: "DSP module number (1 or 2)"

  - id: led_blinking
    label: LED Blinking
    kind: action
    description: "Toggle LED blinking (1004=Module1, 1018=Module2)."
    params:
      - name: module
        type: integer
        description: "DSP module number (1 or 2)"

  - id: preset_edit_name
    label: Edit Preset Name
    kind: action
    description: "Edit the name of the current preset (channel code 1401)."
    params: []

  - id: preset_abort
    label: Abort Preset Operation
    kind: action
    description: "Abort current preset operation (channel code 1403)."
    params: []

Feedbacks

feedbacks:
  - id: temperature
    type: number
    description: "Module temperature (Module 1=addr 1001, Module 2=addr 1013)"
    unit: "°C"

  - id: rms_current
    type: number
    description: "RMS current per channel (Mod1 CH1=1002, Mod1 CH2=1003, Mod2 CH3=1014, Mod2 CH4=1015)"
    unit: "A"

  - id: impedance
    type: number
    description: "Impedance per channel (Mod1 CH1=1004, Mod1 CH2=1005, Mod2 CH3=1016, Mod2 CH4=1017)"
    unit: "Ohm"

  - id: protection_status
    type: string
    description: "Bitmap protection status per module (Mod1=1006, Mod2=1018)"

  - id: aux_positive_voltage
    type: number
    description: "Aux positive voltage (Mod1=1007, Mod2=1019)"
    unit: "V"

  - id: aux_negative_voltage
    type: number
    description: "Aux negative voltage (Mod1=1008, Mod2=1020)"
    unit: "V"

  - id: hardware_mute_state
    type: enum
    values: [muted, unmuted]
    description: "Hardware mute state per channel"

  - id: module_ready
    type: enum
    values: [ready, not_ready]
    description: "Module ready status (Mod1=1010, Mod2=1022)"

  - id: external_power
    type: enum
    values: [present, absent]
    description: "External 12V power status (addr 1011)"

  - id: current_preset
    type: integer
    description: "Current preset number per module (Mod1=1012, Mod2=1024)"

  - id: alarm
    type: enum
    description: "Alarm status per module (Mod1=1061, Mod2=1062)"

  - id: device_type
    type: string
    description: "Device type identifier (addr 1069)"

  - id: firmware_info
    type: string
    description: "Firmware version information (addr 1070)"

  - id: device_name
    type: string
    description: "Device name"

Variables

variables:
  - id: volume
    type: float
    min: null  # UNRESOLVED: minimum volume not stated
    max: null  # UNRESOLVED: maximum volume not stated
    step: 1.0
    unit: dB
    description: "Per-channel volume level. Step size configurable via Dsp1VoldBStep (default 1.0 dB starting from 0.1 dB)."

Events

# UNRESOLVED: no unsolicited event/notification mechanism described in source beyond async command feedback

Macros

# UNRESOLVED: no multi-step sequences described in source

Safety

confirmation_required_for: []
interlocks:
  - "Power ON/OFF commands only take effect if 12V external power supply is present"
  - "Amplifier accepts only one connection at a time; must disconnect from AMX before using Armonia software"
# UNRESOLVED: full power-on sequencing requirements not documented in source

Notes

  • This spec documents the NetLinx module interface (AMX), not the native Powersoft serial/IP protocol. The module wraps the actual Powersoft protocol internally.
  • Command format for string commands: <[COMMAND]>[VALUE]. (e.g., <POWER>1., <DEBUG>0.).
  • Mute and volume controls use NetLinx channel codes rather than string commands. The channel codes are mapped in the module configuration arrays.
  • The amplifier may have one or two DSP modules depending on model. Module 2 channels/presets are marked "If Present" in the source.
  • Preset names are stored persistently with defaults "Preset #1" through "Preset #4" plus "Preset Aux" per module.
  • The source code comment mentions "Master Firmware version 4.1.373" as the development environment; the module requires NetLinx Master firmware ≥ 4.xx.
  • Volume step size is configurable (Dsp1VoldBStep), defaulting to 1.0 dB.

Provenance

source_domains:
  - powersoft.com
source_urls:
  - https://www.powersoft.com/wp-content/uploads/2019/01/Powersoft_M_Series_HDSPETH_AMX_ref_sheet.pdf
retrieved_at: 2026-04-30T04:33:24.415Z
last_checked_at: 2026-06-02T22:13:15.571Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T22:13:15.571Z
matched_actions: 21
action_count: 21
confidence: medium
summary: "All 21 spec actions traced to source (dip-safe re-verify). (15 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "This source documents a NetLinx module API that wraps the native Powersoft protocol. The raw amplifier protocol commands are not documented here."
- "The source references \"M Series\" generally; M20D HDSP+ETH model compatibility is assumed from the device name."
- "Number of DSP modules/channels varies by model; not confirmed for M20D HDSP+ETH specifically."
- "Firmware version compatibility not stated; source notes NetLinx Master firmware must be ≥ 4.xx"
- "minimum volume not stated"
- "maximum volume not stated"
- "no unsolicited event/notification mechanism described in source beyond async command feedback"
- "no multi-step sequences described in source"
- "full power-on sequencing requirements not documented in source"
- "native Powersoft protocol commands sent between module and amplifier are not documented"
- "exact number of channels/modules for M20D HDSP+ETH not confirmed"
- "volume range (min/max dB) not stated"
- "protection bitmap interpretation not documented"
- "alarm types/codes not documented"
- "connection/disconnection timeout behavior not documented"

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