Summary

ViewSonic PJD5151/5153/5155/5250/5253/5255/5555w DLP projector family (model IDs VS15871–VS15876, VS14115) controlled via RS-232 serial hex commands. This spec covers the full RS-232 command table: power, lamp mode, image adjustments (contrast/brightness/color/hue/saturation/gain), aspect ratio, keystone, 3D, source routing, volume/mute, OSD settings, HDMI/CEC control, and status queries. IR remote control codes are documented in the source but out of scope for this serial-control spec.

Transport

protocols:
  - serial
serial:
  baud_rate: 115200  # default per source
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source
# Pin assignment (DB9, source verbatim):
#   1=NC  2=RX  3=TX  4=NC  5=GND  6=NC  7=RTSZ  8=CTSZ  9=NC
# Source states LAN: N/A, USB serial control: Type mini B (not enumerated as commands).

Traits

traits:
  - powerable    # inferred: power on/off commands present
  - queryable    # inferred: status query commands present for most functions
  - routable     # inferred: source input selection (VGA/VGA2/HDMI/Composite/SVIDEO) present
  - levelable    # inferred: volume/contrast/brightness/hue/saturation/gain inc/dec present

Actions

# All command bytes verbatim from source RS232 command table. Last byte is the
# source-documented checksum/trailer (not computed here). Query commands use
# kind: query and carry their 0x07-prefixed read payload.

# ---- Power ----
- id: power_on
  label: Power On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x00 0x00 0x5D"
  params: []

- id: power_off
  label: Power Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x01 0x00 0x5E"
  params: []

- id: power_status_query
  label: Power Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x00 0x5E"
  params: []

# ---- Reset ----
- id: reset_all_settings
  label: Reset All Settings
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x02 0x00 0x5F"
  params: []

- id: reset_color_settings
  label: Reset Color Settings
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x2A 0x00 0x87"
  params: []

# ---- Splash Screen ----
- id: splash_screen_black
  label: Splash Screen Black
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0A 0x00 0x67"
  params: []

- id: splash_screen_blue
  label: Splash Screen Blue
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0A 0x01 0x68"
  params: []

- id: splash_screen_viewsonic
  label: Splash Screen ViewSonic
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0A 0x02 0x69"
  params: []

- id: splash_screen_capture
  label: Splash Screen Capture
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0A 0x03 0x6A"
  params: []

- id: splash_screen_off
  label: Splash Screen Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0A 0x04 0x6B"
  params: []

- id: splash_screen_status_query
  label: Splash Screen Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x0A 0x68"
  params: []

# ---- Quick Power Off ----
- id: quick_power_off_off
  label: Quick Power Off Disable
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0B 0x00 0x68"
  params: []

- id: quick_power_off_on
  label: Quick Power Off Enable
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0B 0x01 0x69"
  params: []

- id: quick_power_off_status_query
  label: Quick Power Off Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x0B 0x69"
  params: []

# ---- High Altitude Mode ----
- id: high_altitude_mode_off
  label: High Altitude Mode Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0C 0x00 0x69"
  params: []

- id: high_altitude_mode_on
  label: High Altitude Mode On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x0C 0x01 0x6A"
  params: []

- id: high_altitude_mode_status_query
  label: High Altitude Mode Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x0C 0x6A"
  params: []

# ---- Lamp Mode ----
- id: lamp_mode_normal
  label: Lamp Mode Normal
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x10 0x00 0x6D"
  params: []

- id: lamp_mode_economic
  label: Lamp Mode Economic
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x10 0x01 0x6E"
  params: []

- id: lamp_mode_dynamic
  label: Lamp Mode Dynamic
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x10 0x02 0x6F"
  params: []

- id: lamp_mode_sleep
  label: Lamp Mode Sleep
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x10 0x03 0x70"
  params: []

- id: lamp_mode_status_query
  label: Lamp Mode Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x10 0x6E"
  params: []

# ---- Message (OSD) ----
- id: message_off
  label: Message Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x27 0x00 0x84"
  params: []

- id: message_on
  label: Message On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x27 0x01 0x85"
  params: []

- id: message_status_query
  label: Message Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x27 0x85"
  params: []

# ---- Projector Position ----
- id: projector_position_front_table
  label: Projector Position Front Table
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x00 0x00 0x5E"
  params: []

- id: projector_position_rear_table
  label: Projector Position Rear Table
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x00 0x01 0x5F"
  params: []

