Summary

Access point transceiver family (MXWAPT2/4/8) for Shure Microflex Wireless microphone systems. MXWAPT control strings use Ethernet TCP/IP on port 2202 and are sent to the IP address associated with the APT. The source documents REMOTE_LINK and charger-bay TX_DEVICE_ID commands under MXWNCS Commands; their applicability to the MXWAPT models in this spec is unresolved. All messages are ASCII. The device sends unsolicited REP reports when values change, except for metered properties. Authentication requirements are not stated in the source.

Transport

protocols:
  - tcp
addressing:
  port: 2202
auth:
  type: UNRESOLVED  # Source does not state authentication requirements.

Traits

- powerable
- queryable
- routable
- levelable

Actions

# All command strings are ASCII, framed by "< >" delimiters per source.
# x = channel 1-8 (0 = all channels where allowed). SEC prefix addresses the
# secondary microphone on a channel; PRI (or omitted where documented) addresses the primary.

# --- MXWAPT Commands: SET operations (existing, payloads added) ---

- id: set_chan_name
  label: Set Channel Name
  kind: action
  command: "< SET {x} CHAN_NAME {name} >"  # Secondary: "< SET SEC {x} CHAN_NAME {name} >"
  params:
    - name: x
      type: integer
      description: Channel number 1-8
    - name: name
      type: string
      description: SET accepts up to 8 characters from set A-Z,a-z,0-9,!"#$%&'()*+,-./:;<=>?@[\]^_`~ and space; replies are padded to 31 characters

- id: set_device_id
  label: Set Device ID
  kind: action
  command: "< SET DEVICE_ID {device_id} >"
  params:
    - name: device_id
      type: string
      description: 1-8 characters from set A-Z,a-z,0-9,!"#$%&'()*+,-./:;<=>?@[\]^_`~ and space

- id: unlink_transmitter
  label: Unlink Transmitter
  kind: action
  command: "< SET {x} UNLINK >"  # Also documented: "< SET {pri_sec} {x} UNLINK >", where pri_sec is PRI or SEC
  params:
    - name: x
      type: integer
      description: APT channel or charger bay (1-8; 0 is not allowed)
    - name: pri_sec
      type: string
      description: Optional PRI or SEC prefix; omit for the legacy or primary form

- id: set_flash
  label: Set Flash
  kind: action
  command: "< SET {x} FLASH {state} >"  # Device-level primary: "< SET FLASH {state} >"; secondary channel: "< SET SEC {x} FLASH {state} >"; secondary device-level: "< SET SEC FLASH {state} >"
  params:
    - name: x
      type: integer
      description: Channel number (omit for device-level identify)
    - name: secondary
      type: string
      description: SEC for secondary commands; omit for primary
    - name: state
      type: string
      enum: [ON, OFF]
      description: Flash state

- id: set_meter_rate
  label: Set Meter Rate
  kind: action
  command: "< SET {x} METER_RATE {sssss} >"  # Secondary: "< SET SEC {x} METER_RATE {sssss} >"
  params:
    - name: x
      type: integer
      description: Channel number
    - name: secondary
      type: string
      description: SEC for secondary microphone; omit for primary
    - name: sssss
      type: integer
      description: Five-character metering interval in milliseconds (00000=off, 00100-65535)

- id: set_tx_status
  label: Set Transmitter Status
  kind: action
  command: "< SET {x} TX_STATUS {status} >"  # Secondary: "< SET SEC {x} TX_STATUS {status} >"
  params:
    - name: x
      type: integer
      description: Channel number
    - name: secondary
      type: string
      description: SEC for secondary microphone; omit for primary
    - name: status
      type: string
      enum: [ACTIVE, MUTE, STANDBY, OFF]
      description: Desired transmitter status

- id: set_audio_gain
  label: Set Audio Gain
  kind: action
  command: "< SET {x} AUDIO_GAIN {value} >"  # Relative forms: "< SET x AUDIO_GAIN DEC n >" or "< SET x AUDIO_GAIN INC n >"; secondary forms insert SEC before x
  params:
    - name: x
      type: integer
      description: Channel number
    - name: secondary
      type: string
      description: SEC for secondary microphone; omit for primary
    - name: value
      type: string
      description: Numeric gain from 000 to 060 in increments of 1, with reported and set values offset by 25; source also documents DEC n and INC n relative forms

- id: set_int_audio_gain
  label: Set Internal Audio Gain
  kind: action
  command: "< SET {x} INT_AUDIO_GAIN {value} >"  # Relative forms: "< SET x INT_AUDIO_GAIN DEC n >" or "< SET x INT_AUDIO_GAIN INC n >"; secondary forms insert SEC before x
  params:
    - name: x
      type: integer
      description: Channel number
    - name: secondary
      type: string
      description: SEC for secondary microphone; omit for primary
    - name: value
      type: string
      description: Numeric gain from 000 to 040 in increments of 1, with reported and set values offset by 25; source also documents DEC n and INC n relative forms

