Summary
RS-232C serial control protocol for the Esoteric P-03UNI universal disc player (North America variant). The source document ("Esoteric RS-232C Interface") also covers the K-01XD and K-03XD models with the same command set. Commands are ASCII-encoded, framed with @ start and CR end characters, and use ACK/NAK handshaking. The P-03UNI uses "Common" and "CD Player" commands; AMP and Network/DAC commands are included for completeness but may not apply to this model.
Transport
protocols:
- serial
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
pin_assignment:
TXD: 2
RXD: 3
auth:
type: none # inferred: no auth procedure in source
command_framing:
start_char: "@"
end_char: CR
separator: SP
ack: "0x06"
nak: "0x15"
min_inter_command_delay_ms: 20
Traits
traits:
- powerable # POWER ON/OFF commands
- queryable # request commands return state
- levelable # VOLUME direct-set command (AMP devices)
Actions
# Common commands
- id: power_on
label: Power On
kind: action
command: "@POWER ON<CR>"
params: []
- id: power_off
label: Power Off
kind: action
command: "@POWER OFF<CR>"
params: []
- id: dimmer
label: Dimmer
kind: action
command: "@KEY 5A<CR>"
params: []
# CD Player commands
- id: tray
label: Tray Open/Close
kind: action
command: "@KEY 00<CR>"
params: []
- id: play
label: Play
kind: action
command: "@KEY 01<CR>"
params: []
- id: pause
label: Pause
kind: action
command: "@KEY 02<CR>"
params: []
- id: stop
label: Stop
kind: action
command: "@KEY 03<CR>"
params: []
- id: prev_track
label: Previous Track (I<<)
kind: action
command: "@KEY 0B<CR>"
params: []
- id: next_track
label: Next Track (>>I)
kind: action
command: "@KEY 0C<CR>"
params: []
- id: rewind
label: Rewind (<<)
kind: action
command: "@KEY 40<CR>"
params: []
- id: fast_forward
label: Fast Forward (>>)
kind: action
command: "@KEY 41<CR>"
params: []
- id: digit
label: Numeric Key
kind: action
command: "@KEY {digit}<CR>"
params:
- name: digit
type: string
values: ["04", "05", "06", "07", "0D", "0E", "0F", "15", "16", "17"]
description: "Hex code for digits 0-9 (04=0, 05=1, 06=2, 07=3, 0D=4, 0E=5, 0F=6, 15=7, 16=8, 17=9)"
- id: digit_plus10
label: +10
kind: action
command: "@KEY 4F<CR>"
params: []
- id: clear
label: Clear
kind: action
command: "@KEY 4B<CR>"
params: []
- id: play_mode
label: Play Mode
kind: action
command: "@KEY 1E<CR>"
params: []
- id: repeat
label: Repeat
kind: action
command: "@KEY 47<CR>"
params: []
- id: play_area
label: Play Area
kind: action
command: "@KEY 49<CR>"
params: []
- id: mode
label: Mode
kind: action
command: "@KEY 1D<CR>"
params: []
- id: display
label: Display
kind: action
command: "@KEY 42<CR>"
params: []
# AMP commands
- id: input_minus
label: Input -
kind: action
command: "@KEY 43<CR>"
params: []
note: AMP devices only
- id: input_plus
label: Input +
kind: action
command: "@KEY 44<CR>"
params: []
note: AMP devices only
- id: volume_minus
label: Volume -
kind: action
command: "@KEY 12<CR>"
params: []
note: AMP devices only
- id: volume_plus
label: Volume +
kind: action
command: "@KEY 13<CR>"
params: []
note: AMP devices only
- id: mute
label: Mute
kind: action
command: "@KEY 1C<CR>"
params: []
note: AMP devices only
- id: setup
label: Setup
kind: action
command: "@KEY 14<CR>"
params: []
note: AMP devices only
- id: volume_set
label: Set Volume
kind: action
command: "@VOLUME {level}<CR>"
params:
- name: level
type: integer
min: 0
max: 255
description: Volume level (0-255)
note: AMP devices only
# Network/DAC commands
- id: net_input_plus
label: Network Input +
kind: action
command: "@KEY 20<CR>"
params: []
note: Network/DAC devices only
- id: net_menu
label: Network Menu
kind: action
command: "@KEY 21<CR>"
params: []
note: Network/DAC devices only
- id: net_left
label: Network Left (<)
kind: action
command: "@KEY 22<CR>"
params: []
note: Network/DAC devices only
- id: net_right
label: Network Right (>)
kind: action
command: "@KEY 23<CR>"
params: []
note: Network/DAC devices only
- id: net_prev_track
label: Network Previous Track (I<<)
kind: action
command: "@KEY 24<CR>"
params: []
note: Network/DAC devices only
- id: net_next_track
label: Network Next Track (>>I)
kind: action
command: "@KEY 25<CR>"
params: []
note: Network/DAC devices only
- id: net_play
label: Network Play
kind: action
command: "@KEY 26<CR>"
params: []
note: Network/DAC devices only
- id: net_pause
label: Network Pause
kind: action
command: "@KEY 27<CR>"
params: []
note: Network/DAC devices only
- id: net_stop
label: Network Stop
kind: action
command: "@KEY 28<CR>"
params: []
note: Network/DAC devices only
Feedbacks
- id: input_status
label: Input Status
request_command: "@?INPUT<CR>"
response_format: "@INPUT {source}<CR>"
type: enum
values: ["DISC", "ESLINK", "XLR", "RCA"]
applies_to: common
- id: analog_output
label: Analog Output
request_command: "@?AOUT<CR>"
response_format: "@AOUT {output}<CR>"
type: enum
values: ["SPEAKER", "HP", "XLR2", "ESLA", "RCA"]
applies_to: common
- id: digital_output
label: Digital Output
request_command: "@?DOUT<CR>"
response_format: "@DOUT {output}<CR>"
type: enum
values: ["ESLINK", "XLR", "RCA", "OPT"]
applies_to: common
- id: media
label: Media Info
request_command: "@?MEDIA<CR>"
response_format: "@MEDIA {type} {tracks} {minutes} {seconds}<CR>"
type: string
description: "Returns media type, total tracks, total time. e.g. @MEDIA SACD 12 34 56"
applies_to: CD Player
- id: play_status
label: Play Status
request_command: "@?PSTS<CR>"
response_format: "@PSTS {state} {track} {min} {sec} {time_mode}<CR>"
type: string
description: "e.g. @PSTS PLAY 3 1 23 TE. Time modes: TE=Track Elapsed, TR=Track Remain, DE=Disc Elapsed, DR=Disc Remain"
applies_to: CD Player, Network Player
- id: play_mode
label: Play Mode
request_command: "@?PMODE<CR>"
response_format: "@PMODE {mode}<CR>"
type: enum
values: ["CONTINUE", "PGM", "SHUFFLE"]
applies_to: CD Player, Network Player
- id: repeat_status
label: Repeat Status
request_command: "@?REPEAT<CR>"
response_format: "@REPEAT {mode}<CR>"
type: enum
values: ["OFF", "ALL", "1"]
applies_to: CD Player, Network Player
- id: upconv
label: Upconversion
request_command: "@?UPCONV<CR>"
response_format: "@UPCONV {mode}<CR>"
type: enum
values: ["OFF", "2fs", "4fs", "8fs", "16fs", "DSD"]
applies_to: CD Player, Network/DAC
- id: sampling_freq
label: Sampling Frequency
request_command: "@?FS<CR>"
response_format: "@FS {freq}<CR>"
type: string
description: "e.g. @FS 44.1kHz - sampling frequency of input source"
applies_to: CD Player, Network/DAC
- id: codec
label: Codec
request_command: "@?CODEC<CR>"
response_format: "@CODEC {codec}<CR>"
type: enum
values: ["WAV", "FLAC", "ALAC", "MP3", "AAC"]
applies_to: Network Player
- id: mqa
label: MQA Status
request_command: "@?MQA<CR>"
response_format: "@MQA {status} {freq}<CR>"
type: string
values: ["NON", "MQA", "MQA.", "MQB"]
description: "e.g. @MQA MQA. 192kHz"
applies_to: CD Player, Network/DAC
- id: volume_status
label: Volume Status
request_command: "@?VOLUME<CR>"
response_format: "@VOLUME {level}<CR>"
type: string
description: "Returns step type (e.g. 36) or dB type (e.g. -45dB)"
applies_to: AMP
Variables
# No continuously settable variables beyond the action-level volume_set.
# UNRESOLVED: no variable parameters documented beyond discrete actions
Events
# No unsolicited events documented. Device only responds to commands.
Macros
# No multi-step macros documented in source.
Safety
confirmation_required_for: []
interlocks: []
timing:
min_inter_command_delay_ms: 20
max_inter_command_delay_ms: 50
# UNRESOLVED: no safety warnings, interlock procedures, or power-on sequencing documented in source
Notes
- All commands are case-sensitive ASCII.
- Command frame:
@prefix,<SP>between command and parameter,<CR>(0x0D) terminator. - ACK (0x06) confirms receipt; NAK (0x15) indicates failure or unrecognized command.
- Minimum 20ms delay required between consecutive commands after receiving ACK.
- The P-03UNI (CD/SACD player) uses "Common" and "CD Player" commands. AMP and Network/DAC commands are listed for completeness but likely not applicable to this model.
- Numeric digit hex codes are not sequential: 0=04, 1=05, 2=06, 3=07, 4=0D, 5=0E, 6=0F, 7=15, 8=16, 9=17.
Provenance
source_domains:
- esoteric.jp
- applicationmarket.crestron.com
source_urls:
- https://www.esoteric.jp/downloads/products/esoteric/k-01xd/esoteric_rs232c_command_table_rev1.0.pdf
- https://www.esoteric.jp/downloads/products/esoteric/k-01xd/esoteric_rs232c_command_table_rev1.5.pdf
- https://applicationmarket.crestron.com/content/Help/Esoteric_Audio/i__ux-1__ux-1limited__ux-1pi__ux-3pi_v1_0_help.pdf
retrieved_at: 2026-05-04T23:34:40.994Z
last_checked_at: 2026-06-02T22:06:53.377Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:06:53.377Z
matched_actions: 35
action_count: 35
confidence: medium
summary: "All 35 spec actions traced to source (dip-safe re-verify). (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source doc header lists K-01XD/K-03XD as target models, not P-03UNI explicitly — command set assumed shared across Esoteric RS-232C-equipped players"
- "no variable parameters documented beyond discrete actions"
- "no safety warnings, interlock procedures, or power-on sequencing documented in source"
- "source doc explicitly targets K-01XD/K-03XD models — P-03UNI compatibility assumed from shared RS-232C interface"
- "no firmware version compatibility range stated"
- "pin 2/3 assignment documented but full DB-9 pinout not specified"
- "maximum cable length not specified"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0