- id: projector_position_rear_ceiling
  label: Projector Position Rear Ceiling
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x00 0x02 0x60"
  params: []

- id: projector_position_front_ceiling
  label: Projector Position Front Ceiling
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x00 0x03 0x61"
  params: []

- id: projector_position_status_query
  label: Projector Position Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x00 0x5F"
  params: []

# ---- 3D Sync ----
- id: three_d_sync_off
  label: 3D Sync Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x20 0x00 0x7E"
  params: []

- id: three_d_sync_auto
  label: 3D Sync Auto
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x20 0x01 0x7F"
  params: []

- id: three_d_sync_frame_sequential
  label: 3D Sync Frame Sequential
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x20 0x02 0x80"
  params: []

- id: three_d_sync_frame_packing
  label: 3D Sync Frame Packing
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x20 0x03 0x81"
  params: []

- id: three_d_sync_top_bottom
  label: 3D Sync Top-Bottom
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x20 0x04 0x82"
  params: []

- id: three_d_sync_side_by_side
  label: 3D Sync Side-by-Side
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x20 0x05 0x83"
  params: []

- id: three_d_sync_status_query
  label: 3D Sync Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x20 0x7F"
  params: []

# ---- 3D Sync Invert ----
- id: three_d_sync_invert_off
  label: 3D Sync Invert Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x21 0x00 0x7F"
  params: []

- id: three_d_sync_invert_on
  label: 3D Sync Invert On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x21 0x01 0x80"
  params: []

- id: three_d_sync_invert_status_query
  label: 3D Sync Invert Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x21 0x80"
  params: []

# ---- Contrast (relative inc/dec) ----
- id: contrast_decrease
  label: Contrast Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x02 0x00 0x60"
  params: []

- id: contrast_increase
  label: Contrast Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x02 0x01 0x61"
  params: []

- id: contrast_status_query
  label: Contrast Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x02 0x61"
  params: []

# ---- Brightness (relative inc/dec) ----
- id: brightness_decrease
  label: Brightness Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x03 0x00 0x61"
  params: []

- id: brightness_increase
  label: Brightness Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x03 0x01 0x62"
  params: []

- id: brightness_status_query
  label: Brightness Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x03 0x62"
  params: []

# ---- Aspect Ratio ----
- id: aspect_ratio_auto
  label: Aspect Ratio Auto
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x00 0x62"
  params: []

- id: aspect_ratio_4_3
  label: Aspect Ratio 4:3
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x02 0x64"
  params: []

- id: aspect_ratio_16_9
  label: Aspect Ratio 16:9
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x03 0x65"
  params: []

- id: aspect_ratio_16_10
  label: Aspect Ratio 16:10
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x04 0x66"
  params: []

- id: aspect_ratio_anamorphic
  label: Aspect Ratio Anamorphic
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x05 0x67"
  params: []

- id: aspect_ratio_wide
  label: Aspect Ratio Wide
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x06 0x68"
  params: []

- id: aspect_ratio_2_35_1
  label: Aspect Ratio 2.35:1
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x07 0x69"
  params: []

- id: aspect_ratio_panorama
  label: Aspect Ratio Panorama
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x04 0x08 0x6A"
  params: []

- id: aspect_ratio_status_query
  label: Aspect Ratio Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x04 0x63"
  params: []

# ---- Auto Adjust ----
- id: auto_adjust_execute
  label: Auto Adjust
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x05 0x00 0x63"
  params: []

# ---- Horizontal Position (relative) ----
- id: horizontal_position_shift_right
  label: Horizontal Position Shift Right
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x06 0x01 0x65"
  params: []

- id: horizontal_position_shift_left
  label: Horizontal Position Shift Left
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x06 0x00 0x64"
  params: []

- id: horizontal_position_status_query
  label: Horizontal Position Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x06 0x65"
  params: []

# ---- Vertical Position (relative) ----
- id: vertical_position_shift_up
  label: Vertical Position Shift Up
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x07 0x00 0x65"
  params: []

- id: vertical_position_shift_down
  label: Vertical Position Shift Down
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x07 0x01 0x66"
  params: []

- id: vertical_position_status_query
  label: Vertical Position Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x07 0x66"
  params: []

# ---- Color Temperature ----
- id: color_temperature_warm
  label: Color Temperature Warm
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x08 0x00 0x66"
  params: []

- id: color_temperature_normal
  label: Color Temperature Normal
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x08 0x01 0x67"
  params: []