- id: set_led_status
  label: Set LED Status
  kind: action
  command: "< SET {x} LED_STATUS {rr} {gg} >"  # Secondary: "< SET SEC {x} LED_STATUS {rr} {gg} >"
  params:
    - name: x
      type: integer
      description: Channel number
    - name: secondary
      type: string
      description: SEC for secondary microphone; omit for primary
    - name: rr
      type: string
      enum: [ON, OF, ST, FL, PU, NC]
      description: Red LED state (ON=On, OF=Off, ST=Strobe, FL=Flash, PU=Pulse, NC=No Change)
    - name: gg
      type: string
      enum: [ON, OF, ST, FL, PU, NC]
      description: Green LED state

- id: set_tx_device_id
  label: Set Transmitter Device ID
  kind: action
  command: "< SET {x} TX_DEVICE_ID {device_id} >"  # PRI explicit: "< SET PRI {x} TX_DEVICE_ID {device_id} >"; secondary: "< SET SEC {x} TX_DEVICE_ID {device_id} >"
  params:
    - name: x
      type: integer
      description: Channel number
    - name: secondary
      type: string
      description: PRI or SEC prefix; omit for primary
    - name: device_id
      type: string
      description: 1-12 characters (A-Z, a-z, 0-9, -); shorter IDs are padded to 12 characters in replies

- id: remote_link
  label: Remote Link
  kind: action
  command: "< SET {pri_sec} {x} REMOTE_LINK {y} {zzz.zzz.zzz.zzz} >"
  params:
    - name: pri_sec
      type: string
      description: PRI or SEC
    - name: x
      type: integer
      description: Charger bay number the transmitter is in
    - name: y
      type: integer
      description: MXWAPT channel number
    - name: zzz.zzz.zzz.zzz
      type: string
      description: IP address of MXWAPT
  # Source documents REMOTE_LINK under MXWNCS Commands, not MXWAPT Commands; applicability to this spec's target models is unresolved.

- id: set_tx_device_id_ncs
  label: Set Transmitter Device ID (NCS)
  kind: action
  command: "< SET {x} TX_DEVICE_ID {device_id} >"
  params:
    - name: x
      type: integer
      description: Charger bay number the transmitter is docked in
    - name: device_id
      type: string
      description: 1-12 characters (A-Z, a-z, 0-9, -); shorter IDs are padded to 12 characters in replies
  # Source documents this command under MXWNCS Commands; applicability to this spec's target models is unresolved.

# --- MXWAPT Commands: GET/query operations (source documents each) ---

- id: query_chan_name
  label: Query Channel Name
  kind: query
  command: "< GET {x} CHAN_NAME >"  # Secondary: "< GET SEC {x} CHAN_NAME >"
  params:
    - name: x
      type: integer
      description: Channel number 1-8

- id: query_device_id
  label: Query Device ID
  kind: query
  command: "< GET DEVICE_ID >"
  params: []

- id: query_tx_available
  label: Query Transmitter Available
  kind: query
  command: "< GET {x} TX_AVAILABLE >"  # Secondary: "< GET SEC {x} TX_AVAILABLE >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_tx_status
  label: Query Transmitter Status
  kind: query
  command: "< GET {x} TX_STATUS >"  # Secondary: "< GET SEC {x} TX_STATUS >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_audio_gain
  label: Query Audio Gain
  kind: query
  command: "< GET {x} AUDIO_GAIN >"  # Secondary: "< GET SEC {x} AUDIO_GAIN >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_int_audio_gain
  label: Query Internal Audio Gain
  kind: query
  command: "< GET {x} INT_AUDIO_GAIN >"  # Secondary: "< GET SEC {x} INT_AUDIO_GAIN >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_button_sts
  label: Query Button Status
  kind: query
  command: "< GET {x} BUTTON_STS >"  # Secondary: "< GET SEC {x} BUTTON_STS >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_led_status
  label: Query LED Status
  kind: query
  command: "< GET {x} LED_STATUS >"  # Secondary: "< GET SEC {x} LED_STATUS >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_tx_type
  label: Query Transmitter Type
  kind: query
  command: "< GET {x} TX_TYPE >"  # Secondary: "< GET SEC {x} TX_TYPE >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_bp_mic_select
  label: Query Microphone Select
  kind: query
  command: "< GET {x} BP_MIC_SELECT >"  # Secondary: "< GET SEC {x} BP_MIC_SELECT >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_batt_charge
  label: Query Battery Charge
  kind: query
  command: "< GET {x} BATT_CHARGE >"  # Secondary: "< GET SEC {x} BATT_CHARGE >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_batt_run_time
  label: Query Battery Runtime
  kind: query
  command: "< GET {x} BATT_RUN_TIME >"  # Secondary: "< GET SEC {x} BATT_RUN_TIME >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_batt_health
  label: Query Battery Health
  kind: query
  command: "< GET {x} BATT_HEALTH >"  # Secondary: "< GET SEC {x} BATT_HEALTH >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_batt_time_to_full
  label: Query Battery Time to Full
  kind: query
  command: "< GET {x} BATT_TIME_TO_FULL >"  # Secondary: "< GET SEC {x} BATT_TIME_TO_FULL >"
  params:
    - name: x
      type: integer
      description: Channel number

