Summary

Epson home/installed projector controlled via the ESC/VP21 ASCII command protocol over RS-232C serial, USB, or TCP/IP network (ESC/VP.net). This spec covers power, mute, source selection (SOURCE/MSEL commands), null command, and serial communication parameters as documented in the ESC/VP21 Command User's Guide for Home Projectors.

Transport

protocols:
  - serial
  - tcp
serial:
  baud_rate: 9600
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
addressing:
  port: null  # UNRESOLVED: TCP port not stated in source; see ESC/VP.net manual
auth:
  type: none  # inferred: no auth procedure in source

Traits

# powerable  - inferred from PWRON/PWROFF command examples
# routable   - inferred from SOURCE command examples
# queryable  - inferred from documented get-command format (command + "?"); no concrete query commands enumerated in source
traits:
  - powerable
  - routable
  - queryable

Actions

# ESC/VP21 set commands: projector returns ":" after execution; "ERR" + CR + ":" on invalid command.
# Get format (command + "?") is documented generically; no specific get commands are enumerated in this source.
- id: power_on
  label: Power On
  kind: action
  command: "PWRON"
  params: []
  notes: "Requires preparation on TW200/TW200H (see Macros); TW500 requires Network Monitoring ON. Availability flag (*1) in source."

- id: power_off
  label: Power Off
  kind: action
  command: "PWROFF"
  params: []
  notes: "Source marks this row 'PWR OFF (note4)'; note4 content not present in extracted text."

- id: mute_on
  label: Mute On
  kind: action
  command: "MUTE ON"
  params: []

- id: mute_off
  label: Mute Off
  kind: action
  command: "MUTE OFF"
  params: []

- id: source_black
  label: Select Black Source
  kind: action
  command: "MSEL00"
  params: []

- id: source_blue
  label: Select Blue Source
  kind: action
  command: "MSEL01"
  params: []

- id: source_user_logo
  label: Select User Logo Source
  kind: action
  command: "MSEL02"
  params: []
  notes: "Not supported on TW10/TW10H per source (*2)."

- id: spwrlvl_set
  label: Set Power Level (SPWRLVL)
  kind: action
  command: "SPWRLVL 01"
  params: []
  notes: "Only value 01 documented; used in TW200/TW200H PWR ON preparation (see Macros)."

- id: null_command
  label: Null Command (keepalive check)
  kind: action
  command: "0x0D"
  params: []
  notes: "Return key code (Hex 0D); projector returns ':'. Confirms projector is in operation."

# SOURCE commands - each distinct source row in the source command tables.
# Availability varies by model; see per-model tables in source.
- id: source_input1_cyclic
  label: INPUT 1/A Cyclic Select
  kind: action
  command: "SOURCE 10"
  params: []
  notes: "Cycles within SOURCE 1x group."

- id: source_input1_analog_rgb
  label: INPUT 1/A Analog RGB
  kind: action
  command: "SOURCE 11"
  params: []

- id: source_input1_digital_rgb
  label: INPUT 1/A Digital RGB
  kind: action
  command: "SOURCE 12"
  params: []

- id: source_input1_rgb_video
  label: INPUT 1/A RGB Video
  kind: action
  command: "SOURCE 13"
  params: []

- id: source_input1_ycbcr
  label: INPUT 1/A YCbCr (Component)
  kind: action
  command: "SOURCE 14"
  params: []

- id: source_input1_ypbpr
  label: INPUT 1/A YPbPr (Component)
  kind: action
  command: "SOURCE 15"
  params: []

- id: source_input1_auto
  label: INPUT 1/A Auto
  kind: action
  command: "SOURCE 1F"
  params: []

- id: source_input2_cyclic
  label: INPUT 2/B Cyclic Select
  kind: action
  command: "SOURCE 20"
  params: []
  notes: "Cycles within SOURCE 2x group."

- id: source_input2_analog_rgb
  label: INPUT 2/B Analog RGB
  kind: action
  command: "SOURCE 21"
  params: []

- id: source_input2_rgb_video
  label: INPUT 2/B RGB Video
  kind: action
  command: "SOURCE 22"
  params: []

- id: source_input2_ycbcr
  label: INPUT 2/B YCbCr (Component)
  kind: action
  command: "SOURCE 23"
  params: []