- id: color_temperature_neutral
  label: Color Temperature Neutral
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x08 0x02 0x68"
  params: []

- id: color_temperature_cool
  label: Color Temperature Cool
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x08 0x03 0x69"
  params: []

- id: color_temperature_status_query
  label: Color Temperature Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x08 0x67"
  params: []

# ---- Blank ----
- id: blank_on
  label: Blank On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x09 0x01 0x68"
  params: []

- id: blank_off
  label: Blank Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x09 0x00 0x67"
  params: []

- id: blank_status_query
  label: Blank Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x09 0x68"
  params: []

# ---- Keystone Vertical (relative) ----
- id: keystone_vertical_decrease
  label: Keystone Vertical Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0A 0x00 0x68"
  params: []

- id: keystone_vertical_increase
  label: Keystone Vertical Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0A 0x01 0x69"
  params: []

- id: keystone_vertical_status_query
  label: Keystone Vertical Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x0A 0x69"
  params: []

# ---- Keystone Horizontal (relative) ----
- id: keystone_horizontal_decrease
  label: Keystone Horizontal Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x31 0x00 0x8E"
  params: []

- id: keystone_horizontal_increase
  label: Keystone Horizontal Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x31 0x01 0x8F"
  params: []

- id: keystone_horizontal_status_query
  label: Keystone Horizontal Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x31 0x8F"
  params: []

# ---- Color Mode (preset) ----
- id: color_mode_brightest
  label: Color Mode Brightest
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0B 0x00 0x69"
  params: []

- id: color_mode_movie
  label: Color Mode Movie
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0B 0x01 0x6A"
  params: []

- id: color_mode_standard
  label: Color Mode Standard
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0B 0x04 0x6D"
  params: []

- id: color_mode_viewmatch
  label: Color Mode ViewMatch
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0B 0x05 0x6E"
  params: []

- id: color_mode_dynamic
  label: Color Mode Dynamic
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0B 0x08 0x71"
  params: []

- id: color_mode_status_query
  label: Color Mode Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x0B 0x6A"
  params: []

# ---- Primary Color (for adjustment target) ----
- id: primary_color_r
  label: Primary Color Red
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x10 0x00 0x6E"
  params: []

- id: primary_color_g
  label: Primary Color Green
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x10 0x01 0x6F"
  params: []

- id: primary_color_b
  label: Primary Color Blue
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x10 0x02 0x70"
  params: []

- id: primary_color_c
  label: Primary Color Cyan
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x10 0x03 0x71"
  params: []

- id: primary_color_m
  label: Primary Color Magenta
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x10 0x04 0x72"
  params: []

- id: primary_color_y
  label: Primary Color Yellow
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x10 0x05 0x73"
  params: []

- id: primary_color_status_query
  label: Primary Color Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x10 0x6F"
  params: []

# ---- Hue (relative) ----
- id: hue_decrease
  label: Hue Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x11 0x00 0x6F"
  params: []

- id: hue_increase
  label: Hue Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x11 0x01 0x70"
  params: []

- id: hue_status_query
  label: Hue Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x11 0x70"
  params: []

# ---- Saturation (relative) ----
- id: saturation_decrease
  label: Saturation Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x12 0x00 0x70"
  params: []

- id: saturation_increase
  label: Saturation Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x12 0x01 0x71"
  params: []

- id: saturation_status_query
  label: Saturation Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x12 0x71"
  params: []

# ---- Gain (relative) ----
- id: gain_decrease
  label: Gain Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x13 0x00 0x71"
  params: []

- id: gain_increase
  label: Gain Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x13 0x01 0x72"
  params: []

- id: gain_status_query
  label: Gain Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x13 0x72"
  params: []

# ---- Freeze ----
- id: freeze_on
  label: Freeze On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x00 0x01 0x60"
  params: []

- id: freeze_off
  label: Freeze Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x00 0x00 0x5F"
  params: []

- id: freeze_status_query
  label: Freeze Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x13 0x00 0x60"
  params: []

# ---- Source Input (routing) ----
- id: select_source_vga
  label: Select Source VGA
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x01 0x00 0x60"
  params: []

- id: select_source_vga2
  label: Select Source VGA2
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x01 0x08 0x68"
  params: []

- id: select_source_hdmi
  label: Select Source HDMI
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x01 0x03 0x63"
  params: []

- id: select_source_composite
  label: Select Source Composite
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x01 0x05 0x65"
  params: []

