Summary
Epson home-projector family (ELP/EMP/EH-TW/PL-HomeCinema/PL-ProCinema lines) controlled via the vendor ESC/VP21 ASCII command set. ESC/VP21 is protocol-independent and travels over serial, USB, or TCP/IP. This spec catalogs the common command table plus the per-model source-selection matrix that the source documents.
Transport
# Source states three physical transports for ESC/VP21: serial, USB, TCP/IP network.
# Serial comm condition explicitly stated; TCP and USB details not present in this excerpt.
protocols:
- serial
- tcp
- usb
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
connector: D-Sub 9-pin
input_name: Control (RS-232C)
# addressing.port omitted - source states TCP session exists but does not state a port number.
# usb sub-key omitted - source mentions USB transport but provides no protocol parameters.
auth:
type: UNRESOLVED # source does not state this (was inferred none: no auth procedure in source)
Traits
- powerable # inferred from PWR ON / PWR OFF / MUTE ON / MUTE OFF command examples
- routable # inferred from SOURCE xx input-selection command examples
- queryable # inferred from get command format (command + "?") described in section 2.2
Actions
- id: null_command
label: Null Command (keepalive)
kind: action
command: "\r" # Hex 0D return key code; projector responds with ":"
params: []
- id: power_on
label: Power On
kind: action
command: "PWR ON"
params: []
- id: power_off
label: Power Off
kind: action
command: "PWR OFF"
params: []
- 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_msel00
label: MSEL Test Pattern - Black
kind: action
command: "MSEL00"
params: []
- id: source_msel01
label: MSEL Test Pattern - Blue
kind: action
command: "MSEL01"
params: []
- id: source_msel02
label: MSEL Test Pattern - User Logo
kind: action
command: "MSEL02"
params: []
- id: source_10
label: INPUT 1/A - Cycle within SOURCE 1x
kind: action
command: "SOURCE 10"
params: []
- id: source_11
label: INPUT 1/A - AnalogRGB
kind: action
command: "SOURCE 11"
params: []
- id: source_12
label: INPUT 1/A - Digital RGB
kind: action
command: "SOURCE 12"
params: []
- id: source_13
label: INPUT 1/A - RGB Video
kind: action
command: "SOURCE 13"
params: []
- id: source_14
label: INPUT 1/A - YCbCr (Component)
kind: action
command: "SOURCE 14"
params: []
- id: source_15
label: INPUT 1/A - YPbPr (Component)
kind: action
command: "SOURCE 15"
params: []
- id: source_1f
label: INPUT 1/A - Auto
kind: action
command: "SOURCE 1F"
params: []
- id: source_20
label: INPUT 2/B - Cycle within SOURCE 2x
kind: action
command: "SOURCE 20"
params: []
- id: source_21
label: INPUT 2/B - AnalogRGB
kind: action
command: "SOURCE 21"
params: []
- id: source_22
label: INPUT 2/B - RGB Video
kind: action
command: "SOURCE 22"
params: []
- id: source_23
label: INPUT 2/B - YCbCr (Component)
kind: action
command: "SOURCE 23"
params: []
- id: source_24
label: INPUT 2/B - YPbPr (Component)
kind: action
command: "SOURCE 24"
params: []
- id: source_25
label: INPUT 2/B - YPbPr
kind: action
command: "SOURCE 25"
params: []
- id: source_2f
label: INPUT 2/B - Auto
kind: action
command: "SOURCE 2F"
params: []
- id: source_30
label: INPUT 3 - Cycle within SOURCE 3x
kind: action
command: "SOURCE 30"
params: []
- id: source_31
label: INPUT 3 - Digital RGB
kind: action
command: "SOURCE 31"
params: []
- id: source_33
label: INPUT 3 - RGB-Video
kind: action
command: "SOURCE 33"
params: []
- id: source_34
label: INPUT 3 - YCbCr
kind: action
command: "SOURCE 34"
params: []
- id: source_35
label: INPUT 3 - YPbPr
kind: action
command: "SOURCE 35"
params: []
- id: source_40
label: VIDEO - Cycle within SOURCE 4x
kind: action
command: "SOURCE 40"
params: []
- id: source_41
label: VIDEO (RCA)
kind: action
command: "SOURCE 41"
params: []
- id: source_42
label: VIDEO (S)
kind: action
command: "SOURCE 42"
params: []
- id: source_43
label: VIDEO (YCbCr)
kind: action
command: "SOURCE 43"
params: []
- id: source_44
label: VIDEO (YPbPr)
kind: action
command: "SOURCE 44"
params: []
- id: source_52
label: USB - EasyMP
kind: action
command: "SOURCE 52"
params: []
- id: source_a0
label: HDMI2 - HDMI
kind: action
command: "SOURCE A0"
params: []
- id: source_a1
label: HDMI2 - Digital RGB
kind: action
command: "SOURCE A1"
params: []
- id: source_a3
label: HDMI2 - RGB-Video
kind: action
command: "SOURCE A3"
params: []
- id: source_a4
label: HDMI2 - YCbCr
kind: action
command: "SOURCE A4"
params: []
- id: source_a5
label: HDMI2 - YPbPr
kind: action
command: "SOURCE A5"
params: []
- id: source_c0
label: INPUT 5 - Cycle within SOURCE Cx
kind: action
command: "SOURCE C0"
params: []
- id: source_c3
label: INPUT 5 - SCART
kind: action
command: "SOURCE C3"
params: []
- id: source_c4
label: INPUT 5 - YCbCr
kind: action
command: "SOURCE C4"
params: []
- id: source_c5
label: INPUT 5 - YPbPr
kind: action
command: "SOURCE C5"
params: []
- id: source_cf
label: INPUT 5 - Auto
kind: action
command: "SOURCE CF"
params: []
- id: source_d0
label: HDMI - WirelessHD
kind: action
command: "SOURCE D0"
params: []
- id: source_d1
label: HDMI - WirelessHD Digital RGB
kind: action
command: "SOURCE D1"
params: []
- id: source_d3
label: HDMI - WirelessHD RGB-Video
kind: action
command: "SOURCE D3"
params: []
- id: source_d4
label: HDMI - WirelessHD YCbCr
kind: action
command: "SOURCE D4"
params: []
- id: source_d5
label: HDMI - WirelessHD YPbPr
kind: action
command: "SOURCE D5"
params: []
- id: spwrlvl_01
label: Set Power-on Wake Level (TW200/TW200H prep)
kind: action
command: "SPWRLVL 01"
params: []
- id: illegal_command_marker
label: Illegal Command Marker
kind: action
command: "ERR"
params: []
Feedbacks
- id: command_ack
label: Command Acknowledgement
type: enum
values:
- ":" # colon returned after successful command execution
description: Successful set-command response per source section 2.1.
- id: null_command_ack
label: Null Command Acknowledgement
type: enum
values:
- ":"
description: Projector returns a colon in response to a null command (Hex 0D).
- id: illegal_command_response
label: Illegal Command Response
type: enum
values:
- "ERR\r:"
description: Returned for invalid commands; literal sequence "ERR" + return key (Hex 0D) + colon.
Variables
# UNRESOLVED: source describes INC/DEC/INIT step-parameter modifiers for set
# commands but does not enumerate which commands accept them in this excerpt.
Events
# UNRESOLVED: source does not describe unsolicited notifications.
Macros
# UNRESOLVED: source does not describe multi-step sequences.
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: TW200 and TW200H require a one-time "SPWRLVL 01" handshake before
# PWR ON becomes usable; TW500 requires "Network Monitoring" = ON before PWR ON.
# These are model-specific prerequisites from the source, captured in Notes below
# rather than as confirmation_required_for because they are not safety interlocks.
Notes
ESC/VP21 is a protocol-independent ASCII command set; same mnemonics traverse serial, USB, or TCP. Serial default is 9600/8/N/1 with no flow control on a D-Sub 9-pin Control (RS-232C) port; menu must be set to RS-232C under Advanced Setting for these models.
Command acknowledgement is the colon character ":" on success, and "ERR\r:" on illegal commands. The null command (Hex 0D) returns ":" and serves as a keepalive / liveness probe.
Model prerequisites:
- TW200 / TW200H: PWR ON requires a one-time prep — power on, send "SPWRLVL 01" once the projector is reachable, then power off once so it enters standby. After that, PWR ON works.
- TW500: PWR ON requires "Network Monitoring" under Operation in the Setting menu to be ON, plus one power-off to reach standby before PWR ON works.
- TW10 / TW10H: MSEL02 (User Logo test pattern) is unsupported.
The source documents a per-model applicability matrix for each SOURCE xx command (varies by input terminal, signal name, and model line). This spec enumerates each SOURCE xx command as a separate action but does not carry per-model applicability metadata — downstream consumers must consult the original command-table appendix for "OK" markings.
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-14T23:14:52.384Z
last_checked_at: 2026-10-07T13:04:48.259Z
Verification Summary
verdict: verified
checked_at: 2026-10-07T13:04:48.259Z
matched_actions: 50
action_count: 50
confidence: medium
summary: "All 50 action units match source literals (PWR/MUTE/MSEL/SOURCE codes, null, SPWRLVL, ERR) and serial transport values; source catalogue is fully represented. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "TCP port number, USB interface details, and exact RS-232C connector pinout are not stated in the refined source excerpt. Per-model support for each SOURCE xx command is recorded in the source matrix but not enumerated here per-model; downstream consumers must consult the original table for applicability."
- "source describes INC/DEC/INIT step-parameter modifiers for set"
- "source does not describe unsolicited notifications."
- "source does not describe multi-step sequences."
- "TW200 and TW200H require a one-time \"SPWRLVL 01\" handshake before"
- "TCP port number for the network transport is not stated in this excerpt — refer to the ESC/VP.net protocol manual referenced in section 1. USB transport command framing is also not detailed in this excerpt."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0