Summary
Sony VPL-DX/DW/EX/EW series projectors are remotely controllable over RS-232C and Ethernet. The Ethernet interface supports SDCP (Simple Display Control Protocol) on port 53484 with a community-based auth scheme, SDAP broadcast for discovery, and PJLink Class 1. RS-232C uses a binary Simplified Command protocol with item-number-based set/get operations framed by A9h/9Ah start/end codes.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: null # UNRESOLVED: baud rate not stated in source (section 3-2 truncated)
data_bits: null # UNRESOLVED: data bits not stated in source
parity: null # UNRESOLVED: parity not stated in source
stop_bits: null # UNRESOLVED: stop bits not stated in source
flow_control: null # UNRESOLVED: flow control not stated in source
addressing:
port: 53484 # SDCP default factory port
auth:
type: community # SDCP uses 4-character community string, default "SONY" (case sensitive)
notes: PJLink password can be set from Web setting screen > Setup > Advanced Menu
Traits
traits:
- powerable # inferred: POWR power control command present
- routable # inferred: INPT input switch command present
- queryable # inferred: multiple query commands (POWR?, INPT?, ERST?, LAMP?, INST?)
Actions
actions:
# === PJLink actions ===
- id: power_on
label: Power On
kind: action
protocol: pjlink
command: "POWR 1"
params: []
- id: power_off
label: Power Off
kind: action
protocol: pjlink
command: "POWR 0"
params: []
- id: input_switch
label: Switch Input
kind: action
protocol: pjlink
command: "INPT <input>"
params:
- name: input
type: integer
description: "Input channel number (e.g. 21 for Video, varies by model)"
- id: av_mute_set
label: Set AV Mute
kind: action
protocol: pjlink
command: "AVMT <mute>"
params:
- name: mute
type: integer
description: "Mute state value (e.g. 10/11/20/21/30/31)"
# === PJLink query actions ===
- id: power_status_query
label: Power Status Query
kind: query
protocol: pjlink
command: "POWR ?"
params: []
- id: input_status_query
label: Input Switch Inquiry
kind: query
protocol: pjlink
command: "INPT ?"
params: []
- id: av_mute_status_query
label: AV Muting Status Inquiry
kind: query
protocol: pjlink
command: "AVMT ?"
params: []
- id: error_status_query
label: Error Status Inquiry
kind: query
protocol: pjlink
command: "ERST ?"
params: []
- id: lamp_info_query
label: Lamp Count / Lamp Time Inquiry
kind: query
protocol: pjlink
command: "LAMP ?"
params: []
- id: input_list_query
label: Input Switch List Inquiry
kind: query
protocol: pjlink
command: "INST ?"
params: []
- id: manufacturer_name_query
label: Manufacturer Name Inquiry
kind: query
protocol: pjlink
command: "INF1 ?"
params: []
- id: model_name_query
label: Model Name Inquiry
kind: query
protocol: pjlink
command: "INF2 ?"
params: []
- id: other_info_query
label: Other Information Inquiry
kind: query
protocol: pjlink
command: "INFO ?"
params: []
- id: class_info_query
label: Class Information Inquiry
kind: query
protocol: pjlink
command: "CLSS ?"
params: []
# === Simplified Command (RS-232C) - binary protocol ===
- id: set_aspect
label: Set Aspect Ratio
kind: action
protocol: sdcp_serial
description: "Simplified Command SET - ITEM NUMBER 0020h, e.g. DATA 0003h = ZOOM"
command_bytes:
start_code: "A9h"
item_number: "0020h"
set_get: "00h"
data: "0003h"
checksum: "23h"
end_code: "9Ah"
full_packet: "A9h 00h 20h 00h 00h 03h 23h 9Ah"
- id: get_aspect
label: Get Aspect Ratio
kind: query
protocol: sdcp_serial
description: "Simplified Command GET - ITEM NUMBER 0020h"
command_bytes:
start_code: "A9h"
item_number: "0020h"
set_get: "01h"
data: "0000h"
checksum: null # UNRESOLVED: GET checksum depends on data; source only shows SET example
end_code: "9Ah"
- id: set_input_terminal_ex_ew
label: Set Input Terminal (VPL-EX/EW series)
kind: action
protocol: sdcp_serial
description: "Simplified Command SET - INPUT TERMINAL, VPL-EX221/EX225/EX241/EX245/EX271/EX275/EW225/EW245/EW275"
command_bytes_template:
start_code: "A9h"
item_number: "0000h" # upper=00h, lower=00h
set_get: "00h"
data_options:
- value: "0000h"
name: VIDEO
- value: "0001h"
name: S_VIDEO
- value: "0002h"
name: INPUT_A
- value: "0003h"
name: INPUT_B
- value: "0004h"
name: INPUT_C
- value: "0005h"
name: USB_TYPE_B
- value: "0006h"
name: NETWORK
end_code: "9Ah"
- id: set_input_terminal_dx_dw
label: Set Input Terminal (VPL-DX/DW series)
kind: action
protocol: sdcp_serial
description: "Simplified Command SET - INPUT TERMINAL, VPL-DX125/DX145/DW125 (subset)"
command_bytes_template:
start_code: "A9h"
item_number: "0000h"
set_get: "00h"
data_options:
- value: "0000h"
name: VIDEO
- value: "0002h"
name: INPUT_A
- value: "0003h"
name: INPUT_B
- value: "0004h"
name: USB_TYPE_B
- value: "0005h"
name: NETWORK
end_code: "9Ah"
- id: get_input_terminal
label: Get Input Terminal
kind: query
protocol: sdcp_serial
description: "Simplified Command GET - INPUT TERMINAL"
command_bytes_template:
start_code: "A9h"
item_number: "0000h"
set_get: "01h"
data: "0000h"
end_code: "9Ah"
- id: get_status_error1
label: Get Status Error1
kind: query
protocol: sdcp_serial
description: "Simplified Command GET - STATUS ERROR1 (get-only item)"
- id: get_status_power
label: Get Status Power
kind: query
protocol: sdcp_serial
description: "Simplified Command GET - STATUS POWER (get-only item: STANDBY / START UP)"
# === SDCP Ethernet actions ===
- id: set_picture_mode_dynamic
label: Set Picture Mode - Dynamic
kind: action
protocol: sdcp_ethernet
description: "SDCP SET request - ITEM NO 0002h, DATA 0000h (Dynamic)"
command: "HEADER(02h,0Ah) COMMUNITY='SONY' COMMAND(00h,0002h,02h) DATA=0000h"
- id: set_installation_location
label: Set Installation Location
kind: action
protocol: sdcp_ethernet
item_number: "0x8003"
description: "24-character installation location, padded with 00h"
params:
- name: location
type: string
max_length: 24
- id: get_model_name_sdcp
label: Get Model Name (SDCP)
kind: query
protocol: sdcp_ethernet
item_number: "0x8001"
description: "12-character model name"
- id: get_serial_number_sdcp
label: Get Serial Number (SDCP)
kind: query
protocol: sdcp_ethernet
item_number: "0x8002"
description: "4-byte serial number (00000000-99999999)"
- id: get_installation_location
label: Get Installation Location
kind: query
protocol: sdcp_ethernet
item_number: "0x8003"
description: "24-character installation location"
Feedbacks
feedbacks:
- id: power_state
type: enum
protocol: pjlink
command: "POWR ?"
values:
- name: standby
response: "0"
description: "Standby or power-saving state"
- name: power_on
response: "1"
description: "Power ON state"
- name: cooling
response: "2"
description: "Cooling state, or cooling state during power-saving state"
- id: input_state
type: integer
protocol: pjlink
command: "INPT ?"
description: "Returns current input channel number (e.g. 21 for Video)"
- id: av_mute_state
type: integer
protocol: pjlink
command: "AVMT ?"
description: "Returns current AV mute status"
- id: error_status
type: string
protocol: pjlink
command: "ERST ?"
description: "6-digit error code"
digits:
- position: 6
meaning: "Fan error"
- position: 5
meaning: "Lamp error"
- position: 4
meaning: "Temperature error"
- position: 3
meaning: "Cover open error"
- position: 2
meaning: "Filter error"
- position: 1
meaning: "Other error"
digit_values:
"0": "No error, or detection impossible"
"1": "Warning"
- id: lamp_info
type: string
protocol: pjlink
command: "LAMP ?"
description: "Returns lamp count and lamp time"
- id: input_list
type: string
protocol: pjlink
command: "INST ?"
description: "Returns list of available input switch options"
- id: manufacturer_name
type: string
protocol: pjlink
command: "INF1 ?"
description: "Returns manufacturer name (SONY) when normal; ERR4 on projector error/warning"
- id: model_name_pjlink
type: string
protocol: pjlink
command: "INF2 ?"
description: "Returns model name"
- id: other_info
type: string
protocol: pjlink
command: "INFO ?"
description: "Returns other information (space when normal, ERR4 on error/warning)"
- id: class_info
type: string
protocol: pjlink
command: "CLSS ?"
description: "Returns class information (1 for Class 1) when normal; ERR4 on error"
- id: model_name_sdcp
type: string
protocol: sdcp_ethernet
item_number: "0x8001"
description: "12-character model name via SDCP, padded with 00h"
- id: serial_number
type: string
protocol: sdcp_ethernet
item_number: "0x8002"
description: "4-byte serial number (00000000-99999999) via SDCP"
- id: status_error
type: enum
protocol: sdcp_serial
description: "STATUS ERROR1 via Simplified Command (get-only)"
values:
- NO_ERROR
- LAMP_ERROR
- FAN_ERROR
- COVER_ERROR
- TEMP_ERROR
- D5V_ERROR
- POWER_ERROR
- WARNING_TEMP
- NVM_DATA_ERROR
- id: status_power
type: enum
protocol: sdcp_serial
description: "STATUS POWER via Simplified Command (get-only)"
values:
- name: standby
description: "STANDBY"
- name: start_up
description: "START UP"
- id: set_aspect_response
type: enum
protocol: sdcp_serial
description: "Response to Simplified Command SET (e.g. ASPECT=ZOOM example)"
values:
- name: success
response: "0000h (ACK=03h)"
description: "Complete"
- name: failure
description: "NAK response"
Variables
variables:
- id: installation_location
type: string
protocol: sdcp_ethernet
item_number: "0x8003"
access: set_get
description: "24-character installation location"
max_length: 24
- id: sdcp_community
type: string
protocol: sdcp_ethernet
description: "4-character community string (alphanumeric, case sensitive). Default 'SONY'. Three or fewer characters not allowed."
max_length: 4
default: "SONY"
Events
events:
- id: sdap_advertisement
protocol: sdap
description: "SDAP broadcast - projector sends equipment info periodically to network. Disabled by default. Sent by PROJECTOR, no response from CONTROLLER."
packet_structure: "POWER | HEADER(2) | VERSION(1) | CATEGORY(1) | PRODUCT NAME(12) | LOCATION(24) | COMMUNITY(4) | SERIAL NO. | STATUS"
header_id: "4441h"
# UNRESOLVED: full SDAP broadcast packet field-by-field byte layout not fully captured in source
Macros
# UNRESOLVED: no multi-step sequences explicitly described in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source mentions cooling state after power-off but does not specify
# interlock procedures or power-on sequencing requirements explicitly.
# CONTROLLER is prohibited from sending several commands at one time (RS-232C).
Notes
- Source covers RS-232C Simplified Command (binary, A9h/9Ah framing), Ethernet SDCP, SDAP, and PJLink protocols. Not all models support all inputs (e.g. S VIDEO and INPUT C absent on VPL-DX/DW models).
- SDCP Ethernet community string default "SONY" (4 chars, case sensitive). Three or fewer characters not allowed.
- SDCP version field = 02h; equipment category code = 0Ah for projectors. SDCP header ID = 4441h.
- PJLink Class 1 is supported and can be enabled/disabled from Web settings screen > Setup > Advanced Menu.
- RS-232C uses D-Sub 9 Pin cross (reverse) cable. Controller must not send multiple commands simultaneously.
- INF1/INFO/CLSS queries return "ERR4" on projector error or warning conditions.
- VPL-EX series + VPL-EW series: 15 bit PROJECTOR; VPL-EW series: 20 bit PROJECTOR (infrared remote command code width).
Provenance
source_domains:
- manualslib.com
source_urls:
- https://www.manualslib.com/manual/937722/Sony-Vpl-Dx125.html
retrieved_at: 2026-06-11T00:04:21.400Z
last_checked_at: 2026-06-11T13:49:10.738Z
Verification Summary
verdict: verified
checked_at: 2026-06-11T13:49:10.738Z
matched_actions: 26
action_count: 26
confidence: medium
summary: "All 26 spec actions confirmed in source with matching wire-level identifiers, parameters, and transport parameters verified at port 53484 with SONY community string. (12 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "RS-232C communication specifications (baud rate, data bits, parity, stop bits) — section 3-2 truncated in source"
- "PJLink password format details — source only says \"can be set from Web setting screen\""
- "full SDAP advertisement packet field layouts (POWER byte encoding) not fully captured"
- "baud rate not stated in source (section 3-2 truncated)"
- "data bits not stated in source"
- "parity not stated in source"
- "stop bits not stated in source"
- "flow control not stated in source"
- "GET checksum depends on data; source only shows SET example"
- "full SDAP broadcast packet field-by-field byte layout not fully captured in source"
- "no multi-step sequences explicitly described in source"
- "source mentions cooling state after power-off but does not specify"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0