- id: query_tx_device_id
  label: Query Transmitter Device ID
  kind: query
  command: "< GET {x} TX_DEVICE_ID >"  # PRI explicit: "< GET PRI {x} TX_DEVICE_ID >"; secondary: "< GET SEC {x} TX_DEVICE_ID >"; GET x=0 gets all microphone names
  params:
    - name: x
      type: integer
      description: Channel number (0=all)

- id: query_tx_device_id_ncs
  label: Query Transmitter Device ID (NCS)
  kind: query
  command: "< GET {x} TX_DEVICE_ID >"
  params:
    - name: x
      type: integer
      description: Charger bay the transmitter is docked in (0=all)
  # Source documents this query under MXWNCS Commands; applicability to this spec's target models is unresolved.

Feedbacks

- id: chan_name
  label: Channel Name
  type: string
  description: 31-character channel name
  values: []  # String uses set A-Z,a-z,0-9,!"#$%&'()*+,-./:;<=>?@[\]^_`~ and space

- id: device_id
  label: Device ID
  type: string
  description: 31-character Device ID (space-padded)

- id: unlink_result
  label: Unlink Result
  type: enum
  values: [SUCCESS, ERROR]
  channels: [1-8]

- id: flash_state
  label: Flash State
  type: enum
  values: [ON, OFF]

- id: meter_rate
  label: Meter Rate
  type: integer
  description: Metering interval in ms (00000=off, 00100-65535)
  channels: [1-8]
  secondary: true

- id: sample
  label: Sample
  type: object
  description: Unsolicited audio/RF metering data (SAMPLE format)
  fields:
    - name: channel
      type: integer
    - name: rf_level
      type: string
      description: RF level (aaa)
    - name: audio_level
      type: string
      description: Audio level (eee)

- id: tx_available
  label: Transmitter Available
  type: enum
  values: [YES, NO]
  channels: [1-8]
  secondary: true

- id: tx_status
  label: Transmitter Status
  type: enum
  values: [ACTIVE, MUTE, STANDBY, ON_CHARGER, UNKNOWN]
  channels: [1-8]
  secondary: true

- id: audio_gain
  label: Audio Gain
  type: integer
  description: Gain value 000-060 (actual dB = value - 25)
  channels: [1-8]
  secondary: true

- id: int_audio_gain
  label: Internal Audio Gain
  type: integer
  description: Gain value 000-040 (actual dB = value - 25)
  channels: [1-8]
  secondary: true

- id: button_sts
  label: Button Status
  type: enum
  values: [ON, OFF]
  description: Microphone button pressed/released state
  channels: [1-8]
  secondary: true

- id: led_status
  label: LED Status
  type: object
  description: Red and green LED states
  fields:
    - name: red
      type: enum
      values: [ON, OF, ST, FL, PU, NC]
    - name: green
      type: enum
      values: [ON, OF, ST, FL, PU, NC]
  channels: [1-8]
  secondary: true

- id: tx_type
  label: Transmitter Type
  type: enum
  values: [MXW1, MXW2, MXW6, MXW8]
  channels: [1-8]
  secondary: true

- id: bp_mic_select
  label: Microphone Select
  type: enum
  values: [INT, EXT, ERR, UNKNOWN]
  channels: [1-8]
  secondary: true

- id: batt_charge
  label: Battery Charge
  type: integer
  description: Remaining battery life as percentage (000-100; 255=device off)
  channels: [1-8]
  secondary: true

- id: batt_run_time
  label: Battery Runtime
  type: integer
  description: Minutes until microphone turns off; special codes 65532-65535
  channels: [1-8]
  secondary: true

- id: batt_health
  label: Battery Health
  type: integer
  description: Capacity percentage relative to factory original (000-100; 255=unknown)
  channels: [1-8]
  secondary: true

- id: batt_time_to_full
  label: Battery Time to Full
  type: integer
  description: Minutes until fully charged; special codes 65533-65535
  channels: [1-8]
  secondary: true