- id: select_source_svideo
  label: Select Source S-Video
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x01 0x06 0x66"
  params: []

- id: source_status_query
  label: Source Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x13 0x01 0x61"
  params: []

# ---- Quick Auto Search ----
- id: quick_auto_search_on
  label: Quick Auto Search On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x02 0x01 0x62"
  params: []

- id: quick_auto_search_off
  label: Quick Auto Search Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x13 0x02 0x00 0x61"
  params: []

- id: quick_auto_search_status_query
  label: Quick Auto Search Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x13 0x02 0x62"
  params: []

# ---- Mute ----
- id: mute_on
  label: Mute On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x14 0x00 0x01 0x61"
  params: []

- id: mute_off
  label: Mute Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x14 0x00 0x00 0x60"
  params: []

- id: mute_status_query
  label: Mute Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x14 0x00 0x61"
  params: []

# ---- Volume (relative inc/dec) ----
- id: volume_increase
  label: Volume Increase
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x14 0x01 0x00 0x61"
  params: []

- id: volume_decrease
  label: Volume Decrease
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x14 0x02 0x00 0x62"
  params: []

- id: volume_status_query
  label: Volume Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x14 0x03 0x64"
  params: []

# ---- Language (parameterized; source lists 21 unlabeled rows, value byte 0x00-0x14) ----
- id: set_language
  label: Set Language
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x15 0x00 {lang_index} {checksum}"
  params:
    - name: lang_index
      type: integer
      description: "Language index 0x00-0x14 (21 languages enumerated in source rows 0x00-0x14)"
  notes: >-
    Source enumerates 21 distinct rows for the Language Write command, each
    differing only in the value byte (0x00 through 0x14) and the trailing
    checksum byte. No language names are given in the source. Verbatim row
    payloads: 0x00→0x61, 0x01→0x62, 0x02→0x63, 0x03→0x64, 0x04→0x65,
    0x05→0x66, 0x06→0x67, 0x07→0x68, 0x08→0x69, 0x09→0x6A, 0x0a→0x6B,
    0x0b→0x6C, 0x0c→0x6D, 0x0d→0x6E, 0x0e→0x6F, 0x0f→0x70, 0x10→0x71,
    0x11→0x72, 0x12→0x73, 0x13→0x74, 0x14→0x75. UNRESOLVED: language names
    not stated; checksum computation rule not stated.

- id: language_status_query
  label: Language Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x15 0x00 0x62"
  params: []

# ---- Lamp Time ----
- id: reset_lamp_usage_hour
  label: Reset Lamp Usage Hour
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x15 0x01 0x00 0x62"
  params: []

- id: lamp_usage_hour_query
  label: Lamp Usage Hour Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x15 0x01 0x63"
  params: []

# ---- HDMI Format ----
- id: hdmi_format_rgb
  label: HDMI Format RGB
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x28 0x00 0x85"
  params: []

- id: hdmi_format_yuv
  label: HDMI Format YUV
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x28 0x01 0x86"
  params: []

- id: hdmi_format_auto
  label: HDMI Format Auto
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x28 0x02 0x87"
  params: []

- id: hdmi_format_status_query
  label: HDMI Format Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x28 0x86"
  params: []

# ---- HDMI Range ----
- id: hdmi_range_enhanced
  label: HDMI Range Enhanced
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x29 0x00 0x86"
  params: []

- id: hdmi_range_normal
  label: HDMI Range Normal
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x29 0x01 0x87"
  params: []

- id: hdmi_range_auto
  label: HDMI Range Auto
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x29 0x02 0x88"
  params: []

- id: hdmi_range_status_query
  label: HDMI Range Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x29 0x87"
  params: []

# ---- CEC ----
- id: cec_off
  label: CEC Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x2B 0x00 0x88"
  params: []

- id: cec_on
  label: CEC On
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x2B 0x01 0x89"
  params: []

- id: cec_status_query
  label: CEC Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x2B 0x89"
  params: []

# ---- Error Status ----
- id: error_status_query
  label: Error Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x0C 0x0D 0x66"
  params: []

# ---- Brilliant Color (0-10, each a distinct source row) ----
- id: brilliant_color_0
  label: Brilliant Color 0
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x00 0x6D"
  params: []

- id: brilliant_color_1
  label: Brilliant Color 1
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x01 0x6E"
  params: []

