Summary

Network audio player (DNP-720AE / DNP-720AE SE) controlled via the Denon SYSTEM control protocol. Source declares the application terminal as Ethernet (TCP port 23, ASCII commands terminated with CR 0x0D). RS-232C connector pinout and serial config are documented in the source for reference, but the application model uses Ethernet.

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 23  # TCP port 23 (telnet), per source
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable  # inferred from PWON / PWSTANDBY commands
- routable   # inferred from SI (input select) commands
- queryable  # inferred from PW?, SI?, FV?, TM?, TFAN?, TPAN? query commands

Actions

- id: power_on
  label: Power ON
  kind: action
  command: "PWON<CR>"
  params: []

- id: power_standby
  label: Power STANDBY
  kind: action
  command: "PWSTANDBY<CR>"
  params: []

- id: power_status_query
  label: Power Status Query
  kind: query
  command: "PW?<CR>"
  params: []

- id: select_input_tuner
  label: Select Input TUNER
  kind: action
  command: "SITUNER<CR>"
  params: []

- id: select_input_rhapsody
  label: Select Input RHAPSODY
  kind: action
  command: "SIRHAPSODY<CR>"
  params: []

- id: select_input_napster
  label: Select Input NAPSTER
  kind: action
  command: "SINAPSTER<CR>"
  params: []

- id: select_input_pandora
  label: Select Input PANDORA
  kind: action
  command: "SIPANDORA<CR>"
  params: []

- id: select_input_lastfm
  label: Select Input LASTFM
  kind: action
  command: "SILASTFM<CR>"
  params: []

- id: select_input_iradio
  label: Select Input IRADIO
  kind: action
  command: "SIIRADIO<CR>"
  params: []

- id: select_input_server
  label: Select Input SERVER
  kind: action
  command: "SISERVER<CR>"
  params: []

- id: select_input_usb
  label: Select Input USB
  kind: action
  command: "SIUSB<CR>"
  params: []

- id: select_input_query
  label: Current Input Query
  kind: query
  command: "SI?<CR>"
  params: []

- id: favorite_direct
  label: FAVORITE Direct Change
  kind: action
  command: "FV{favorite_no}<CR>"
  params:
    - name: favorite_no
      type: integer
      description: Two or three ASCII characters for FAVORITE number (per source: "uses two or three ASCII characters")

- id: favorite_query
  label: FAVORITE List Query
  kind: query
  command: "FV ?<CR>"
  params: []

- id: tuner_frequency_up
  label: TUNER Frequency UP
  kind: action
  command: "TFANUP<CR>"
  params: []

- id: tuner_frequency_down
  label: TUNER Frequency DOWN
  kind: action
  command: "TFANDOWN<CR>"
  params: []

- id: tuner_frequency_set
  label: TUNER Frequency Set
  kind: action
  command: "TFAN{freq}<CR>"
  params:
    - name: freq
      type: string
      description: "6-digit frequency. >050000 = AM (kHz). <050000 = FM (MHz). Example: TFAN105000 = 1050.00 kHz AM"

- id: tuner_frequency_query
  label: TUNER Frequency Query
  kind: query
  command: "TFAN?<CR>"
  params: []

- id: tuner_preset_up
  label: TUNER Preset UP
  kind: action
  command: "TPANUP<CR>"
  params: []

- id: tuner_preset_down
  label: TUNER Preset DOWN
  kind: action
  command: "TPANDOWN<CR>"
  params: []

- id: tuner_preset_set
  label: TUNER Preset Direct
  kind: action
  command: "TPAN{preset_no}<CR>"
  params:
    - name: preset_no
      type: string
      description: "Two-character preset number (e.g. TPAN50 = PRESET No.50)"

- id: tuner_preset_query
  label: TUNER Preset Query
  kind: query
  command: "TPAN?<CR>"
  params: []

- id: tuner_preset_memory
  label: TUNER Preset Memory
  kind: action
  command: "TPANMEM{preset_no}<CR>"
  params:
    - name: preset_no
      type: string
      description: "Two-digit preset slot to store into (e.g. TPANMEM05)"

- id: tuner_band_am
  label: TUNER Band AM
  kind: action
  command: "TMANAM<CR>"
  params: []

- id: tuner_band_fm
  label: TUNER Band FM
  kind: action
  command: "TMANFM<CR>"
  params: []