- id: tx_device_id
  label: Transmitter Device ID
  type: string
  description: 12-character transmitter ID (space-padded)
  channels: [1-8]
  secondary: true

- id: remote_link_result
  label: Remote Link Result
  type: enum
  values: [SUCCESS, ERR]
  description: Result of REMOTE_LINK command; source documents this command under MXWNCS Commands, so target applicability is unresolved

- id: error
  label: Error
  type: string
  description: "< REP ERR >" - command not implemented (typo or non-existent command)

# Special codes for 3-digit responses (255, 254, 253, 252)
# Special codes for 5-digit responses (65535, 65534, 65533, 65532)
# See Notes section for mapping

Variables

# All settable parameters exposed via GET/SET/REP pattern.
# See Actions and Feedbacks above for full variable list.
# UNRESOLVED: no standalone Variables section distinct from Actions/Feedbacks in source

Events

# Device sends unsolicited REP when values change (except metered properties).
# See Feedbacks for list of observable states.
# UNRESOLVED: no explicit event subscription model documented

Macros

# External mute workflow (teleconferencing):
# 1. Select "External Mute" in MXWAPT web app Preferences
# 2. Mic button press → APT sends BUTTON_STS ON → control system unmutes mixer
# 3. Mic button release → APT sends BUTTON_STS OFF → control system mutes mixer
# 4. LED state set via SET LED_STATUS ON OF / OF ON for red/green indication

# Flash identify (per device or per channel):
# < SET FLASH ON > or < SET x FLASH ON > → device/channel identifies → < REP FLASH OFF >

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no explicit safety warnings or interlock procedures in source.
# Note: echo cancellation requires constant audio signal; muting is done in the external echo canceller/mixer, not locally at the microphone.

Notes

Command syntax: ASCII strings enclosed in < >. GET/SET/REP/SAMPLE formats. x = channel 0-8 (0=all channels where documented). SEC prefix addresses a secondary microphone on a channel.

Battery special codes (3-digit, BATT_CHARGE, BATT_HEALTH): 255 = device off / unknown, as specified for each property in the source.

Battery special codes (5-digit, BATT_RUN_TIME, BATT_TIME_TO_FULL):

  • BATT_RUN_TIME 65532: powered by wall wart charger
  • BATT_RUN_TIME 65533: on charger
  • BATT_RUN_TIME 65534: runtime being calculated
  • BATT_RUN_TIME 65535: device off
  • BATT_TIME_TO_FULL 65535: transmitter off
  • BATT_TIME_TO_FULL 65534: on charger and fully charged
  • BATT_TIME_TO_FULL 65533: transmitter on and not on charger

Audio gain offset: Reported and set values are offset by 25. Source example: SET value 47 yields reported value 047; actual dB = value - 25.

LED values: rr/gg = ON, OF, ST, FL, PU, NC (On, Off, Strobe, Flash, Pulse, No Change).

CHAN_NAME SET: Supports up to 8 characters; device responds with a 31-character name.

Channel 0: Used for GET ALL on TX_DEVICE_ID. Not valid for UNLINK. Other uses depend on the command documentation.

Metering: SAMPLE messages are sent at configured METER_RATE interval. 00000 = metering off. 00100 to 65535 ms per sample; 00000 is the documented default.

External mute for teleconferencing: Select "External Mute" in the MXWAPT web app. Muting is done in the external echo canceller/mixer, not at the microphone.

Provenance

source_domains:
  - pubs.shure.com
  - techportal.shure.com
source_urls:
  - https://pubs.shure.com/command-strings/MXW/en-US
  - https://pubs.shure.com/command-strings/MXA310/en-US
  - https://techportal.shure.com/en
retrieved_at: 2026-05-13T21:24:58.616Z
last_checked_at: 2026-10-07T12:55:07.344Z

Verification Summary

verdict: verified
checked_at: 2026-10-07T12:55:07.344Z
matched_actions: 28
action_count: 28
confidence: medium
summary: "All 28 action units match source commands, and port 2202 over TCP is confirmed. The spec covers the MXWAPT catalogue, including the MXWNCS commands it caveats as unresolved. (9 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "serial/RS-232 not supported per source — omitted per N/A rule"
- "no standalone Variables section distinct from Actions/Feedbacks in source"
- "no explicit event subscription model documented"
- "no explicit safety warnings or interlock procedures in source."
- "firmware version compatibility not stated in source"
- "REMOTE_LINK requires firmware v4.0 or greater according to the MXWNCS section; applicability to the MXWAPT target models is unresolved"
- "TCP keepalive or connection maintenance details not documented"
- "maximum concurrent connections not stated"
- "REMOTE_LINK and charger-bay TX_DEVICE_ID commands are documented under MXWNCS Commands; applicability to this spec's MXWAPT target models is unresolved"

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