- id: brilliant_color_2
  label: Brilliant Color 2
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x02 0x6F"
  params: []

- id: brilliant_color_3
  label: Brilliant Color 3
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x03 0x70"
  params: []

- id: brilliant_color_4
  label: Brilliant Color 4
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x04 0x71"
  params: []

- id: brilliant_color_5
  label: Brilliant Color 5
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x05 0x72"
  params: []

- id: brilliant_color_6
  label: Brilliant Color 6
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x06 0x73"
  params: []

- id: brilliant_color_7
  label: Brilliant Color 7
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x07 0x74"
  params: []

- id: brilliant_color_8
  label: Brilliant Color 8
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x08 0x75"
  params: []

- id: brilliant_color_9
  label: Brilliant Color 9
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x09 0x76"
  params: []

- id: brilliant_color_10
  label: Brilliant Color 10
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x12 0x0F 0x0A 0x77"
  params: []

- id: brilliant_color_status_query
  label: Brilliant Color Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x12 0x0F 0x6E"
  params: []

# ---- Remote Control Code (1-8, each a distinct source row) ----
- id: remote_control_code_1
  label: Remote Control Code 1
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x00 0xA0"
  params: []

- id: remote_control_code_2
  label: Remote Control Code 2
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x01 0xA1"
  params: []

- id: remote_control_code_3
  label: Remote Control Code 3
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x02 0xA2"
  params: []

- id: remote_control_code_4
  label: Remote Control Code 4
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x03 0xA3"
  params: []

- id: remote_control_code_5
  label: Remote Control Code 5
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x04 0xA4"
  params: []

- id: remote_control_code_6
  label: Remote Control Code 6
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x05 0xA5"
  params: []

- id: remote_control_code_7
  label: Remote Control Code 7
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x06 0xA6"
  params: []

- id: remote_control_code_8
  label: Remote Control Code 8
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x0C 0x48 0x07 0xA7"
  params: []

- id: remote_control_code_status_query
  label: Remote Control Code Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x0C 0x048 0xA1"
  params: []

# ---- Screen Color ----
- id: screen_color_off
  label: Screen Color Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x32 0x00 0x8F"
  params: []

- id: screen_color_blackboard
  label: Screen Color Blackboard
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x32 0x01 0x90"
  params: []

- id: screen_color_greenboard
  label: Screen Color Greenboard
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x32 0x02 0x91"
  params: []

- id: screen_color_whiteboard
  label: Screen Color Whiteboard
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x32 0x03 0x92"
  params: []

- id: screen_color_status_query
  label: Screen Color Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x32 0x90"
  params: []

# ---- Over Scan (Off + 1-5, each a distinct source row) ----
- id: overscan_off
  label: Overscan Off
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x33 0x00 0x90"
  params: []

- id: overscan_1
  label: Overscan 1
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x33 0x01 0x91"
  params: []

- id: overscan_2
  label: Overscan 2
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x33 0x02 0x92"
  params: []

- id: overscan_3
  label: Overscan 3
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x33 0x03 0x93"
  params: []

- id: overscan_4
  label: Overscan 4
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x33 0x04 0x94"
  params: []

- id: overscan_5
  label: Overscan 5
  kind: action
  command: "0x06 0x14 0x00 0x04 0x00 0x34 0x11 0x33 0x05 0x95"
  params: []

- id: overscan_status_query
  label: Overscan Status Query
  kind: query
  command: "0x07 0x14 0x00 0x05 0x00 0x34 0x00 0x00 0x11 0x33 0x91"
  params: []

# ---- Remote Key (emulate IR key via serial; 0x02-prefixed) ----
- id: remote_key_menu
  label: Remote Key Menu
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x0F 0x61"
  params: []

- id: remote_key_exit
  label: Remote Key Exit
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x13 0x65"
  params: []

- id: remote_key_up
  label: Remote Key Up
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x0B 0x5D"
  params: []

- id: remote_key_down
  label: Remote Key Down
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x0C 0x5E"
  params: []

- id: remote_key_left
  label: Remote Key Left
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x0D 0x5F"
  params: []

- id: remote_key_right
  label: Remote Key Right
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x0E 0x60"
  params: []

- id: remote_key_source
  label: Remote Key Source
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x04 0x56"
  params: []

- id: remote_key_enter
  label: Remote Key Enter
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x15 0x67"
  params: []

- id: remote_key_auto
  label: Remote Key Auto
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x08 0x5A"
  params: []

