Summary
ViewSonic PJD5351LS short-throw projector. RS-232 (DSUB 9-pin male) and LAN control via TCP port 4661. The source document is a generic ViewSonic projector RS-232/LAN protocol specification applicable to "all projectors" with per-model differences highlighted in the spec; PJD5351LS-specific command coverage is not explicitly enumerated in the source.
Transport
protocols:
- serial
- tcp
addressing:
port: 4661 # stated in Note 2 of source: "via a LAN Port 4661"
serial:
baud_rate: null # UNRESOLVED: source lists 2400/4800/9600/14400/19200/38400/115200 as supported; no single default stated
data_bits: null # UNRESOLVED: not stated in source
parity: null # UNRESOLVED: not stated in source
stop_bits: null # UNRESOLVED: not stated in source
flow_control: null # UNRESOLVED: not stated in source
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # inferred from Power on/off commands (entries 1-2)
- queryable # inferred from Read/Status commands throughout command list
- routable # inferred from Source input selection commands (entries 115-130)
- levelable # inferred from Contrast, Brightness, Volume, Hue, Saturation, Gain, Sharpness commands
Actions
# Power
- id: power_on
label: Power On
kind: action
command: "06 14 00 04 00 34 11 00 00 5D" # literal RS-232 bytes (drop 0x prefixes) from source
response: "05 14 00 03 00 00 00 01 18"
- id: power_off
label: Power Off
kind: action
command: "06 14 00 04 00 34 11 01 00 5E"
response: "05 14 00 03 00 00 00 00 17"
- id: power_status
label: Power Status
kind: query
command: "07 14 00 05 00 34 00 00 11 00 5E"
- id: projector_status
label: Projector Status
kind: query
command: "07 14 00 05 00 34 00 00 11 26 84"
notes: "Response: 0x01=Warm up, 0x03=Cool down, 0x02=Power On, 0x00=Power Off"
# Reset
- id: reset_all_settings
label: Reset All Settings
kind: action
command: "06 14 00 04 00 34 11 02 00 5F"
- id: reset_color_settings
label: Reset Color Settings
kind: action
command: "06 14 00 04 00 34 11 2A 00 87"
# Splash Screen
- id: splash_screen_black
label: Splash Screen Black
kind: action
command: "06 14 00 04 00 34 11 0A 00 67"
- id: splash_screen_blue
label: Splash Screen Blue
kind: action
command: "06 14 00 04 00 34 11 0A 01 68"
- id: splash_screen_viewsonic
label: Splash Screen ViewSonic
kind: action
command: "06 14 00 04 00 34 11 0A 02 69"
- id: splash_screen_capture
label: Splash Screen Capture
kind: action
command: "06 14 00 04 00 34 11 0A 03 6A"
- id: splash_screen_off
label: Splash Screen Off
kind: action
command: "06 14 00 04 00 34 11 0A 04 6B"
- id: splash_screen_status
label: Splash Screen Status
kind: query
command: "07 14 00 05 00 34 00 00 11 0A 68"
# Quick Power Off
- id: quick_power_off_off
label: Quick Power Off OFF
kind: action
command: "06 14 00 04 00 34 11 0B 00 68"
- id: quick_power_off_on
label: Quick Power Off ON
kind: action
command: "06 14 00 04 00 34 11 0B 01 69"
- id: quick_power_off_status
label: Quick Power Off Status
kind: query
command: "07 14 00 05 00 34 00 00 11 0B 69"
# High Altitude Mode
- id: high_altitude_off
label: High Altitude Mode OFF
kind: action
command: "06 14 00 04 00 34 11 0C 00 69"
- id: high_altitude_on
label: High Altitude Mode ON
kind: action
command: "06 14 00 04 00 34 11 0C 01 6A"
- id: high_altitude_status
label: High Altitude Mode Status
kind: query
command: "07 14 00 05 00 34 00 00 11 0C 6A"
# Light Source Mode
- id: light_source_normal
label: Light Source Mode Normal
kind: action
command: "06 14 00 04 00 34 11 10 00 6D"
- id: light_source_eco
label: Light Source Mode Eco
kind: action
command: "06 14 00 04 00 34 11 10 01 6E"
- id: light_source_dynamic_eco
label: Light Source Mode Dynamic Eco
kind: action
command: "06 14 00 04 00 34 11 10 02 6F"
- id: light_source_supereco
label: Light Source Mode SuperEco
kind: action
command: "06 14 00 04 00 34 11 10 03 70"
- id: light_source_status
label: Light Source Mode Status
kind: query
command: "07 14 00 05 00 34 00 00 11 10 6E"
# Message
- id: message_off
label: Message OFF
kind: action
command: "06 14 00 04 00 34 11 27 00 84"
- id: message_on
label: Message ON
kind: action
command: "06 14 00 04 00 34 11 27 01 85"
- id: message_status
label: Message Status
kind: query
command: "07 14 00 05 00 34 00 00 11 27 85"
# Projector Position
- id: position_front_table
label: Projector Position Front Table
kind: action
command: "06 14 00 04 00 34 12 00 00 5E"
- id: position_rear_table
label: Projector Position Rear Table
kind: action
command: "06 14 00 04 00 34 12 00 01 5F"
- id: position_rear_ceiling
label: Projector Position Rear Ceiling
kind: action
command: "06 14 00 04 00 34 12 00 02 60"
- id: position_front_ceiling
label: Projector Position Front Ceiling
kind: action
command: "06 14 00 04 00 34 12 00 03 61"
- id: position_status
label: Projector Position Status
kind: query
command: "07 14 00 05 00 34 00 00 12 00 5F"
# 3D Sync
- id: 3d_sync_off
label: 3D Sync OFF
kind: action
command: "06 14 00 04 00 34 12 20 00 7E"
- id: 3d_sync_auto
label: 3D Sync Auto
kind: action
command: "06 14 00 04 00 34 12 20 01 7F"
- id: 3d_sync_frame_sequential
label: 3D Sync Frame Sequential
kind: action
command: "06 14 00 04 00 34 12 20 02 80"
- id: 3d_sync_frame_packing
label: 3D Sync Frame Packing
kind: action
command: "06 14 00 04 00 34 12 20 03 81"
- id: 3d_sync_top_bottom
label: 3D Sync Top Bottom
kind: action
command: "06 14 00 04 00 34 12 20 04 82"
- id: 3d_sync_side_by_side
label: 3D Sync Side by Side
kind: action
command: "06 14 00 04 00 34 12 20 05 83"
- id: 3d_sync_status
label: 3D Sync Status
kind: query
command: "07 14 00 05 00 34 00 00 12 20 7F"
# 3D Sync Invert
- id: 3d_sync_invert_off
label: 3D Sync Invert OFF
kind: action
command: "06 14 00 04 00 34 12 21 00 7F"
- id: 3d_sync_invert_on
label: 3D Sync Invert ON
kind: action
command: "06 14 00 04 00 34 12 21 01 80"
- id: 3d_sync_invert_status
label: 3D Sync Invert Status
kind: query
command: "07 14 00 05 00 34 00 00 12 21 80"
# Contrast
- id: contrast_decrease
label: Contrast Decrease
kind: action
command: "06 14 00 04 00 34 12 02 00 60"
- id: contrast_increase
label: Contrast Increase
kind: action
command: "06 14 00 04 00 34 12 02 01 61"
- id: contrast_get
label: Contrast Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 02 61"
notes: "Response: 2-byte value per mapping table 3.2.2"
# Brightness
- id: brightness_decrease
label: Brightness Decrease
kind: action
command: "06 14 00 04 00 34 12 03 00 61"
- id: brightness_increase
label: Brightness Increase
kind: action
command: "06 14 00 04 00 34 12 03 01 62"
- id: brightness_get
label: Brightness Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 03 62"
notes: "Response: 2-byte value per mapping table 3.2.2"
# Aspect Ratio
- id: aspect_auto
label: Aspect Ratio Auto
kind: action
command: "06 14 00 04 00 34 12 04 00 62"
- id: aspect_4_3
label: Aspect Ratio 4:3
kind: action
command: "06 14 00 04 00 34 12 04 02 64"
- id: aspect_16_9
label: Aspect Ratio 16:9
kind: action
command: "06 14 00 04 00 34 12 04 03 65"
- id: aspect_16_10
label: Aspect Ratio 16:10
kind: action
command: "06 14 00 04 00 34 12 04 04 66"
- id: aspect_anamorphic
label: Aspect Ratio Anamorphic
kind: action
command: "06 14 00 04 00 34 12 04 05 67"
- id: aspect_wide
label: Aspect Ratio Wide
kind: action
command: "06 14 00 04 00 34 12 04 06 68"
- id: aspect_2_35_1
label: Aspect Ratio 2.35:1
kind: action
command: "06 14 00 04 00 34 12 04 07 69"
- id: aspect_panorama
label: Aspect Ratio Panorama
kind: action
command: "06 14 00 04 00 34 12 04 08 6A"
- id: aspect_native
label: Aspect Ratio Native
kind: action
command: "06 14 00 04 00 34 12 04 09 6B"
- id: aspect_cycle
label: Aspect Ratio Cycle
kind: action
command: "06 14 00 04 00 34 13 31 00 90"
- id: aspect_get
label: Aspect Ratio Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 04 63"
# Auto Adjust
- id: auto_adjust
label: Auto Adjust
kind: action
command: "06 14 00 04 00 34 12 05 00 63"
# Horizontal Position
- id: hpos_shift_right
label: Horizontal Position Shift Right
kind: action
command: "06 14 00 04 00 34 12 06 01 65"
- id: hpos_shift_left
label: Horizontal Position Shift Left
kind: action
command: "06 14 00 04 00 34 12 06 00 64"
- id: hpos_get
label: Horizontal Position Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 06 65"
notes: "Response: 1-byte value per mapping table 3.2.1"
# Vertical Position
- id: vpos_shift_up
label: Vertical Position Shift Up
kind: action
command: "06 14 00 04 00 34 12 07 00 65"
- id: vpos_shift_down
label: Vertical Position Shift Down
kind: action
command: "06 14 00 04 00 34 12 07 01 66"
- id: vpos_get
label: Vertical Position Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 07 66"
notes: "Response: 1-byte value per mapping table 3.2.1"
# Color Temperature
- id: color_temp_warm
label: Color Temperature Warm
kind: action
command: "06 14 00 04 00 34 12 08 00 66"
- id: color_temp_normal
label: Color Temperature Normal
kind: action
command: "06 14 00 04 00 34 12 08 01 67"
- id: color_temp_neutral
label: Color Temperature Neutral
kind: action
command: "06 14 00 04 00 34 12 08 02 68"
- id: color_temp_cool
label: Color Temperature Cool
kind: action
command: "06 14 00 04 00 34 12 08 03 69"
- id: color_temp_get
label: Color Temperature Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 08 67"
# Blank
- id: blank_on
label: Blank ON
kind: action
command: "06 14 00 04 00 34 12 09 01 68"
- id: blank_off
label: Blank OFF
kind: action
command: "06 14 00 04 00 34 12 09 00 67"
- id: blank_status
label: Blank Status
kind: query
command: "07 14 00 05 00 34 00 00 12 09 68"
# Keystone-Vertical
- id: keystone_v_decrease
label: Keystone Vertical Decrease
kind: action
command: "06 14 00 04 00 34 12 0A 00 68"
- id: keystone_v_increase
label: Keystone Vertical Increase
kind: action
command: "06 14 00 04 00 34 12 0A 01 69"
- id: keystone_v_get
label: Keystone Vertical Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 0A 69"
notes: "Response: 1-byte value per mapping table 3.2.1"
# Keystone-Horizontal
- id: keystone_h_decrease
label: Keystone Horizontal Decrease
kind: action
command: "06 14 00 04 00 34 11 31 00 8E"
- id: keystone_h_increase
label: Keystone Horizontal Increase
kind: action
command: "06 14 00 04 00 34 11 31 01 8F"
- id: keystone_h_get
label: Keystone Horizontal Get Value
kind: query
command: "07 14 00 05 00 34 00 00 11 31 8F"
notes: "Response: 1-byte value per mapping table 3.2.1"
# Color Mode
- id: color_mode_brightest
label: Color Mode Brightest
kind: action
command: "06 14 00 04 00 34 12 0B 00 69"
- id: color_mode_movie
label: Color Mode Movie
kind: action
command: "06 14 00 04 00 34 12 0B 01 6A"
- id: color_mode_standard
label: Color Mode Standard
kind: action
command: "06 14 00 04 00 34 12 0B 04 6D"
- id: color_mode_srgb
label: Color Mode sRGB/ViewMatch
kind: action
command: "06 14 00 04 00 34 12 0B 05 6E"
- id: color_mode_dynamic
label: Color Mode Dynamic
kind: action
command: "06 14 00 04 00 34 12 0B 08 71"
- id: color_mode_rec709
label: Color Mode Rec709
kind: action
command: "06 14 00 04 00 34 12 0B 09 72"
- id: color_mode_dicom_sim
label: Color Mode DICOM SIM
kind: action
command: "06 14 00 04 00 34 12 0B 0A 73"
- id: color_mode_sports
label: Color Mode Sports
kind: action
command: "06 14 00 04 00 34 12 0B 11 7A"
- id: color_mode_photo
label: Color Mode Photo
kind: action
command: "06 14 00 04 00 34 12 0B 13 7C"
- id: color_mode_presentation
label: Color Mode Presentation
kind: action
command: "06 14 00 04 00 34 12 0B 14 7D"
- id: color_mode_gaming
label: Color Mode Gaming
kind: action
command: "06 14 00 04 00 34 12 0B 12 7B"
- id: color_mode_vivid
label: Color Mode Vivid
kind: action
command: "06 14 00 04 00 34 12 0B 15 7E"
- id: color_mode_isf_day
label: Color Mode ISF Day
kind: action
command: "06 14 00 04 00 34 12 0B 16 7F"
- id: color_mode_isf_night
label: Color Mode ISF Night
kind: action
command: "06 14 00 04 00 34 12 0B 17 80"
- id: color_mode_cycle
label: Color Mode Cycle
kind: action
command: "06 14 00 04 00 34 13 33 00 92"
- id: color_mode_status
label: Color Mode Status
kind: query
command: "07 14 00 05 00 34 00 00 12 0B 6A"
# Reset current color settings
- id: reset_current_color_settings
label: Reset Current Color Settings
kind: action
command: "06 14 00 04 00 34 11 2A 00 87"
# ISF mode
- id: isf_mode_on
label: ISF Mode ON
kind: action
command: "06 14 00 04 00 34 12 38 01 97"
- id: isf_mode_off
label: ISF Mode OFF
kind: action
command: "06 14 00 04 00 34 12 38 00 96"
- id: isf_mode_status
label: ISF Mode Status
kind: query
command: "07 14 00 05 00 34 00 00 12 38 97"
# HDR
- id: hdr_auto
label: HDR Auto
kind: action
command: "06 14 00 04 00 34 12 39 00 97"
- id: hdr_sdr
label: HDR SDR
kind: action
command: "06 14 00 04 00 34 12 39 01 98"
- id: hdr_status
label: HDR Status
kind: query
command: "07 14 00 05 00 34 00 00 12 39 98"
# Primary Color
- id: primary_color_r
label: Primary Color R
kind: action
command: "06 14 00 04 00 34 12 10 00 6E"
- id: primary_color_g
label: Primary Color G
kind: action
command: "06 14 00 04 00 34 12 10 01 6F"
- id: primary_color_b
label: Primary Color B
kind: action
command: "06 14 00 04 00 34 12 10 02 70"
- id: primary_color_c
label: Primary Color C
kind: action
command: "06 14 00 04 00 34 12 10 03 71"
- id: primary_color_m
label: Primary Color M
kind: action
command: "06 14 00 04 00 34 12 10 04 72"
- id: primary_color_y
label: Primary Color Y
kind: action
command: "06 14 00 04 00 34 12 10 05 73"
- id: primary_color_status
label: Primary Color Status
kind: query
command: "07 14 00 05 00 34 00 00 12 10 6F"
# Hue/Tint
- id: hue_decrease
label: Hue/Tint Decrease
kind: action
command: "06 14 00 04 00 34 12 11 00 6F"
- id: hue_increase
label: Hue/Tint Increase
kind: action
command: "06 14 00 04 00 34 12 11 01 70"
- id: hue_get
label: Hue/Tint Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 11 70"
notes: "Response: 2-byte value per mapping table 3.2.2"
# Saturation
- id: saturation_decrease
label: Saturation Decrease
kind: action
command: "06 14 00 04 00 34 12 12 00 70"
- id: saturation_increase
label: Saturation Increase
kind: action
command: "06 14 00 04 00 34 12 12 01 71"
- id: saturation_get
label: Saturation Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 12 71"
notes: "Response: 2-byte value per mapping table 3.2.2"
# Gain
- id: gain_decrease
label: Gain Decrease
kind: action
command: "06 14 00 04 00 34 12 13 00 71"
- id: gain_increase
label: Gain Increase
kind: action
command: "06 14 00 04 00 34 12 13 01 72"
- id: gain_get
label: Gain Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 13 72"
notes: "Response: 2-byte value per mapping table 3.2.2"
# Sharpness
- id: sharpness_decrease
label: Sharpness Decrease
kind: action
command: "06 14 00 04 00 34 12 0E 00 6C"
- id: sharpness_increase
label: Sharpness Increase
kind: action
command: "06 14 00 04 00 34 12 0E 01 6D"
- id: sharpness_get
label: Sharpness Get Value
kind: query
command: "07 14 00 05 00 34 00 00 12 0E 6D"
notes: "Response: 2-byte value per mapping table 3.2.2"
# Freeze
- id: freeze_on
label: Freeze ON
kind: action
command: "06 14 00 04 00 34 13 00 01 60"
- id: freeze_off
label: Freeze OFF
kind: action
command: "06 14 00 04 00 34 13 00 00 5F"
- id: freeze_status
label: Freeze Status
kind: query
command: "07 14 00 05 00 34 00 00 13 00 60"
# Source Input
- id: input_dsub_comp_1
label: Source Input D-Sub/Comp. 1
kind: action
command: "06 14 00 04 00 34 13 01 00 60"
- id: input_dsub_comp_2
label: Source Input D-Sub/Comp. 2
kind: action
command: "06 14 00 04 00 34 13 01 08 68"
- id: input_hdmi_1
label: Source Input HDMI 1
kind: action
command: "06 14 00 04 00 34 13 01 03 63"
- id: input_hdmi_2
label: Source Input HDMI 2
kind: action
command: "06 14 00 04 00 34 13 01 07 67"
- id: input_hdmi_3
label: Source Input HDMI 3
kind: action
command: "06 14 00 04 00 34 13 01 09 69"
- id: input_hdmi_mhl_4
label: Source Input HDMI/MHL 4
kind: action
command: "06 14 00 04 00 34 13 01 0E 6E"
- id: input_composite_video
label: Source Input Composite Video
kind: action
command: "06 14 00 04 00 34 13 01 05 65"
- id: input_s_video
label: Source Input S-Video
kind: action
command: "06 14 00 04 00 34 13 01 06 66"
- id: input_dvi
label: Source Input DVI
kind: action
command: "06 14 00 04 00 34 13 01 0A 6A"
- id: input_component
label: Source Input Component
kind: action
command: "06 14 00 04 00 34 13 01 0B 6B"
- id: input_hdbaset
label: Source Input HDBaseT
kind: action
command: "06 14 00 04 00 34 13 01 0C 6C"
- id: input_usb_c
label: Source Input USB_C
kind: action
command: "06 14 00 04 00 34 13 01 0F 6F"
- id: input_usb_reader
label: Source Input USB Reader
kind: action
command: "06 14 00 04 00 34 13 01 1A 7A"
- id: input_lan_wifi_display
label: Source Input LAN/WiFi Display
kind: action
command: "06 14 00 04 00 34 13 01 1B 7B"
- id: input_usb_display
label: Source Input USB Display
kind: action
command: "06 14 00 04 00 34 13 01 1C 7C"
- id: input_status
label: Source Input Status
kind: query
command: "07 14 00 05 00 34 00 00 13 01 61"
# Quick Auto Search
- id: quick_auto_search_on
label: Quick Auto Search ON
kind: action
command: "06 14 00 04 00 34 13 02 01 62"
- id: quick_auto_search_off
label: Quick Auto Search OFF
kind: action
command: "06 14 00 04 00 34 13 02 00 61"
- id: quick_auto_search_status
label: Quick Auto Search Status
kind: query
command: "07 14 00 05 00 34 00 00 13 02 62"
# Mute
- id: mute_on
label: Mute ON
kind: action
command: "06 14 00 04 00 34 14 00 01 61"
- id: mute_off
label: Mute OFF
kind: action
command: "06 14 00 04 00 34 14 00 00 60"
- id: mute_status
label: Mute Status
kind: query
command: "07 14 00 05 00 34 00 00 14 00 61"
# Volume
- id: volume_increase
label: Volume Increase
kind: action
command: "06 14 00 04 00 34 14 01 00 61"
- id: volume_decrease
label: Volume Decrease
kind: action
command: "06 14 00 04 00 34 14 02 00 62"
- id: volume_write
label: Volume Write Value
kind: action
command: "06 14 00 04 00 34 13 2A 11 9A" # 0x11 = volume sub-opcode; value byte and valid range not documented
# UNRESOLVED: value byte position and valid range not stated in source
- id: volume_get
label: Volume Get Value
kind: query
command: "07 14 00 05 00 34 00 00 14 03 64"
notes: "Response: 1-byte value per mapping table 3.2.1"
# Language
- id: lang_english
label: Language English
kind: action
command: "06 14 00 04 00 34 15 00 00 61"
- id: lang_french
label: Language Français
kind: action
command: "06 14 00 04 00 34 15 00 01 62"
- id: lang_german
label: Language Deutsch
kind: action
command: "06 14 00 04 00 34 15 00 02 63"
- id: lang_italian
label: Language Italiano
kind: action
command: "06 14 00 04 00 34 15 00 03 64"
- id: lang_spanish
label: Language Español
kind: action
command: "06 14 00 04 00 34 15 00 04 65"
- id: lang_russian
label: Language Русский
kind: action
command: "06 14 00 04 00 34 15 00 05 66"
- id: lang_trad_chinese
label: Language 繁體中文
kind: action
command: "06 14 00 04 00 34 15 00 06 67"
- id: lang_simp_chinese
label: Language 简体中文
kind: action
command: "06 14 00 04 00 34 15 00 07 68"
- id: lang_japanese
label: Language 日本語
kind: action
command: "06 14 00 04 00 34 15 00 08 69"
- id: lang_korean
label: Language 한국어
kind: action
command: "06 14 00 04 00 34 15 00 09 6A"
- id: lang_swedish
label: Language Swedish
kind: action
command: "06 14 00 04 00 34 15 00 0A 6B"
- id: lang_dutch
label: Language Dutch
kind: action
command: "06 14 00 04 00 34 15 00 0B 6C"
- id: lang_turkish
label: Language Turkish
kind: action
command: "06 14 00 04 00 34 15 00 0C 6D"
- id: lang_czech
label: Language Czech
kind: action
command: "06 14 00 04 00 34 15 00 0D 6E"
- id: lang_portuguese
label: Language Portuguese
kind: action
command: "06 14 00 04 00 34 15 00 0E 6F"
- id: lang_thai
label: Language Thai
kind: action
command: "06 14 00 04 00 34 15 00 0F 70"
- id: lang_polish
label: Language Polish
kind: action
command: "06 14 00 04 00 34 15 00 10 71"
- id: lang_finnish
label: Language Finnish
kind: action
command: "06 14 00 04 00 34 15 00 11 72"
- id: lang_arabic
label: Language Arabic
kind: action
command: "06 14 00 04 00 34 15 00 12 73"
- id: lang_indonesian
label: Language Indonesian
kind: action
command: "06 14 00 04 00 34 15 00 13 74"
- id: lang_hindi
label: Language Hindi
kind: action
command: "06 14 00 04 00 34 15 00 14 75"
- id: lang_vietnamese
label: Language Vietnamese
kind: action
command: "06 14 00 04 00 34 15 00 15 76"
- id: lang_status
label: Language Status
kind: query
command: "07 14 00 05 00 34 00 00 15 00 62"
# Light Source Usage Time
- id: light_source_hours_reset
label: Light Source Usage Time Reset to ZERO
kind: action
command: "06 14 00 04 00 34 15 01 00 62"
- id: light_source_hours_get
label: Light Source Usage Time Get
kind: query
command: "07 14 00 05 00 34 00 00 15 01 63"
notes: "Response: bytes 7-10 form little-endian 32-bit hours (Note 4)"
# HDMI Format
- id: hdmi_format_rgb
label: HDMI Format RGB
kind: action
command: "06 14 00 04 00 34 11 28 00 85"
- id: hdmi_format_yuv
label: HDMI Format YUV
kind: action
command: "06 14 00 04 00 34 11 28 01 86"
- id: hdmi_format_auto
label: HDMI Format Auto
kind: action
command: "06 14 00 04 00 34 11 28 02 87"
- id: hdmi_format_status
label: HDMI Format Status
kind: query
command: "07 14 00 05 00 34 00 00 11 28 86"
# HDMI Range
- id: hdmi_range_enhanced
label: HDMI Range Enhanced
kind: action
command: "06 14 00 04 00 34 11 29 00 86"
notes: "Enhanced = 0-255 steps (Note 6)"
- id: hdmi_range_normal
label: HDMI Range Normal
kind: action
command: "06 14 00 04 00 34 11 29 01 87"
notes: "Normal = 16-235 steps (Note 6)"
- id: hdmi_range_auto
label: HDMI Range Auto
kind: action
command: "06 14 00 04 00 34 11 29 02 88"
- id: hdmi_range_status
label: HDMI Range Status
kind: query
command: "07 14 00 05 00 34 00 00 11 29 87"
# CEC
- id: cec_off
label: CEC OFF
kind: action
command: "06 14 00 04 00 34 11 2B 00 88"
- id: cec_on
label: CEC ON
kind: action
command: "06 14 00 04 00 34 11 2B 01 89"
- id: cec_status
label: CEC Status
kind: query
command: "07 14 00 05 00 34 00 00 11 2B 89"
# Error status
- id: error_status
label: Error Status
kind: query
command: "07 14 00 05 00 34 00 00 0C 0D 66"
notes: "Service debug only (Note 3)"
# Brilliant Color
- id: brilliant_color_off
label: Brilliant Color OFF
kind: action
command: "06 14 00 04 00 34 12 0F 00 6D"
- id: brilliant_color_1
label: Brilliant Color 1
kind: action
command: "06 14 00 04 00 34 12 0F 01 6E"
- id: brilliant_color_2
label: Brilliant Color 2
kind: action
command: "06 14 00 04 00 34 12 0F 02 6F"
- id: brilliant_color_3
label: Brilliant Color 3
kind: action
command: "06 14 00 04 00 34 12 0F 03 70"
- id: brilliant_color_4
label: Brilliant Color 4
kind: action
command: "06 14 00 04 00 34 12 0F 04 71"
- id: brilliant_color_5
label: Brilliant Color 5
kind: action
command: "06 14 00 04 00 34 12 0F 05 72"
- id: brilliant_color_6
label: Brilliant Color 6
kind: action
command: "06 14 00 04 00 34 12 0F 06 73"
- id: brilliant_color_7
label: Brilliant Color 7
kind: action
command: "06 14 00 04 00 34 12 0F 07 74"
- id: brilliant_color_8
label: Brilliant Color 8
kind: action
command: "06 14 00 04 00 34 12 0F 08 75"
- id: brilliant_color_9
label: Brilliant Color 9
kind: action
command: "06 14 00 04 00 34 12 0F 09 76"
- id: brilliant_color_10
label: Brilliant Color 10
kind: action
command: "06 14 00 04 00 34 12 0F 0A 77"
- id: brilliant_color_status
label: Brilliant Color Status
kind: query
command: "07 14 00 05 00 34 00 00 12 0F 6E"
# Remote Control Code
- id: remote_code_1
label: Remote Control Code 1
kind: action
command: "06 14 00 04 00 34 0C 48 00 A0"
- id: remote_code_2
label: Remote Control Code 2
kind: action
command: "06 14 00 04 00 34 0C 48 01 A1"
- id: remote_code_3
label: Remote Control Code 3
kind: action
command: "06 14 00 04 00 34 0C 48 02 A2"
- id: remote_code_4
label: Remote Control Code 4
kind: action
command: "06 14 00 04 00 34 0C 48 03 A3"
- id: remote_code_5
label: Remote Control Code 5
kind: action
command: "06 14 00 04 00 34 0C 48 04 A4"
- id: remote_code_6
label: Remote Control Code 6
kind: action
command: "06 14 00 04 00 34 0C 48 05 A5"
- id: remote_code_7
label: Remote Control Code 7
kind: action
command: "06 14 00 04 00 34 0C 48 06 A6"
- id: remote_code_8
label: Remote Control Code 8
kind: action
command: "06 14 00 04 00 34 0C 48 07 A7"
- id: remote_code_status
label: Remote Control Code Status
kind: query
command: "07 14 00 05 00 34 00 00 0C 48 A1"
# Screen Color
- id: screen_color_off
label: Screen Color OFF
kind: action
command: "06 14 00 04 00 34 11 32 00 8F"
- id: screen_color_blackboard
label: Screen Color Blackboard
kind: action
command: "06 14 00 04 00 34 11 32 01 90"
- id: screen_color_greenboard
label: Screen Color Greenboard
kind: action
command: "06 14 00 04 00 34 11 32 02 91"
- id: screen_color_whiteboard
label: Screen Color Whiteboard
kind: action
command: "06 14 00 04 00 34 11 32 03 92"
- id: screen_color_blueboard
label: Screen Color Blueboard
kind: action
command: "06 14 00 04 00 34 11 32 04 93"
- id: screen_color_status
label: Screen Color Status
kind: query
command: "07 14 00 05 00 34 00 00 11 32 90"
# Over Scan
- id: overscan_off
label: Over Scan OFF
kind: action
command: "06 14 00 04 00 34 11 33 00 90"
- id: overscan_1
label: Over Scan Value 1
kind: action
command: "06 14 00 04 00 34 11 33 01 91"
- id: overscan_2
label: Over Scan Value 2
kind: action
command: "06 14 00 04 00 34 11 33 02 92"
- id: overscan_3
label: Over Scan Value 3
kind: action
command: "06 14 00 04 00 34 11 33 03 93"
- id: overscan_4
label: Over Scan Value 4
kind: action
command: "06 14 00 04 00 34 11 33 04 94"
- id: overscan_5
label: Over Scan Value 5
kind: action
command: "06 14 00 04 00 34 11 33 05 95"
- id: overscan_get
label: Over Scan Get Value
kind: query
command: "07 14 00 05 00 34 00 00 11 33 91"
# Remote Key
- id: rkey_menu
label: Remote Key Menu
kind: action
command: "02 14 00 04 00 34 02 04 0F 61"
- id: rkey_exit
label: Remote Key Exit
kind: action
command: "02 14 00 04 00 34 02 04 13 65"
- id: rkey_top
label: Remote Key Top
kind: action
command: "02 14 00 04 00 34 02 04 0B 5D"
- id: rkey_bottom
label: Remote Key Bottom
kind: action
command: "02 14 00 04 00 34 02 04 0C 5E"
- id: rkey_left
label: Remote Key Left
kind: action
command: "02 14 00 04 00 34 02 04 0D 5F"
- id: rkey_right
label: Remote Key Right
kind: action
command: "02 14 00 04 00 34 02 04 0E 60"
- id: rkey_source
label: Remote Key Source
kind: action
command: "02 14 00 04 00 34 02 04 04 56"
- id: rkey_enter
label: Remote Key Enter
kind: action
command: "02 14 00 04 00 34 02 04 15 67"
- id: rkey_auto
label: Remote Key Auto
kind: action
command: "02 14 00 04 00 34 02 04 08 5A"
- id: rkey_my_button
label: Remote Key My Button
kind: action
command: "02 14 00 04 00 34 02 04 11 63"
# AMX device discovery
- id: amx_discovery
label: AMX Device Discovery
kind: action
command: "AMXB<-SDKClass=VideoProjector><-Make=ViewSonic><-Model=PX800HD>"
notes: "AMX beacon string; example model in source is PX800HD, not PJD5351LS - verify against actual PJD5351LS firmware"
# Operating temperature
- id: operating_temperature_get
label: Operating Temperature Get
kind: query
command: "07 14 00 05 00 34 00 00 15 03 65"
notes: "Response bytes 7-10 form little-endian value, /10 = degrees C (Note 1)"
# Cycle commands
- id: lamp_mode_cycle
label: Lamp Mode Cycle
kind: action
command: "06 14 00 04 00 34 13 36 00 95"
- id: audio_mode_cycle
label: Audio Mode Cycle
kind: action
command: "06 14 00 04 00 34 13 35 00 94"
Feedbacks
- id: power_state
type: enum
values: [on, off]
- id: projector_state
type: enum
values: [warm_up, cool_down, power_on, power_off]
- id: light_source_mode
type: enum
values: [normal, eco, dynamic_eco, supereco]
- id: light_source_hours
type: integer
description: "Hours; bytes 7-10 little-endian (Note 4)"
- id: source_input
type: enum
values: [dsub_comp_1, dsub_comp_2, hdmi_1, hdmi_2, hdmi_3, hdmi_mhl_4, composite_video, s_video, dvi, component, hdbaset, usb_c, usb_reader, lan_wifi_display, usb_display]
- id: color_mode
type: enum
values: [brightest, movie, standard, srgb, dynamic, rec709, dicom_sim, sports, photo, presentation, gaming, vivid, isf_day, isf_night]
- id: aspect_ratio
type: enum
values: [auto, 4_3, 16_9, 16_10, anamorphic, wide, 2_35_1, panorama, native]
- id: mute_state
type: enum
values: [on, off]
- id: freeze_state
type: enum
values: [on, off]
- id: blank_state
type: enum
values: [on, off]
- id: high_altitude_state
type: enum
values: [on, off]
- id: 3d_sync
type: enum
values: [off, auto, frame_sequential, frame_packing, top_bottom, side_by_side]
- id: 3d_sync_invert
type: enum
values: [on, off]
- id: position
type: enum
values: [front_table, rear_table, rear_ceiling, front_ceiling]
- id: color_temperature
type: enum
values: [warm, normal, neutral, cool]
- id: quick_power_off
type: enum
values: [on, off]
- id: message
type: enum
values: [on, off]
- id: screen_color
type: enum
values: [off, blackboard, greenboard, whiteboard, blueboard]
- id: hdmi_format
type: enum
values: [rgb, yuv, auto]
- id: hdmi_range
type: enum
values: [enhanced, normal, auto]
- id: cec
type: enum
values: [on, off]
- id: quick_auto_search
type: enum
values: [on, off]
- id: brilliant_color
type: enum
values: [off, color_1, color_2, color_3, color_4, color_5, color_6, color_7, color_8, color_9, color_10]
- id: remote_control_code
type: enum
values: [code_1, code_2, code_3, code_4, code_5, code_6, code_7, code_8]
- id: isf_mode
type: enum
values: [on, off]
- id: hdr
type: enum
values: [auto, sdr]
- id: primary_color
type: enum
values: [r, g, b, c, m, y]
- id: language
type: enum
values: [english, french, german, italian, spanish, russian, trad_chinese, simp_chinese, japanese, korean, swedish, dutch, turkish, czech, portuguese, thai, polish, finnish, arabic, indonesian, hindi, vietnamese]
- id: operating_temperature_c
type: number
description: "Degrees C; bytes 7-10 little-endian, /10 (Note 1)"
- id: contrast_value
type: integer
description: "2-byte value (mapping table 3.2.2)"
- id: brightness_value
type: integer
description: "2-byte value (mapping table 3.2.2)"
- id: hue_value
type: integer
description: "2-byte value (mapping table 3.2.2)"
- id: saturation_value
type: integer
description: "2-byte value (mapping table 3.2.2)"
- id: gain_value
type: integer
description: "2-byte value (mapping table 3.2.2)"
- id: sharpness_value
type: integer
description: "2-byte value (mapping table 3.2.2)"
- id: hpos_value
type: integer
description: "1-byte value (mapping table 3.2.1)"
- id: vpos_value
type: integer
description: "1-byte value (mapping table 3.2.1)"
- id: keystone_v_value
type: integer
description: "1-byte value (mapping table 3.2.1)"
- id: keystone_h_value
type: integer
description: "1-byte value (mapping table 3.2.1)"
- id: volume_value
type: integer
description: "1-byte value (mapping table 3.2.1)"
- id: overscan_value
type: integer
description: "0-5"
- id: error_status
type: object
description: "20 items: items 0-17 1-byte each, item 18 4-byte burn-in minutes, item 19 1-byte lamp status, item 20 2-byte lamp error status (Note 3)"
Safety
confirmation_required_for: []
interlocks:
- description: "Do not send other commands during Warm Up state (per source Note 7 / Status explanation)"
- description: "Do not send other commands during Cool Down state (per source Note 7 / Status explanation)"
- description: "Projector Status must be Power On before sending other control commands (per source Note 7)"
Notes
- Source coverage caveat: This is a generic ViewSonic projector RS-232/LAN protocol spec that applies to "all projectors" with per-model differences. PJD5351LS-specific applicability of each command cannot be verified from this source alone; cross-check against the PJD5351LS user guide before deploying.
- LAN framing: For LAN control, replace the
0xbyte prefix with\(backslash) in the same byte sequence, sent over TCP port 4661 (per source Note 2). - Baud rate: Source states supported rates 2400/4800/9600/14400/19200/38400/115200; no single default is specified. Configure to match the projector's setting (typically 115200 on ViewSonic projectors, but verify against device).
- Checksum: Each command ends with a checksum byte. The bytes shown here are pre-computed checksums from the source; implementations should verify the checksum algorithm if regenerating.
- AMX discovery string: Source example uses
Model=PX800HD; PJD5351LS firmware may emit a different model token — verify against actual device. - Projector Status response (Note 7): This function is only applied to some models due to LAN solution — may not be available on PJD5351LS over LAN.
- Volume Write Value: Source does not document the value byte position or valid range inside the 0x2A sub-opcode; only the 0x11 volume sub-code is shown. Treat
volume_writeas UNRESOLVED for value range. - Command set grew through revisions 1.00 → 1.19; verify PJD5351LS firmware supports commands added in revisions later than its manufacturing date.
- Single-byte read responses: Use mapping table 3.2.1 (256 entries from 0x00→0xFF, mapped to -256 to -1 signed offset).
- Two-byte read responses: Use mapping table 3.2.2 (256 entries from 0x0000→0x00FF and 0x0100→0x01FF, mapped to 0-255 and -255 to -1 signed offset).
- Function-disabled indicator (Note 5): When projector responds with
0x00 0x14 0x00 0x00 0x00 0x14as the first byte, the requested function is disabled (greyed out), e.g. Aspect Ratio when no source is connected. - Operating temperature value decoding (Note 1): Bytes 7-10 form little-endian 32-bit; divide by 10 to get degrees C.
- Light source hours decoding (Note 4): Bytes 7-10 form little-endian 32-bit hours; no division.
Self-check:
- [x] No voltage/current/power invented
- [x] No port numbers assumed (port 4661 from Note 2)
- [x] No baud rate assumed (left UNRESOLVED, supported list in Notes)
- [x] `status: draft` set
- [x] `declared_confidence: low` set
- [x] YAML blocks valid
- [x] `entity_id` placeholder present
- [x] UNRESOLVED markers throughout
- [x] PJD5351LS applicability gap flagged in Summary
## Provenance
```yaml
source_domains:
- viewsonicvsa.freshdesk.com
- manualslib.com
- support.viewsonic.com
- manuals.viewsonic.com
source_urls:
- https://viewsonicvsa.freshdesk.com/helpdesk/attachments/43019674572
- "https://www.manualslib.com/manual/2463050/Viewsonic-Pjd5351ls.html?page=58"
- https://support.viewsonic.com/en/support/solutions/articles/33000223004-viewsonic-lfd-rs-232-lan-protocol
- https://www.manualslib.com/manual/2463050/Viewsonic-Pjd5351ls.html
- https://manuals.viewsonic.com/CDE7512_RS-232_Protocols
retrieved_at: 2026-05-19T01:04:20.332Z
last_checked_at: 2026-06-01T22:35:54.258Z
Verification Summary
verdict: verified
checked_at: 2026-06-01T22:35:54.258Z
matched_actions: 235
action_count: 235
confidence: medium
summary: "All 235 spec actions match verbatim hex sequences in the source command table; transport port 4661 confirmed in Note 2; baud null is correct as source lists multiple rates without a default. (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "source explicitly says \"Apply for all projectors. Note: There are some difference highlighted in the spec for each model.\" The PJD5351LS does not appear by name anywhere in the source — per-model applicability of individual commands (e.g. USB_C, HDBaseT, HDR, ISF modes) cannot be confirmed from this source alone."
- "single default baud rate not stated; source lists supported rates as 2400/4800/9600/14400/19200/38400/115200."
- "data_bits, parity, stop_bits, flow_control not stated in source."
- "source lists 2400/4800/9600/14400/19200/38400/115200 as supported; no single default stated"
- "not stated in source"
- "value byte position and valid range not stated in source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0