- id: source_input2_ypbpr
  label: INPUT 2/B YPbPr (Component)
  kind: action
  command: "SOURCE 24"
  params: []

- id: source_input2_ypbpr_alt
  label: INPUT 2/B YPbPr
  kind: action
  command: "SOURCE 25"
  params: []

- id: source_input2_auto
  label: INPUT 2/B Auto
  kind: action
  command: "SOURCE 2F"
  params: []

- id: source_input3_cyclic
  label: INPUT 3 Cyclic Select
  kind: action
  command: "SOURCE 30"
  params: []
  notes: "Cycles within SOURCE 3x group."

- id: source_input3_digital_rgb
  label: INPUT 3 Digital RGB
  kind: action
  command: "SOURCE 31"
  params: []

- id: source_input3_rgb_video
  label: INPUT 3 RGB-Video
  kind: action
  command: "SOURCE 33"
  params: []

- id: source_input3_ycbcr
  label: INPUT 3 YCbCr
  kind: action
  command: "SOURCE 34"
  params: []

- id: source_input3_ypbpr
  label: INPUT 3 YPbPr
  kind: action
  command: "SOURCE 35"
  params: []

- id: source_input5_cyclic
  label: INPUT 5 Cyclic Select
  kind: action
  command: "SOURCE C0"
  params: []
  notes: "Cycles within SOURCE Cx group."

- id: source_input5_scart
  label: INPUT 5 SCART
  kind: action
  command: "SOURCE C3"
  params: []

- id: source_input5_ycbcr
  label: INPUT 5 YCbCr
  kind: action
  command: "SOURCE C4"
  params: []

- id: source_input5_ypbpr
  label: INPUT 5 YPbPr
  kind: action
  command: "SOURCE C5"
  params: []

- id: source_input5_auto
  label: INPUT 5 Auto
  kind: action
  command: "SOURCE CF"
  params: []

- id: source_video_cyclic
  label: VIDEO Cyclic Select
  kind: action
  command: "SOURCE 40"
  params: []
  notes: "Cycles within SOURCE 4x group."

- id: source_video_rca
  label: VIDEO (RCA)
  kind: action
  command: "SOURCE 41"
  params: []

- id: source_video_s
  label: VIDEO (S)
  kind: action
  command: "SOURCE 42"
  params: []

- id: source_video_ycbcr
  label: VIDEO (YCbCr)
  kind: action
  command: "SOURCE 43"
  params: []

- id: source_video_ypbpr
  label: VIDEO (YPbPr)
  kind: action
  command: "SOURCE 44"
  params: []

- id: source_usb_easypy
  label: USB EasyMP
  kind: action
  command: "SOURCE 52"
  params: []

- id: source_hdmi2
  label: HDMI2
  kind: action
  command: "SOURCE A0"
  params: []

- id: source_hdmi2_digital_rgb
  label: HDMI Digital RGB
  kind: action
  command: "SOURCE A1"
  params: []

- id: source_hdmi2_rgb_video
  label: HDMI RGB-Video
  kind: action
  command: "SOURCE A3"
  params: []

- id: source_hdmi2_ycbcr
  label: HDMI YCbCr
  kind: action
  command: "SOURCE A4"
  params: []

- id: source_hdmi2_ypbpr
  label: HDMI YPbPr
  kind: action
  command: "SOURCE A5"
  params: []

- id: source_wirelesshd
  label: WirelessHD
  kind: action
  command: "SOURCE D0"
  params: []

- id: source_wirelesshd_digital_rgb
  label: WirelessHD Digital RGB
  kind: action
  command: "SOURCE D1"
  params: []

- id: source_wirelesshd_rgb_video
  label: WirelessHD RGB-Video
  kind: action
  command: "SOURCE D3"
  params: []

- id: source_wirelesshd_ycbcr
  label: WirelessHD YCbCr
  kind: action
  command: "SOURCE D4"
  params: []

- id: source_wirelesshd_ypbpr
  label: WirelessHD YPbPr
  kind: action
  command: "SOURCE D5"
  params: []

Feedbacks

- id: set_command_ack
  type: enum
  values: [":"]
  notes: "Projector returns a colon after executing a set command."

- id: get_command_response
  type: string
  # UNRESOLVED: response value set not enumerated in source - get format documented generically (command + "?" returns response parameter)
  notes: "Get command (command + '?') returns a response parameter."