- id: remote_key_my_button
  label: Remote Key My Button
  kind: action
  command: "0x02 0x14 0x00 0x04 0x00 0x34 0x02 0x04 0x11 0x63"
  params: []

Feedbacks

# Observable state returned by the corresponding *_status_query actions.
# Response byte format UNRESOLVED - source documents only request payloads,
# not the response frame layout or value encoding.
- id: power_state
  type: enum
  values: [on, off]
  query_action: power_status_query

- id: splash_screen_state
  type: enum
  values: [black, blue, viewsonic, screen_capture, off]
  query_action: splash_screen_status_query

- id: quick_power_off_state
  type: enum
  values: [on, off]
  query_action: quick_power_off_status_query

- id: high_altitude_mode_state
  type: enum
  values: [on, off]
  query_action: high_altitude_mode_status_query

- id: lamp_mode_state
  type: enum
  values: [normal, economic, dynamic, sleep]
  query_action: lamp_mode_status_query

- id: message_state
  type: enum
  values: [on, off]
  query_action: message_status_query

- id: projector_position_state
  type: enum
  values: [front_table, rear_table, rear_ceiling, front_ceiling]
  query_action: projector_position_status_query

- id: three_d_sync_state
  type: enum
  values: [off, auto, frame_sequential, frame_packing, top_bottom, side_by_side]
  query_action: three_d_sync_status_query

- id: three_d_sync_invert_state
  type: enum
  values: [on, off]
  query_action: three_d_sync_invert_status_query

- id: contrast_level
  type: integer
  query_action: contrast_status_query

- id: brightness_level
  type: integer
  query_action: brightness_status_query

- id: aspect_ratio_state
  type: enum
  values: [auto, "4:3", "16:9", "16:10", anamorphic, wide, "2.35:1", panorama]
  query_action: aspect_ratio_status_query

- id: horizontal_position
  type: integer
  query_action: horizontal_position_status_query

- id: vertical_position
  type: integer
  query_action: vertical_position_status_query

- id: color_temperature_state
  type: enum
  values: [warm, normal, neutral, cool]
  query_action: color_temperature_status_query

- id: blank_state
  type: enum
  values: [on, off]
  query_action: blank_status_query

- id: keystone_vertical
  type: integer
  query_action: keystone_vertical_status_query

- id: keystone_horizontal
  type: integer
  query_action: keystone_horizontal_status_query

- id: color_mode_state
  type: enum
  values: [brightest, movie, standard, viewmatch, dynamic]
  query_action: color_mode_status_query

- id: primary_color_state
  type: enum
  values: [r, g, b, c, m, y]
  query_action: primary_color_status_query

- id: hue_level
  type: integer
  query_action: hue_status_query

- id: saturation_level
  type: integer
  query_action: saturation_status_query

- id: gain_level
  type: integer
  query_action: gain_status_query

- id: freeze_state
  type: enum
  values: [on, off]
  query_action: freeze_status_query

- id: source_state
  type: enum
  values: [vga, vga2, hdmi, composite, svideo]
  query_action: source_status_query

- id: quick_auto_search_state
  type: enum
  values: [on, off]
  query_action: quick_auto_search_status_query

- id: mute_state
  type: enum
  values: [on, off]
  query_action: mute_status_query

- id: volume_level
  type: integer
  query_action: volume_status_query

- id: language_state
  type: integer
  query_action: language_status_query
  # UNRESOLVED: language name mapping not stated in source

- id: lamp_usage_hours
  type: integer
  query_action: lamp_usage_hour_query

- id: hdmi_format_state
  type: enum
  values: [rgb, yuv, auto]
  query_action: hdmi_format_status_query

- id: hdmi_range_state
  type: enum
  values: [enhanced, normal, auto]
  query_action: hdmi_range_status_query

- id: cec_state
  type: enum
  values: [on, off]
  query_action: cec_status_query

- id: error_status
  type: integer
  query_action: error_status_query
  # UNRESOLVED: error bit/field decoding not stated in source

- id: brilliant_color_level
  type: integer
  query_action: brilliant_color_status_query

- id: remote_control_code_state
  type: integer
  query_action: remote_control_code_status_query

- id: screen_color_state
  type: enum
  values: [off, blackboard, greenboard, whiteboard]
  query_action: screen_color_status_query