- id: tuner_band_query
  label: TUNER Band/Mode Query
  kind: query
  command: "TM?<CR>"
  params: []

- id: tuner_mode_auto
  label: TUNER Mode AUTO
  kind: action
  command: "TMANAUTO<CR>"
  params: []

- id: tuner_mode_manual
  label: TUNER Mode MANUAL
  kind: action
  command: "TMANMANUAL<CR>"
  params: []

- id: menu_cursor_up
  label: Menu Cursor Up
  kind: action
  command: "MNCUP<CR>"
  params: []

- id: menu_cursor_down
  label: Menu Cursor Down
  kind: action
  command: "MNCDN<CR>"
  params: []

- id: menu_cursor_left
  label: Menu Cursor Left
  kind: action
  command: "MNCLT<CR>"
  params: []

- id: menu_cursor_right
  label: Menu Cursor Right
  kind: action
  command: "MNCRT<CR>"
  params: []

- id: menu_enter
  label: Menu Enter
  kind: action
  command: "MNENT<CR>"
  params: []

- id: favorite_on
  label: FAVORITE ON
  kind: action
  command: "MNFAV ON<CR>"
  params: []

- id: favorite_off
  label: FAVORITE OFF
  kind: action
  command: "MNFAV OFF<CR>"
  params: []

- id: ns_cursor_up
  label: Network Cursor Up
  kind: action
  command: "NS90<CR>"
  params: []

- id: ns_cursor_down
  label: Network Cursor Down
  kind: action
  command: "NS91<CR>"
  params: []

- id: ns_cursor_left
  label: Network Cursor Left
  kind: action
  command: "NS92<CR>"
  params: []

- id: ns_cursor_right
  label: Network Cursor Right
  kind: action
  command: "NS93<CR>"
  params: []

- id: ns_enter
  label: Network Enter (Play/Pause)
  kind: action
  command: "NS94<CR>"
  params: []

- id: ns_play
  label: Network Play
  kind: action
  command: "NS9A<CR>"
  params: []

- id: ns_pause
  label: Network Pause
  kind: action
  command: "NS9B<CR>"
  params: []

- id: ns_stop
  label: Network Stop
  kind: action
  command: "NS9C<CR>"
  params: []

- id: ns_skip_plus
  label: Network Skip Plus
  kind: action
  command: "NS9D<CR>"
  params: []

- id: ns_skip_minus
  label: Network Skip Minus
  kind: action
  command: "NS9E<CR>"
  params: []

- id: ns_repeat_one
  label: Network Repeat One
  kind: action
  command: "NS9H<CR>"
  params: []

- id: ns_repeat_all
  label: Network Repeat All
  kind: action
  command: "NS9I<CR>"
  params: []

- id: ns_repeat_off
  label: Network Repeat Off
  kind: action
  command: "NS9J<CR>"
  params: []

- id: ns_random_repeat_all
  label: Network Random On / Repeat All
  kind: action
  command: "NS9K<CR>"
  params: []

- id: ns_random_off
  label: Network Random Off
  kind: action
  command: "NS9M<CR>"
  params: []

- id: ns_browse_remote_toggle
  label: Browse Mode / Remote Mode Toggle (iPod Direct)
  kind: action
  command: "NS9W<CR>"
  params: []

- id: ns_preset1_call
  label: Net Audio Preset 1 Call
  kind: action
  command: "NSP1<CR>"
  params: []

- id: ns_preset2_call
  label: Net Audio Preset 2 Call
  kind: action
  command: "NSP2<CR>"
  params: []

- id: ns_preset3_call
  label: Net Audio Preset 3 Call
  kind: action
  command: "NSP3<CR>"
  params: []

- id: ns_preset1_memory
  label: Net Audio Preset 1 Memory
  kind: action
  command: "NSP1 MEM<CR>"
  params: []

- id: ns_preset2_memory
  label: Net Audio Preset 2 Memory
  kind: action
  command: "NSP2 MEM<CR>"
  params: []

- id: ns_preset3_memory
  label: Net Audio Preset 3 Memory
  kind: action
  command: "NSP3 MEM<CR>"
  params: []

- id: ns_preset_status
  label: Net Audio Preset 1-3 Status (UTF-8)
  kind: query
  command: "NSP<CR>"
  params: []

- id: ns_onscreen_info
  label: Request Onscreen Display Information
  kind: query
  command: "NSE<CR>"
  params: []

