Summary

Sony VPL-EX / VPL-DX / VPL-DW / VPL-EW Series projectors. Controllable over RS-232C and Ethernet. Ethernet exposes Sony's SDCP protocol on TCP port 53484, plus PJLink class 1 and SDAP advertisement.

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 53484  # SDCP factory-shipments value, per source
serial:
  # UNRESOLVED: source states RS-232C is supported but does not give baud/data_bits/parity/stop_bits values in the refined excerpt
  baud_rate: null  # UNRESOLVED
  data_bits: null  # UNRESOLVED
  parity: null  # UNRESOLVED
  stop_bits: null  # UNRESOLVED
  flow_control: null  # UNRESOLVED
auth:
  type: community  # SDAP/SDCP use 4-char COMMUNITY field, default "SONY" per source
  # UNRESOLVED: PJLink password procedure mentioned ("set a password from the Web setting screen") but password format/length not specified

Traits

- powerable       # inferred: POWR power control command present (PJLink)
- routable        # inferred: INPT input switch command present (PJLink); input terminal items (SDCP)
- queryable       # inferred: POWR?, INPT?, AVMT?, ERST?, LAMP?, INST?, INF1?, INF2?, INFO?, CLSS? present (PJLink); GET method on SDCP
- levelable       # inferred: SDCP SET/GET items include ASPECT, picture mode, etc. (level/scalar parameters present)

Actions

# PJLink class 1 commands (per source §4-3-3, 14 commands supported - 9 enumerated in refined excerpt)
- id: pjlink_powr
  label: PJLink Power Control
  kind: action
  command: "POWR {value}"  # 0 = off, 1 = on
  params:
    - name: value
      type: integer
      values: [0, 1]
- id: pjlink_powr_query
  label: PJLink Power Status Inquiry
  kind: query
  command: "POWR ?"
  params: []
- id: pjlink_inpt
  label: PJLink Input Switch
  kind: action
  command: "INPT {source}"  # source code depends on model (e.g. 21 = Video)
  params:
    - name: source
      type: integer
      description: PJLink input source code (model-dependent)
- id: pjlink_inpt_query
  label: PJLink Input Switch Inquiry
  kind: query
  command: "INPT ?"
  params: []
- id: pjlink_avmt
  label: PJLink AV Mute
  kind: action
  command: "AVMT {value}"  # 30 = video mute off, 31 = video mute on
  params:
    - name: value
      type: integer
      values: [30, 31]
- id: pjlink_avmt_query
  label: PJLink AV Mute Status Inquiry
  kind: query
  command: "AVMT ?"
  params: []
- id: pjlink_erst_query
  label: PJLink Error Status Inquiry
  kind: query
  command: "ERST ?"
  params: []
- id: pjlink_lamp_query
  label: PJLink Lamp Count / Lamp Time Inquiry
  kind: query
  command: "LAMP ?"
  params: []
- id: pjlink_inst_query
  label: PJLink Input Switch List Inquiry
  kind: query
  command: "INST ?"
  params: []
- id: pjlink_inf1_query
  label: PJLink Manufacturer Name Inquiry
  kind: query
  command: "INF1 ?"
  params: []
- id: pjlink_inf2_query
  label: PJLink Model Name Inquiry
  kind: query
  command: "INF2 ?"
  params: []
- id: pjlink_info_query
  label: PJLink Other Information Inquiry
  kind: query
  command: "INFO ?"
  params: []
- id: pjlink_clss_query
  label: PJLink Class Information Inquiry
  kind: query
  command: "CLSS ?"
  params: []

# SDCP (Sony Simple Display Control Protocol) - SET/GET on ITEM NUMBER
# Simplified Command packet: A9h | ITEM_NUMBER(2) | SET/GET(1: 00h=SET, 01h=GET) | DATA(2) | CHECK_SUM(1) | 9Ah
# Example from source: set picture mode to dynamic
- id: sdcp_set
  label: SDCP Set Item
  kind: action
  command: "A9h {item_hi} {item_lo} 00h {data_hi} {data_lo} {checksum} 9Ah"
  params:
    - name: item
      type: integer
      description: Item number (e.g. 0x0002 = picture mode)
    - name: data
      type: integer
      description: Item-specific data value
    - name: checksum
      type: integer
      description: Computed checksum byte (formula not in source)
- id: sdcp_get
  label: SDCP Get Item
  kind: query
  command: "A9h {item_hi} {item_lo} 01h 0000h {checksum} 9Ah"
  params:
    - name: item
      type: integer
      description: Item number
    - name: checksum
      type: integer
      description: Computed checksum byte

# SDCP system items
- id: sdcp_get_model
  label: SDCP Get Model Name
  kind: query
  command: "A9h 80 01 01h 00 00 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_get_serial
  label: SDCP Get Serial Number
  kind: query
  command: "A9h 80 02 01h 00 00 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_get_location
  label: SDCP Get Installation Location
  kind: query
  command: "A9h 80 03 01h 00 00 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_picture_mode
  label: SDCP Set Picture Mode
  kind: action
  command: "A9h 00 02 00h 00 00 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_aspect
  label: SDCP Set Aspect (example from source: ZOOM)
  kind: action
  command: "A9h 00 20 00h 00 03 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_input_video
  label: SDCP Set Input - VIDEO (EX/EW series)
  kind: action
  command: "A9h 00 00 00h 00 00 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_input_svideo
  label: SDCP Set Input - S VIDEO (EX/EW series)
  kind: action
  command: "A9h 00 00 00h 00 01 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_input_a
  label: SDCP Set Input - INPUT A
  kind: action
  command: "A9h 00 00 00h 00 02 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_input_b
  label: SDCP Set Input - INPUT B
  kind: action
  command: "A9h 00 00 00h 00 03 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_input_c
  label: SDCP Set Input - INPUT C (EX/EW series)
  kind: action
  command: "A9h 00 00 00h 00 04 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_input_usb_b
  label: SDCP Set Input - USB (TYPE B)
  kind: action
  command: "A9h 00 00 00h 00 05 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer
- id: sdcp_set_input_network
  label: SDCP Set Input - NETWORK
  kind: action
  command: "A9h 00 00 00h 00 06 {checksum} 9Ah"
  params:
    - name: checksum
      type: integer

Feedbacks

- id: power_state
  type: enum
  values: [off, on, cooling]  # PJLink POWR?: 0=standby/power-save, 1=on, 2=cooling
- id: av_mute_state
  type: enum
  values: [video_mute_off, video_mute_on]  # PJLink AVMT?: 30/31
- id: input_source
  type: integer
  description: PJLink INPT response; e.g. 21 = Video (model-dependent)
- id: lamp_status
  type: string
  description: PJLink LAMP? response (lamp hours / count)
- id: error_status
  type: string
  description: PJLink ERST? - 6-digit fan/lamp/temp/cover/filter/other error code
- id: class_info
  type: integer
  values: [1]
  description: PJLink CLSS? returns "1" for class 1
- id: manufacturer_name
  type: string
  values: [SONY, ERR4]
- id: model_name
  type: string
- id: other_info
  type: string
  values: [" ", ERR4]
- id: status_error1
  type: enum
  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
  values: [standby, start_up]
- id: sdcp_model_name
  type: string
  description: SDCP item 0x8001, 12 chars
- id: sdcp_serial
  type: string
  description: SDCP item 0x8002, 8-digit number
- id: sdcp_location
  type: string
  description: SDCP item 0x8003, 24 chars

Variables

# Per-model variable SET/GET items. Lower bytes shown; upper byte 00h for setup items.
- id: input_terminal
  type: enum
  values: [video, s_video, input_a, input_b, input_c, usb_type_b, network]  # EX/EW series
  # DX/DW series omits S VIDEO and INPUT C; adds USB TYPE A
- id: aspect
  type: integer
  description: SDCP item 0x0020, e.g. 0x0003 = ZOOM
- id: picture_mode
  type: integer
  description: SDCP item 0x0002, 0x0000 = Dynamic (per source example)

Events

# UNRESOLVED: source describes SDAP as projector-broadcast advertisement (no controller-to-projector), but unsolicited event triggers not detailed. Section kept for completeness.

Macros

# UNRESOLVED: source does not document multi-step command sequences explicitly

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not contain explicit safety warnings, interlock procedures, or power-on sequencing requirements

Notes

PJLink and SDCP are independent stacks — source does not state any exclusive relationship; both can be enabled (PJLink set to OFF by default per source; SDCP also OFF by default). COMMUNITY field for SDCP defaults to "SONY" (4 alphanumeric chars, case sensitive, exactly 4 chars required). SDCP checksum formula not stated in source — implementer must derive. PJLink password is configurable via web UI; default and format not stated. RS-232C packet structure documented for VPL-EX/EW only (DX/DW series excluded per source §3 heading). ERST error digit ordering per source: 6th=Fan, 5th=Lamp, 4th=Temp, 3rd=Cover, 2nd=Filter, 1st=Other.

Provenance

source_domains:
  - sony.com
source_urls:
  - https://www.sony.com/electronics/support/res/manuals/9932/56e8960c34dfa2b9a3c29caae4b87340/99327515M.pdf
  - https://www.sony.com/electronics/support/res/manuals/9932/7009303bfef1bcfe3616e9036d29c71a/99325955M.pdf
retrieved_at: 2026-04-29T12:45:50.593Z
last_checked_at: 2026-06-02T07:06:43.915Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T07:06:43.915Z
matched_actions: 27
action_count: 27
confidence: medium
summary: "All 27 spec actions matched literally to source commands; transport parameters (port, COMMUNITY) verified; one alternate (USB TYPE A for DX/DW) not in EX/EW spec. (7 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "USB TYPE A"
- "RS-232 serial line parameters (baud, parity, etc.) not stated in source. SDCP set/get command field details for REQUEST payload format partially missing."
- "source states RS-232C is supported but does not give baud/data_bits/parity/stop_bits values in the refined excerpt"
- "PJLink password procedure mentioned (\"set a password from the Web setting screen\") but password format/length not specified"
- "source describes SDAP as projector-broadcast advertisement (no controller-to-projector), but unsolicited event triggers not detailed. Section kept for completeness."
- "source does not document multi-step command sequences explicitly"
- "source does not contain explicit safety warnings, interlock procedures, or power-on sequencing requirements"
- "PJLink command list truncated — source states 14 commands supported, refined excerpt enumerates 9 (POWR, POWR?, INPT, INPT?, AVMT, AVMT?, ERST?, LAMP?, INST?) plus 4 info queries (INF1?, INF2?, INFO?, CLSS?) = 13 visible. Missing 1 command. RS-232 serial parameters, SDCP REQUEST command field structure, SDCP checksum formula, PJLink password format/default, and full input source code map per model all unstated."

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