- id: overscan_state
  type: enum
  values: [off, "1", "2", "3", "4", "5"]
  query_action: overscan_status_query

Variables

# All settable parameters are modeled as discrete Actions (enum selects or
# relative inc/dec). No continuous absolute-set variables beyond those.
# Volume/contrast/brightness/hue/saturation/gain/keystone are inc/dec only
# in this source - no absolute value-set command documented.

Events

# Source documents no unsolicited notifications / push events.

Macros

# Source documents no multi-step command sequences.

Safety

confirmation_required_for: []
interlocks: []
# Source documents a "Reset All Settings" and "Reset Lamp Usage Hour" command
# (destructive to configuration / maintenance counters) but states no explicit
# confirmation/interlock procedure for them. Operator may wish to require
# confirmation before invoking reset_all_settings or reset_lamp_usage_hour.
# UNRESOLVED: no power-on sequencing or cool-down interlock stated in source.

Notes

  • All RS-232 commands are fixed-length hex frames. Write commands begin 0x06 0x14 0x00 0x04 0x00 0x34 ...; read (query) commands begin 0x07 0x14 0x00 0x05 0x00 0x34 ...; remote-key emulation begins 0x02 0x14 0x00 0x04 0x00 0x34 .... The final byte of each frame is a per-command value (likely a checksum/trailer) copied verbatim from the source.
  • DB9 pinout (source verbatim): 1=NC, 2=RX, 3=TX, 4=NC, 5=GND, 6=NC, 7=RTSZ, 8=CTSZ, 9=NC. A null-modem wiring is implied by separate RX/TX pins but not explicitly described.
  • Rear-panel connector inventory differs by model: PJD5155/5255/5555w and PJD5153/5253 carry AUDIO, S-VIDEO, VIDEO, MONITOR OUT; PJD5151/5250 are reduced (MINIUSB, COMPUTER IN 1/2, RS-232 only). All 7 models expose RS-232.
  • IR remote control uses NEC format with a 4-byte payload (X3 F4 {byte3} {byte4}) and supports 8 address codes (Code 1=83F4 ... Code 8=F3F4) to disambiguate adjacent projectors. IR is out of scope for this serial spec but documented for reference; the serial remote_control_code_* actions configure which IR address the projector responds to.
  • "Remote Key" actions (0x02-prefixed) emulate IR keypresses over the serial link — useful for menu navigation that has no direct RS-232 equivalent.

Provenance

source_domains:
  - viewsonicglobal.com
  - raw.githubusercontent.com
  - projectorcentral.com
  - manuals.plus
  - viewsonicvsa.freshdesk.com
source_urls:
  - https://www.viewsonicglobal.com/public/products_download/user_guide/projector/pjd5555w/english.pdf
  - "https://raw.githubusercontent.com/nfeuerhelm/ha-proj-viewsonic/main/RS-232%20LAN%20Control%20Protocol%20Specification%20V1.5.pdf"
  - https://www.projectorcentral.com/pdf/projector_manual_8732.pdf
  - https://manuals.plus/m/0acef2dd3c8a812de94b9dd79be0012d5e433ee90d8a7b770dd8f1b4783fb15a.pdf
  - https://viewsonicvsa.freshdesk.com/support/solutions/articles/43000470420-viewsonic-projector-rs232-protocol
retrieved_at: 2026-07-21T23:12:19.879Z
last_checked_at: 2026-07-22T07:56:25.917Z

Verification Summary

verdict: verified
checked_at: 2026-07-22T07:56:25.917Z
matched_actions: 175
action_count: 175
confidence: medium
summary: "All 175 spec actions match verbatim in source; transport params verified; full command catalogue coverage at matching granularity. (13 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "IR remote NEC-format key codes and 8-way remote address codes are documented in the source but not modeled here (IR transport, not serial)."
- "response/acknowledgement byte format for each command not documented in source (only request payloads given)."
- "command framing/inter-byte timing not stated."
- "language names"
- "language name mapping not stated in source"
- "error bit/field decoding not stated in source"
- "no power-on sequencing or cool-down interlock stated in source."
- "response/ack frame layout and value encoding for all queries — source gives only request payloads."
- "checksum/trailer byte computation rule — not stated; values copied verbatim per row."
- "inter-command timing / turnaround delay not stated."
- "firmware version compatibility range not stated."
- "language names for the 21 Language rows not stated."
- "error_status bitfield decoding not stated."

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