- id: ns_direct_char_search
  label: Direct Character Search
  kind: action
  command: "NSD{char}<CR>"
  params:
    - name: char
      type: string
      description: "Single character 0-9 or A-Z (except iPod Direct)"

Feedbacks

- id: power_state
  type: enum
  values: [on, standby]
  notes: "Device emits EVENT PWON<CR> or PWSTANDBY<CR> on power state change; PW?<CR> query returns the same."

- id: current_input
  type: enum
  values: [tuner, rhapsody, napster, pandora, lastfm, iradio, server, usb]
  notes: "Device emits SItoken<CR> EVENT on input change; SI?<CR> query returns it."

- id: favorite_name
  type: string
  notes: "EVENT FV + favorite_no + 35-byte fixed payload: char count + null + name (UTF-8). See source page 13 for layout."
  example: "FV25FM-87.50MHz<CR>"

- id: tuner_frequency
  type: string
  notes: "EVENT TFAN******<CR> on frequency change. 6 digits, >050000 = AM kHz, <050000 = FM MHz."

- id: tuner_preset
  type: string
  notes: "EVENT TPANA1<CR> example. PRESET number A-prefixed in the source's example."

- id: tuner_band_mode
  type: enum
  values: [anam, anfm, anauto, anmanual]
  notes: "EVENT TMANAM / TMANFM / TMANAUTO / TMANMANUAL on band/mode change."

- id: ns_preset_status
  type: object
  notes: "EVENT NSP01<20-digit name><CR> through NSP03<20-digit name><CR> for presets 1-3 (UTF-8)."

- id: ns_onscreen_lines
  type: object
  notes: "EVENT NSE0 through NSE8 (9 lines) of 96-byte fixed UTF-8 payload each, returned in response to NSE<CR>. Format: <marker><95 chars max>_<?...>. See source page 15."

Variables

# UNRESOLVED: no settable scalar variables distinct from discrete actions in the source

Events

# The source documents unsolicited EVENT messages. They share the COMMAND+PARAMETER+CR
# format and represent state-change notifications. See Feedbacks section for the
# enumerated EVENTs (PW, SI, FV, TF, TP, TM, NS preset status, NSE lines).

Macros

# UNRESOLVED: no multi-step sequences described in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings, interlock procedures, or
# power-on sequencing requirements. Note K) in the source says "wait 1 second
# before next command after PWON" but that is a timing note, not a safety interlock.

Notes

  • Application model DNP720AE(SE) declares "Application terminal: Ethernet". The RS-232C connector spec (Section Ⅰ) is included in the source for reference but the device's control interface is TCP port 23.
  • All commands are ASCII CODE + parameter + CR (0x0D). Allowed character range: 0x20 to 0x7F. 0x0D is used only as the terminator.
  • Maximum data length: 135 bytes per message.
  • RESPONSE must be returned within 200 ms of receiving a request command (COMMAND+?+CR).
  • Power-on sequencing: wait 1 second after PWON before sending the next COMMAND.
  • TF/TP/TM commands only operate when the input source is TUNER.
  • Source is document version "Ver.8.0.0" of the Denon SYSTEM control protocol; do not confuse with device firmware version.
  • The document mentions MU and MV commands in the protocol overview (mute and master volume) but does not list their parameter values in the supplied source — they are referenced but not enumerated.

Provenance

source_domains:
  - assets.denon.com
source_urls:
  - https://assets.denon.com/documentmaster/uk/dnp720ae_se_system_protocol_ver1_03.pdf
retrieved_at: 2026-04-29T16:29:23.093Z
last_checked_at: 2026-06-02T21:41:28.434Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T21:41:28.434Z
matched_actions: 60
action_count: 60
confidence: medium
summary: "All 60 spec actions matched with exact wire-level commands; transport parameters (TCP port 23, baud 9600, 8/N/1) verified verbatim in source. (5 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "firmware version not stated; protocol version (Ver.8.0.0) is a document revision, not a device firmware version"
- "no settable scalar variables distinct from discrete actions in the source"
- "no multi-step sequences described in source"
- "source contains no safety warnings, interlock procedures, or"
- "MU/MV command parameter sets not enumerated in supplied source; firmware version not stated; 9L, 9N, 9O, 9P, 9Q, 9R, 9S, 9T, 9U, 9V NS codes not listed in source (only 90-94, 9A-9M, 9W shown)."

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