- id: illegal_command_error
  type: enum
  values: ["ERR"]
  notes: "Returned with a return key code (Hex 0D) and a colon when an invalid command is received."

- id: null_command_ack
  type: enum
  values: [":"]
  notes: "Null command (Hex 0D) returns a colon; confirms projector is in operation."

Variables

# Source documents step parameters INC (increment), DEC (decrement), INIT (initialize)
# as parameter types applicable to set commands, but enumerates no concrete
# settable parameter commands with value ranges.
# UNRESOLVED: no concrete settable variables enumerated in source

Events

# UNRESOLVED: no unsolicited notifications documented in source

Macros

- id: enable_pwr_on_tw200_tw200h
  label: Enable PWR ON on TW200/TW200H
  steps:
    - "Turn on the projector"
    - "Send 'SPWRLVL 01' after the projector reaches the state where it can receive ESC/VP21 commands"
    - "Turn off the projector once"
    - "'PWR ON' (PWRON) becomes usable once the projector returns to standby state"

- id: enable_pwr_on_tw500
  label: Enable PWR ON on TW500
  steps:
    - "Set 'Network Monitoring' of 'Operation' in the 'Setting' menu to ON"
    - "Turn off the projector once"
    - "'PWR ON' (PWRON) becomes usable once the projector reaches standby state"

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: source (as extracted) contains no safety warnings or interlock procedures;
# "note4" on PWR OFF is referenced but its content is not present in the extracted text.

Notes

  • ESC/VP21 command codes are ASCII; commands can be sent from a PC terminal emulator.
  • ESC/VP21 is transport-independent: serial (RS-232C), USB, and TCP/IP network are supported. Network use requires establishing a TCP session first (see ESC/VP.net protocol manual, not included in this source). USB transport has no schema enum and is omitted from protocols[].
  • Serial: select "RS-232C" at Advanced Setting of the projector menu. Connector: D-Sub 9 pin, projector input: Control (RS-232C).
  • Set commands take fixed parameters (e.g. ON, OFF, 21) or step parameters: INC (increment by one), DEC (decrement by one), INIT (initialize).
  • Null command is a lone return key code (Hex 0D); usable as an operational check.
  • Source command tables mark per-model availability (OK/-); several SOURCE codes are only valid on specific models. (*7) SOURCE 14 is get-only on TW420/TW450. (*3) TW10 source cycling does not stay within a terminal's selectable signals.
  • Extracted source table for PWR/MUTE/MSEL rows was malformed; commands transcribed verbatim as printed (PWRON, PWROFF, "MUTE ON", "MUTE OFF", MSEL00–MSEL02).

Provenance

source_domains:
  - files.support.epson.com
source_urls:
  - https://files.support.epson.com/pdf/pltw1_/pltw1_cm.pdf
  - https://files.support.epson.com/pdf/pl600p/pl600pcm.pdf
retrieved_at: 2026-05-14T15:50:21.917Z
last_checked_at: 2026-09-08T22:16:42.433Z

Verification Summary

verdict: verified
checked_at: 2026-09-08T22:16:42.433Z
matched_actions: 49
action_count: 49
confidence: medium
summary: "All 49 spec actions match source verbatim; serial transport (9600/8/N/1/none) confirmed; source catalogue fully covered. (12 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "source document is the ESC/VP21 guide for home projector models (TW/PowerLite Home Cinema/Pro Cinema series); \"PowerLiteProZ Series1\" is not in the source's applicable-models list — command availability per model varies and is not confirmed for this entity"
- "TCP port number not stated (source defers to ESC/VP.net protocol manual, not included)"
- "USB transport is mentioned but no USB enum exists in the transport schema; not represented in protocols[]"
- "TCP port not stated in source; see ESC/VP.net manual"
- "response value set not enumerated in source - get format documented generically (command + \"?\" returns response parameter)"
- "no concrete settable variables enumerated in source"
- "no unsolicited notifications documented in source"
- "source (as extracted) contains no safety warnings or interlock procedures;"
- "firmware version compatibility not stated in source"
- "TCP port and ESC/VP.net session details not stated in source"
- "\"note4\" (PWR OFF footnote) content missing from extraction"
- "whether \"PowerLiteProZ Series1\" supports any of these commands is unconfirmed — model not in source's applicable-models list"

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