Summary
Network control protocol (Ver.1.0.0) for the Denon DRA-N5 / RCD-N8, carried over Ethernet (RJ-45, 10/100BASE-TX) on TCP port 23 (telnet). ASCII command set covering power, master volume, mute, input source select, sleep timer, timers/clock, tone (bass/treble/balance), SDB, source direct, favorites, menu/favorite cursor control, analog tuner, DAB tuner, network/USB/iPod browse control (NS), and CD transport control (N8 only).
Transport
protocols:
- tcp
addressing:
port: 23 # stated: "Communication port : TCP port 23 (telnet)"
auth:
type: none # inferred: no auth procedure in source
Traits
# - powerable (PWON/PWSTANDBY present)
# - routable (SI input source select commands present)
# - queryable (PW?, MV?, MU?, SI?, SLP?, TS?, TO?, PS sub-queries present)
# - levelable (MV, PSBAS, PSTRE, PSBAL level controls present)
traits:
- powerable # inferred from power command examples
- routable # inferred from input source select commands
- queryable # inferred from query command examples
- levelable # inferred from volume/tone level commands
Actions
# All commands terminated with CR (0x0D). ASCII 0x20-0x7F only. Max data length 135 bytes.
# <CR> omitted from command strings below; append 0x0D when transmitting.
# Notes: wait 1 second after PWON before next command. TF/TP '*' params
# inoperative unless input source is TUNER. CD (BD), analog tuner, DAB are N8 only.
# --- Power ---
- id: power_on
label: Power On
kind: action
command: "PWON"
params: []
- id: power_standby
label: Power Standby
kind: action
command: "PWSTANDBY"
params: []
- id: power_status_query
label: Power Status Query
kind: query
command: "PW?"
params: []
# --- Master Volume ---
- id: master_volume_up
label: Master Volume Up
kind: action
command: "MVUP"
params: []
- id: master_volume_down
label: Master Volume Down
kind: action
command: "MVDOWN"
params: []
- id: master_volume_set
label: Master Volume Set
kind: action
command: "MV{level}"
params:
- name: level
type: string
description: "Two ASCII digits, 00 to 60 (dB); 00 = minimum level"
- id: master_volume_query
label: Master Volume Query
kind: query
command: "MV?"
params: []
# --- Mute ---
- id: mute_on
label: Mute On
kind: action
command: "MUON"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "MUOFF"
params: []
- id: mute_query
label: Mute Status Query
kind: query
command: "MU?"
params: []
# --- Input Source Select ---
- id: select_input_iradio
label: Select Input Internet Radio
kind: action
command: "SIIRADIO"
params: []
- id: select_input_server
label: Select Input Music Server
kind: action
command: "SISERVER"
params: []
- id: select_input_lastfm
label: Select Input LastFM (E2 only)
kind: action
command: "SILASTFM"
params: []
- id: select_input_spotify
label: Select Input Spotify
kind: action
command: "SISPOTIFY"
params: []
- id: select_input_pandora
label: Select Input Pandora (NA only)
kind: action
command: "SIPANDORA"
params: []
- id: select_input_siriusxm
label: Select Input SiriusXM (NA only)
kind: action
command: "SISIRIUSXM"
params: []
- id: select_input_ipod
label: Select Input iPod
kind: action
command: "SIIPOD"
params: []
- id: select_input_usb
label: Select Input USB
kind: action
command: "SIUSB"
params: []
- id: select_input_auxa
label: Select Input AUXA / Portable In (N8 only)
kind: action
command: "SIAUXA"
params: []
- id: select_input_auxb
label: Select Input AUXB Analog In (N5: Analog In, N8: Analog In 1)
kind: action
command: "SIAUXB"
params: []
- id: select_input_auxc
label: Select Input AUXC Analog In 2 (N8 only)
kind: action
command: "SIAUXC"
params: []
- id: select_input_auxd
label: Select Input AUXD Digital In
kind: action
command: "SIAUXD"
params: []
- id: select_input_portable_in
label: Select Input Portable In
kind: action
command: "SIPORTABLE_IN"
params: []
- id: select_input_cd
label: Select Input CD (N8 only)
kind: action
command: "SICD"
params: []
- id: select_input_fm
label: Select Input FM (N8 only)
kind: action
command: "SIFM"
params: []
- id: select_input_am
label: Select Input AM (N8 JP only)
kind: action
command: "SIAM"
params: []
- id: select_input_dab
label: Select Input DAB (N8 only)
kind: action
command: "SIDAB"
params: []
- id: input_source_query
label: Input Source Query
kind: query
command: "SI?"
params: []
# --- Sleep Timer ---
- id: sleep_timer_off
label: Sleep Timer Off
kind: action
command: "SLPOFF"
params: []
- id: sleep_timer_set
label: Sleep Timer Set
kind: action
command: "SLP{minutes}"
params:
- name: minutes
type: string
description: "Three ASCII digits, 001 to 120; 010 = 10 minutes"
- id: sleep_timer_query
label: Sleep Timer Query
kind: query
command: "SLP?"
params: []
# --- Portable In check ---
- id: portable_in_connection_check
label: Portable In Connection Check
kind: query
command: "PICONECT?"
params: []
# --- Timers ---
- id: once_timer_set
label: Once Timer Set
kind: action
command: "TSONCE {timer_spec}"
params:
- name: timer_spec
type: string
description: "Format @**##-@$$%% [F][N] VV [O]; @: A/P/2 (AM/PM/24h); start/stop times (FFFF = not used); [F]: function FA/CD/IP/US; [N]: 2-digit preset; VV: volume; [O]: 0=OFF 1=ON. Source example: TSONCE A0730-AFFFF DV00 05 0"
notes: "Source examples: TSONCE P0630-PFFFF TU01 05 1; TSONCE 21930-2FFFF IP00 05 1"
- id: every_timer_set
label: Every Timer Set
kind: action
command: "TSEVERY {timer_spec}"
params:
- name: timer_spec
type: string
description: "Same format as ONCE timer. Source example: TSEVERY P0630-PFFFF DV00 05 0"
notes: "Source examples: TSEVERY P0630-PFFFF TU01 05 1; TSEVERY 21830-2FFFF IP00 05 1"
- id: timer_status_query
label: Timer Status Query
kind: query
command: "TS?"
params: []
- id: timer_once_off_every_off
label: Timer Once=Off Every=Off
kind: action
command: "TOOFF OFF"
params: []
- id: timer_once_off_every_on
label: Timer Once=Off Every=On
kind: action
command: "TOOFF ON"
params: []
- id: timer_once_on_every_off
label: Timer Once=On Every=Off
kind: action
command: "TOON OFF"
params: []
- id: timer_once_on_every_on
label: Timer Once=On Every=On
kind: action
command: "TOON ON"
params: []
- id: timer_onoff_query
label: Timer On/Off Status Query
kind: query
command: "TO?"
params: []
- id: clock_request
label: Clock Request
kind: query
command: "CLK"
params: []
# --- Parameter Set (tone / balance / SDB / source direct) ---
- id: bass_up
label: Bass Up
kind: action
command: "PSBAS UP"
params: []
- id: bass_down
label: Bass Down
kind: action
command: "PSBAS DOWN"
params: []
- id: bass_set
label: Bass Set
kind: action
command: "PSBAS {level}"
params:
- name: level
type: string
description: "00 to 99 by ASCII, 50 = 0dB; operable range 40 to 60 (-10 to +10 dB), 2-step (40,42,...,60)"
- id: bass_query
label: Bass Status Query
kind: query
command: "PSBAS ?"
params: []
- id: treble_up
label: Treble Up
kind: action
command: "PSTRE UP"
params: []
- id: treble_down
label: Treble Down
kind: action
command: "PSTRE DOWN"
params: []
- id: treble_set
label: Treble Set
kind: action
command: "PSTRE {level}"
params:
- name: level
type: string
description: "00 to 99 by ASCII, 50 = 0dB; operable range 40 to 60, 2-step"
- id: treble_query
label: Treble Status Query
kind: query
command: "PSTRE ?"
params: []
- id: balance_left
label: Balance Left
kind: action
command: "PSBAL LEFT"
params: []
- id: balance_right
label: Balance Right
kind: action
command: "PSBAL RIGHT"
params: []
- id: balance_set
label: Balance Set
kind: action
command: "PSBAL {level}"
params:
- name: level
type: string
description: "00 to 99 by ASCII, 50 = center; operable range 44 to 56 (L6 to R6)"
- id: balance_query
label: Balance Status Query
kind: query
command: "PSBAL ?"
params: []
- id: sdb_on
label: SDB On
kind: action
command: "PSSDB ON"
params: []
- id: sdb_off
label: SDB Off
kind: action
command: "PSSDB OFF"
params: []
- id: sdb_query
label: SDB Status Query
kind: query
command: "PSSDB ?"
params: []
- id: source_direct_on
label: Source Direct On
kind: action
command: "PSSDI ON"
params: []
- id: source_direct_off
label: Source Direct Off
kind: action
command: "PSSDI OFF"
params: []
- id: source_direct_query
label: Source Direct Status Query
kind: query
command: "PSSDI ?"
params: []
# --- Favorites ---
- id: favorite_select
label: Favorite Direct Select
kind: action
command: "FV {number}"
params:
- name: number
type: string
description: Favorite number (source example: FV 25)
- id: favorite_query
label: Favorite List Query
kind: query
command: "FV ?"
params: []
- id: favorite_memory
label: Favorite Memory
kind: action
command: "FVMEM {number}"
params:
- name: number
type: string
description: Favorite number to store (source example: FVMEM 01)
- id: favorite_delete
label: Favorite Delete
kind: action
command: "FVDEL {number}"
params:
- name: number
type: string
description: Favorite number to delete (source example: FVDEL 01)
# --- Menu / Favorite cursor control ---
- id: menu_cursor_up
label: Menu Cursor Up
kind: action
command: "MNCUP"
params: []
- id: menu_cursor_down
label: Menu Cursor Down
kind: action
command: "MNCDN"
params: []
- id: menu_cursor_left
label: Menu Cursor Left
kind: action
command: "MNCLT"
params: []
- id: menu_cursor_right
label: Menu Cursor Right
kind: action
command: "MNCRT"
params: []
- id: menu_enter
label: Menu Enter
kind: action
command: "MNENT"
params: []
- id: favorite_on
label: Favorite Mode On
kind: action
command: "MNFAV ON"
params: []
- id: favorite_off
label: Favorite Mode Off
kind: action
command: "MNFAV OFF"
params: []
# --- Analog Tuner (N8 only) ---
- id: tuner_freq_up
label: Tuner Frequency Up (analog)
kind: action
command: "TFANUP"
params: []
- id: tuner_freq_down
label: Tuner Frequency Down (analog)
kind: action
command: "TFANDOWN"
params: []
- id: tuner_freq_set
label: Tuner Frequency Set (analog)
kind: action
command: "TFAN{frequency}"
params:
- name: frequency
type: string
description: "6 digits; >050000 = AM (kHz), <050000 = FM (MHz). Source example: TFAN105000 (1050.00 kHz at AM)"
- id: tuner_freq_query
label: Tuner Frequency Query (analog)
kind: query
command: "TFAN?"
params: []
- id: tuner_preset_up
label: Tuner Preset Channel Up
kind: action
command: "TPANUP"
params: []
- id: tuner_preset_down
label: Tuner Preset Channel Down
kind: action
command: "TPANDOWN"
params: []
- id: tuner_preset_set
label: Tuner Preset Direct Select
kind: action
command: "TPAN{preset}"
params:
- name: preset
type: string
description: Preset number (source example: TPAN50 = preset 50)
- id: tuner_preset_query
label: Tuner Preset Query
kind: query
command: "TPAN?"
params: []
- id: tuner_preset_memory
label: Tuner Preset Memory
kind: action
command: "TPANMEM{preset}"
params:
- name: preset
type: string
description: Preset number (source example: TPANMEM05)
- id: tuner_band_am
label: Tuner Band AM
kind: action
command: "TMANAM"
params: []
- id: tuner_band_fm
label: Tuner Band FM
kind: action
command: "TMANFM"
params: []
- id: tuner_band_mode_query
label: Tuner Band/Mode Query
kind: query
command: "TM?"
params: []
- id: tuner_mode_auto
label: Tuning Mode Auto
kind: action
command: "TMANAUTO"
params: []
- id: tuner_mode_manual
label: Tuning Mode Manual
kind: action
command: "TMANMANUAL"
params: []
# --- DAB Tuner (N8 only) ---
- id: dab_station_up
label: DAB Station Up
kind: action
command: "TFDAUP"
params: []
- id: dab_station_down
label: DAB Station Down
kind: action
command: "TFDADOWN"
params: []
- id: dab_station_set
label: DAB Station Direct Select
kind: action
command: "TFDA{station}"
params:
- name: station
type: string
description: "3 digits / frequency block (source example: TFDAA13)"
- id: dab_station_query
label: DAB Station/Frequency Query
kind: query
command: "TFDA?"
params: []
- id: dab_band_set
label: Band Set to DAB
kind: action
command: "TMDA"
params: []
# --- Network/USB/iPod browse control (NS) ---
- id: ns_cursor_up
label: NS Cursor Up
kind: action
command: "NS90"
params: []
- id: ns_cursor_down
label: NS Cursor Down
kind: action
command: "NS91"
params: []
- id: ns_cursor_left
label: NS Cursor Left
kind: action
command: "NS92"
params: []
- id: ns_cursor_right
label: NS Cursor Right
kind: action
command: "NS93"
params: []
- id: ns_enter
label: NS Enter
kind: action
command: "NS94"
params: []
- id: ns_97
label: NS97 Control
kind: action
command: "NS97"
params: []
notes: "UNRESOLVED: function description blank in source"
- id: ns_98
label: NS98 Control
kind: action
command: "NS98"
params: []
notes: "UNRESOLVED: function description blank in source"
- id: ns_play
label: NS Play (iRadio/mServer/USB), Play/Pause (iPod Direct)
kind: action
command: "NS9A"
params: []
- id: ns_pause
label: NS Pause (Play/Pause on iPod Direct)
kind: action
command: "NS9B"
params: []
- id: ns_stop
label: NS Stop
kind: action
command: "NS9C"
params: []
- id: ns_skip_plus
label: NS Skip Plus
kind: action
command: "NS9D"
params: []
- id: ns_skip_minus
label: NS Skip Minus
kind: action
command: "NS9E"
params: []
- id: ns_start_ff_9f
label: NS Start Fast Forward (9F)
kind: action
command: "NS9F"
params: []
- id: ns_start_ff_9g
label: NS Start Fast Forward (9G)
kind: action
command: "NS9G"
params: []
notes: "Source labels both 9F and 9G 'Start Fast Forward' verbatim; 9G likely fast reverse but not stated"
- id: ns_repeat_one
label: NS Repeat One (USB/iPod Direct/mServer)
kind: action
command: "NS9H"
params: []
- id: ns_repeat_all
label: NS Repeat All (USB/iPod Direct/mServer)
kind: action
command: "NS9I"
params: []
- id: ns_repeat_off
label: NS Repeat Off (USB/iPod Direct/mServer)
kind: action
command: "NS9J"
params: []
- id: ns_random_on
label: NS Random On/Repeat All (USB/mServer); Shuffle Songs (iPod Direct)
kind: action
command: "NS9K"
params: []
- id: ns_random_off
label: NS Random Off (USB/mServer); Shuffle Off (iPod Direct)
kind: action
command: "NS9M"
params: []
- id: ns_browse_remote_toggle
label: Toggle Browse/Remote Mode (iPod Direct only)
kind: action
command: "NS9W"
params: []
- id: ns_page_up
label: NS Page Up
kind: action
command: "NS9X"
params: []
- id: ns_page_down
label: NS Page Down
kind: action
command: "NS9Y"
params: []
- id: ns_end_ff_rev
label: NS End Fast Forward/Reverse
kind: action
command: "NS9Z"
params: []
- id: ns_display_info_ascii
label: Request Onscreen Display Info List (ASCII)
kind: query
command: "NSA"
params: []
notes: Returns NSA0-NSA8 display line data, ASCII, 96-byte fixed records
- id: ns_display_info_utf8
label: Request Onscreen Display Info List (UTF-8)
kind: query
command: "NSE"
params: []
notes: Returns NSE0-NSE8 display line data, UTF-8, 96-byte fixed records
# --- CD Control (N8 only, BD command set) ---
- id: cd_cursor_up
label: CD Cursor Up
kind: action
command: "BDCURSOR UP"
params: []
- id: cd_cursor_down
label: CD Cursor Down
kind: action
command: "BDCURSOR DOWN"
params: []
- id: cd_cursor_left
label: CD Cursor Left
kind: action
command: "BDCURSOR LEFT"
params: []
- id: cd_cursor_right
label: CD Cursor Right
kind: action
command: "BDCURSOR RIGHT"
params: []
- id: cd_enter
label: CD Enter
kind: action
command: "BDENTER"
params: []
- id: cd_play
label: CD Play
kind: action
command: "BDPLAY"
params: []
- id: cd_pause
label: CD Pause
kind: action
command: "BDPAUSE"
params: []
- id: cd_play_pause
label: CD Play/Pause
kind: action
command: "BDPLAY PAUSE"
params: []
- id: cd_stop
label: CD Stop
kind: action
command: "BDSTOP"
params: []
- id: cd_skip_plus
label: CD Skip Plus
kind: action
command: "BDSKIP +"
params: []
- id: cd_skip_minus
label: CD Skip Minus
kind: action
command: "BDSKIP -"
params: []
- id: cd_manual_search_plus
label: CD Manual Search Plus (search forward)
kind: action
command: "BDMANUAL SEARCH +"
params: []
- id: cd_manual_search_minus
label: CD Manual Search Minus (search reverse)
kind: action
command: "BDMANUAL SEARCH -"
params: []
- id: cd_track_direct_select
label: CD Direct Track Select
kind: action
command: "BDDS TRACK {track}"
params:
- name: track
type: string
description: "0000 to 9999 by ASCII (source example: BDDS TRACK 0010)"
- id: cd_tray_open_close
label: CD Tray Open/Close
kind: action
command: "BDOPEN/CLOSE"
params: []
- id: cd_repeat
label: CD Repeat Toggle
kind: action
command: "BDREPEAT"
params: []
- id: cd_repeat_one
label: CD Repeat One
kind: action
command: "BDREPEAT ONE"
params: []
- id: cd_repeat_all
label: CD Repeat All
kind: action
command: "BDREPEAT ALL"
params: []
- id: cd_repeat_off
label: CD Repeat Off
kind: action
command: "BDREPEAT OFF"
params: []
- id: cd_random
label: CD Random Toggle
kind: action
command: "BDRANDOM"
params: []
- id: cd_random_on
label: CD Random On
kind: action
command: "BDRANDOM ON"
params: []
- id: cd_random_off
label: CD Random Off
kind: action
command: "BDRANDOM OFF"
params: []
- id: cd_folder_mode_on
label: CD Folder Mode On
kind: action
command: "BDFOLDER MODE ON"
params: []
- id: cd_folder_mode_off
label: CD Folder Mode Off
kind: action
command: "BDFOLDER MODE OFF"
params: []
- id: cd_folder_mode_toggle
label: CD Folder Mode Toggle
kind: action
command: "BDFOLDER MODE"
params: []
- id: cd_folder_name_query
label: CD Folder Name Request
kind: query
command: "BDFOLDER NAME?"
params: []
- id: cd_file_name_query
label: CD File Name Request
kind: query
command: "BDFILE NAME?"
params: []
- id: cd_artist_name_query
label: CD Artist Name Request
kind: query
command: "BDARTIST NAME?"
params: []
- id: cd_album_name_query
label: CD Album Name Request
kind: query
command: "BDALBUM NAME?"
params: []
- id: cd_song_name_query
label: CD Song Name Request
kind: query
command: "BDSONG NAME?"
params: []
- id: cd_status_query
label: CD System Status Request
kind: query
command: "BDSTATUS?"
params: []
notes: Returns BDSTATUS frame with answer/disc-type/audio-format/time/play-mode/status codes
- id: cd_folder_plus
label: CD Folder Plus
kind: action
command: "BDFOLDER +"
params: []
- id: cd_folder_minus
label: CD Folder Minus
kind: action
command: "BDFOLDER -"
params: []
Feedbacks
# EVENT/RESPONSE messages share the COMMAND form. RESPONSE sent within 200ms of a request.
- id: power_state
type: enum
values: [ON, STANDBY]
trigger: "PWON / PWSTANDBY event; response to PW?"
- id: master_volume
type: string
description: "Two ASCII digits 00 to 60"
trigger: "MV** event; response to MV?"
- id: mute_state
type: enum
values: [ON, OFF]
trigger: "MUON / MUOFF event; response to MU?"
- id: input_source
type: enum
values: [IRADIO, SERVER, LASTFM, SPOTIFY, PANDORA, SIRIUSXM, IPOD, USB, AUXA, AUXB, AUXC, AUXD, PORTABLE_IN, CD, FM, AM, DAB]
trigger: "SI** event; response to SI?"
- id: sleep_timer
type: string
description: "OFF or three digits 001 to 120 (minutes)"
trigger: "SLP** event; response to SLP?"
- id: portable_in_connection
type: enum
values: [OK, NG]
trigger: "PICONECTOK / PICONECTNG response to PICONECT?"
- id: once_timer_state
type: string
description: "TSONCE @**##-@$$%% [F][N] VV [O] timer frame"
trigger: "TSONCE event; response to TS?"
- id: every_timer_state
type: string
description: "TSEVERY @**##-@$$%% [F][N] VV [O] timer frame"
trigger: "TSEVERY event; response to TS?"
- id: timer_onoff_state
type: enum
values: ["OFF OFF", "OFF ON", "ON OFF", "ON ON"]
trigger: "TO** event; response to TO?"
- id: clock
type: string
description: Clock event frame
trigger: "CLK event"
- id: bass_level
type: string
description: "00-99, 50 = 0dB"
trigger: "PSBAS ** event"
- id: treble_level
type: string
description: "00-99, 50 = 0dB"
trigger: "PSTRE ** event"
- id: balance_level
type: string
description: "00-99, 50 = center"
trigger: "PSBAL ** event"
- id: sdb_state
type: enum
values: [ON, OFF]
trigger: "PSSDB ON / PSSDB OFF event"
- id: source_direct_state
type: enum
values: [ON, OFF]
trigger: "PSSDI ON / PSSDI OFF event"
- id: favorite_name
type: string
description: "FV**_XX_aaaa_????? frame - favorite no., function (0=Internet Radio,1=Music Server,2=TUNER), name up to 32 bytes, null-padded to 35 bytes. Source example: FV25 01 FM-87.50MHz"
trigger: "FV** event; response to FV ?"
- id: tuner_frequency
type: string
description: "6-digit frequency; >050000 = AM kHz, <050000 = FM MHz (N8 only). Source example: TFAN105000 = 1050.00 kHz AM"
trigger: "TFAN****** event"
- id: tuner_preset
type: string
description: "Preset number, or OFF when no preset (N8 only). Source example: TPANA1"
trigger: "TPAN** / TPANOFF event"
- id: tuner_band_mode
type: enum
values: [ANAM, ANFM, ANAUTO, ANMANUAL]
trigger: "TM** event (N8 only)"
- id: dab_station
type: string
description: "3-digit frequency block at DAB band (N8 only). Source example: TFDA13F"
trigger: "TFDA*** / TMDA event"
- id: onscreen_display_ascii
type: string
description: "NSA0-NSA8, one frame per display line 1-9, ASCII max 95 bytes + null + info byte, 96 bytes fixed; info byte bit1 = playable music, bit4 = cursor select"
trigger: "response to NSA (mServer/iRadio)"
- id: onscreen_display_utf8
type: string
description: "NSE0-NSE8, same framing as NSA but UTF-8 characters"
trigger: "response to NSE (mServer/iRadio)"
- id: cd_status
type: string
description: "BDSTATUS frame: answer code (0-3), disc type, audio format/channel, status code (0-G), play mode code (1-;), track info, time mode, elapsed h/m/s, disc/USB mode (N8 only)"
trigger: "response to BDSTATUS?"
Variables
- id: master_volume
type: string
min: "00"
max: "60"
unit: dB
description: Set via MV**; 00 = minimum; three ASCII chars when 1dB step (00,05,...,60)
- id: sleep_timer
type: string
min: "001"
max: "120"
unit: minutes
description: Set via SLP***; 010 = 10 minutes
- id: bass_level
type: string
min: "40"
max: "60"
unit: dB
description: Set via PSBAS **; 50 = 0dB, 2-step values (40,42,...,60)
- id: treble_level
type: string
min: "40"
max: "60"
unit: dB
description: Set via PSTRE **; 50 = 0dB, 2-step values
- id: balance_level
type: string
min: "44"
max: "56"
description: Set via PSBAL **; 50 = center, 44 = L6, 56 = R6
Events
# Device sends EVENT messages (same form as COMMAND) unsolicited when operated
# directly and state changes. Documented EVENT set: PW, MV, MU, SI, SLP, TS
# (ONCE/EVERY), TO, CLK, PS (BAS/TRE/BAL/SDB/SDI), FV (favorite name),
# TF/TP/TM (analog tuner + DAB), NSA/NSE (display info), BD (CD status and
# per-operation acknowledgements with answer codes 0-3).
# Every command with a matching EVENT also answers its request form (? + CR)
# as a RESPONSE within 200ms.
- id: state_change_event
description: "Unsolicited EVENT on direct operation/state change; form identical to COMMAND (see Feedbacks for per-command payloads)"
Macros
# UNRESOLVED: no multi-step sequences described explicitly in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings or interlock procedures;
# only timing constraint found is waiting 1 second after PWON before next command
Notes
- Command structure: COMMAND (2 ASCII chars) + PARAMETER (up to 25 ASCII chars) + CR (0x0D). Usable ASCII 0x20-0x7F; CR acts as pause/terminator only. Max communication data length 135 bytes.
- Connector: RJ-45, 10BASE-T/100BASE-TX, half duplex, 10/100 Mbps, TCP port 23 (telnet). Cross cable direct to PC or straight cables via HUB.
- RESPONSE must be sent within 200ms of receiving a request command. Commands are receivable during EVENT transmission.
- Wait 1 second after transmitting PWON before the next command.
- Master volume parameter "00" = minimum level; volume 00-60 by ASCII in 1dB steps.
- Network Standby mode must be set to "Network On" (SETUP > Network > Network Standby) for network control while in standby.
- DHCP/IP/Subnet/Gateway configured on-device via SETUP menu (Network > Settings). Proxy must be Off. DNS fields unused.
- Model/regional differences: CD, FM, AM (JP), DAB, AUXA, AUXC inputs are N8 only; LASTFM is E2 only; PANDORA and SIRIUSXM are NA only.
- TF/TP/TM '*' parameters inoperative when input source is not TUNER.
- NS9F and NS9G both labeled "Start Fast Forward" in source (9G likely fast reverse — not stated). NS97/NS98 function labels blank in source.
- CD (BD command set) answer codes: 0 = command OK, 1 = invalid command, 2 = invalid (specified track/group/title/chapter does not exist), 3 = order track none. Status codes 0-G cover standby through scan play; play mode codes 1-; cover NORMAL through REPEAT FOLDER.
- Protocol document version Ver.1.0.0 (12 Oct 2012); application terminal Ethernet Rev 8.0.0.
- Device name "Rcdn9" from ingest metadata does not appear in source; source application models are DRA-N5 and RCD-N8. Known protocol RS-232C in ingest metadata contradicts source (Ethernet telnet only; no serial port spec in source).
Provenance
source_domains:
- web.archive.org
- scribd.com
source_urls:
- https://web.archive.org/web/20150501111601/http://assets.eu.denon.com:80/DocumentMaster/UK/DRAN5_RCDN8_PROTOCOL_V.1.0.0.pdf
- https://www.scribd.com/document/352131267/DNP-730-DRA-N4-RCD-N9-PROTOCOL-Ver1-0-1
retrieved_at: 2026-08-15T04:19:41.977Z
last_checked_at: 2026-08-19T09:14:15.258Z
Verification Summary
verdict: verified
checked_at: 2026-08-19T09:14:15.258Z
matched_actions: 147
action_count: 147
confidence: medium
summary: "All 147 spec actions map to literals in the COMMAND/PARAMETER tables of the Denon SYSTEM protocol source; transport matches verbatim; no extras omitted. (9 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "input device name \"Rcdn9\" does not match source application models \"DRA-N5/RCD-N8\"; source covers DRA-N5/RCD-N8 only"
- "firmware version compatibility not stated in source"
- "no RS-232 serial configuration found in source despite RS-232C being flagged as known protocol; source specifies Ethernet only"
- "function description blank in source\""
- "no multi-step sequences described explicitly in source"
- "source contains no safety warnings or interlock procedures;"
- "no serial (RS-232C) electrical/port configuration found in source despite ingest metadata claiming RS-232C"
- "NS97/NS98 function descriptions blank in source"
- "NSE parameter example frames omitted from source (NSA example format applies)"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0