Summary
Binary RS-232 and LAN control protocol for ViewSonic projectors. Supports power, source selection, image adjustment (contrast, brightness, sharpness, zoom, focus), aspect ratio, color settings, volume, mute, freeze, lamp mode, and input skip. Commands are variable-length hex byte packets with trailing checksum. LAN transport uses the same byte values with backslash-escaped hex over TCP port 4661.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: 19200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
addressing:
port: 4661
auth:
type: none
Traits
traits:
- powerable
- queryable
- routable
- levelable
Actions
actions:
- id: factory_reset
label: Reset to Factory Default
kind: action
command: "06 14 00 03 00 34 0C 08 5F"
params: []
- id: lan_reset
label: LAN Reset
kind: action
command: "06 14 00 04 00 34 0C 5A 00 B2"
params: []
- id: power_on
label: Power On
kind: action
command: "06 14 00 04 00 34 11 00 00 5D"
params: []
- id: power_off
label: Power Off
kind: action
command: "06 14 00 04 00 34 11 01 00 5E"
params: []
- id: power_read
label: Power Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 00 5E"
params: []
- id: splash_black
label: Splash Screen Black
kind: action
command: "06 14 00 04 00 34 11 0A 00 67"
params: []
- id: splash_blue
label: Splash Screen Blue
kind: action
command: "06 14 00 04 00 34 11 0A 01 68"
params: []
- id: splash_read
label: Splash Screen Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 0A 68"
params: []
- id: quick_power_off_off
label: Quick Power Off Disable
kind: action
command: "06 14 00 04 00 34 11 0B 00 68"
params: []
- id: quick_power_off_on
label: Quick Power Off Enable
kind: action
command: "06 14 00 04 00 34 11 0B 01 69"
params: []
- id: quick_power_off_read
label: Quick Power Off Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 0B 69"
params: []
- id: high_altitude_off
label: High Altitude Mode Off
kind: action
command: "06 14 00 04 00 34 11 0C 00 69"
params: []
- id: high_altitude_on
label: High Altitude Mode On
kind: action
command: "06 14 00 04 00 34 11 0C 01 6A"
params: []
- id: high_altitude_auto
label: High Altitude Mode Auto
kind: action
command: "06 14 00 04 00 34 11 0C 02 6B"
params: []
- id: high_altitude_read
label: High Altitude Mode Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 0C 6A"
params: []
- id: lamp_mode_normal
label: Lamp Mode Normal
kind: action
command: "06 14 00 04 00 34 11 10 00 6D"
params: []
- id: lamp_mode_full_normal
label: Lamp Mode Full Normal
kind: action
command: "06 14 00 04 00 34 11 10 0B 78"
params: []
- id: lamp_mode_eco
label: Lamp Mode Eco
kind: action
command: "06 14 00 04 00 34 11 10 01 6E"
params: []
- id: lamp_mode_eco_extended
label: Lamp Mode Eco Extended
kind: action
command: "06 14 00 04 00 34 11 10 02 6F"
params: []
- id: lamp_mode_read
label: Lamp Mode Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 10 6F"
params: []
- id: pres_timer_off
label: Presentation Timer Off
kind: action
command: "06 14 00 04 00 34 11 15 00 72"
params: []
- id: pres_timer_1
label: Presentation Timer 1
kind: action
command: "06 14 00 04 00 34 11 15 01 73"
params: []
- id: pres_timer_2
label: Presentation Timer 2
kind: action
command: "06 14 00 04 00 34 11 15 02 74"
params: []
- id: pres_timer_3
label: Presentation Timer 3
kind: action
command: "06 14 00 04 00 34 11 15 03 75"
params: []
- id: pres_timer_read
label: Presentation Timer Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 15 72"
params: []
- id: contrast_set
label: Contrast Set
kind: action
command: "06 14 00 04 00 34 11 20 {value} {checksum}"
params:
- name: value
type: integer
description: Contrast value byte
- id: contrast_read
label: Contrast Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 20 7D"
params: []
- id: brightness_set
label: Brightness Set
kind: action
command: "06 14 00 04 00 34 11 21 {value} {checksum}"
params:
- name: value
type: integer
description: Brightness value byte
- id: brightness_read
label: Brightness Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 21 7E"
params: []
- id: wb_red_increase
label: White Balance Red Gain Increase
kind: action
command: "06 14 00 04 00 34 11 22 01 80"
params: []
- id: wb_red_decrease
label: White Balance Red Gain Decrease
kind: action
command: "06 14 00 04 00 34 11 22 02 81"
params: []
- id: wb_red_read
label: White Balance Red Gain Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 22 80"
params: []
- id: wb_green_increase
label: White Balance Green Gain Increase
kind: action
command: "06 14 00 04 00 34 11 23 01 81"
params: []
- id: wb_green_decrease
label: White Balance Green Gain Decrease
kind: action
command: "06 14 00 04 00 34 11 23 02 82"
params: []
- id: wb_green_read
label: White Balance Green Gain Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 23 81"
params: []
- id: wb_blue_increase
label: White Balance Blue Gain Increase
kind: action
command: "06 14 00 04 00 34 11 24 01 82"
params: []
- id: wb_blue_decrease
label: White Balance Blue Gain Decrease
kind: action
command: "06 14 00 04 00 34 11 24 02 83"
params: []
- id: wb_blue_read
label: White Balance Blue Gain Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 24 82"
params: []
- id: sharpness_set
label: Sharpness Set
kind: action
command: "06 14 00 04 00 34 11 25 {value} {checksum}"
params:
- name: value
type: integer
description: Sharpness value byte
- id: sharpness_read
label: Sharpness Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 25 82"
params: []
- id: zoom_set
label: Zoom Set
kind: action
command: "06 14 00 04 00 34 11 26 {value} {checksum}"
params:
- name: value
type: integer
description: "Zoom value byte (01=increase, 02=decrease per source examples)"
- id: zoom_read
label: Zoom Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 26 83"
params: []
- id: focus_set
label: Focus Set
kind: action
command: "06 14 00 04 00 34 11 27 {value} {checksum}"
params:
- name: value
type: integer
description: "Focus value byte (01=increase, 02=decrease per source examples)"
- id: focus_read
label: Focus Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 27 84"
params: []
- id: freeze_on
label: Freeze On
kind: action
command: "06 14 00 04 00 34 13 00 01 60"
params: []
- id: freeze_off
label: Freeze Off
kind: action
command: "06 14 00 04 00 34 13 00 00 5F"
params: []
- id: freeze_read
label: Freeze Status Query
kind: query
command: "07 14 00 05 00 34 00 00 13 00 60"
params: []
- id: aspect_auto
label: Aspect Ratio Auto
kind: action
command: "06 14 00 04 00 34 11 30 00 87"
params: []
- id: aspect_4_3
label: Aspect Ratio 4:3
kind: action
command: "06 14 00 04 00 34 11 30 01 88"
params: []
- id: aspect_16_9
label: Aspect Ratio 16:9
kind: action
command: "06 14 00 04 00 34 11 30 02 89"
params: []
- id: aspect_16_10
label: Aspect Ratio 16:10
kind: action
command: "06 14 00 04 00 34 11 30 03 8A"
params: []
- id: aspect_panorama
label: Aspect Ratio Panorama
kind: action
command: "06 14 00 04 00 34 11 30 04 8B"
params: []
- id: aspect_235_1
label: Aspect Ratio 2.35:1
kind: action
command: "06 14 00 04 00 34 11 30 05 8C"
params: []
- id: aspect_235_2
label: Aspect Ratio 2.35:2
kind: action
command: "06 14 00 04 00 34 11 30 06 8D"
params: []
- id: aspect_native
label: Aspect Ratio Native
kind: action
command: "06 14 00 04 00 34 11 30 07 8E"
params: []
- id: aspect_read
label: Aspect Ratio Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 30 87"
params: []
- id: source_dsub
label: Source D-Sub / Component 1
kind: action
command: "06 14 00 04 00 34 13 01 00 60"
params: []
- id: source_hdmi1
label: Source HDMI 1
kind: action
command: "06 14 00 04 00 34 13 01 03 63"
params: []
- id: source_hdmi2
label: Source HDMI 2
kind: action
command: "06 14 00 04 00 34 13 01 07 67"
params: []
- id: source_hdbaset
label: Source HDBaseT
kind: action
command: "06 14 00 04 00 34 13 01 0C 6C"
params: []
- id: source_usb_reader
label: Source USB Reader / USB1
kind: action
command: "06 14 00 04 00 34 13 01 1A 7A"
params: []
- id: source_lan_wifi
label: Source LAN / WiFi Display
kind: action
command: "06 14 00 04 00 34 13 01 1B 7B"
params: []
- id: source_usb_display
label: Source USB Display
kind: action
command: "06 14 00 04 00 34 13 01 1C 7C"
params: []
- id: source_read
label: Source Input Status Query
kind: query
command: "07 14 00 05 00 34 00 00 13 01 61"
params: []
- id: auto_search_on
label: Quick Auto Search On
kind: action
command: "06 14 00 04 00 34 13 02 01 62"
params: []
- id: auto_search_off
label: Quick Auto Search Off
kind: action
command: "06 14 00 04 00 34 13 02 00 61"
params: []
- id: auto_search_read
label: Quick Auto Search Status Query
kind: query
command: "07 14 00 05 00 34 00 00 13 02 62"
params: []
- id: mute_on
label: Mute On
kind: action
command: "06 14 00 04 00 34 14 00 01 61"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "06 14 00 04 00 34 14 00 00 60"
params: []
- id: mute_read
label: Mute Status Query
kind: query
command: "07 14 00 05 00 34 00 00 14 00 61"
params: []
- id: volume_increase
label: Volume Increase
kind: action
command: "06 14 00 04 00 34 14 01 00 61"
params: []
- id: volume_decrease
label: Volume Decrease
kind: action
command: "06 14 00 04 00 34 14 02 00 62"
params: []
- id: volume_set
label: Volume Set Value
kind: action
command: "06 14 00 04 00 34 13 2A {value} {checksum}"
params:
- name: value
type: integer
description: "Volume level (e.g. 0x11 = 17 per source example)"
- id: volume_read
label: Volume Status Query
kind: query
command: "07 14 00 05 00 34 00 00 14 03 64"
params: []
- id: dde_film
label: DDE Mode Film
kind: action
command: "06 14 00 04 00 34 11 31 00 88"
params: []
- id: dde_video
label: DDE Mode Video
kind: action
command: "06 14 00 04 00 34 11 31 01 89"
params: []
- id: dde_standard
label: DDE Mode Standard
kind: action
command: "06 14 00 04 00 34 11 31 02 8A"
params: []
- id: dde_read
label: DDE Mode Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 31 88"
params: []
- id: color_temp_6500k
label: Color Temperature 6500K
kind: action
command: "06 14 00 04 00 34 11 32 00 89"
params: []
- id: color_temp_7000k
label: Color Temperature 7000K
kind: action
command: "06 14 00 04 00 34 11 32 01 8A"
params: []
- id: color_temp_7500k
label: Color Temperature 7500K
kind: action
command: "06 14 00 04 00 34 11 32 02 8B"
params: []
- id: color_temp_9000k
label: Color Temperature 9000K
kind: action
command: "06 14 00 04 00 34 11 32 03 8C"
params: []
- id: color_temp_9300k
label: Color Temperature 9300K
kind: action
command: "06 14 00 04 00 34 11 32 04 8D"
params: []
- id: color_temp_user1
label: Color Temperature User1
kind: action
command: "06 14 00 04 00 34 11 32 05 8E"
params: []
- id: color_temp_user2
label: Color Temperature User2
kind: action
command: "06 14 00 04 00 34 11 32 06 8F"
params: []
- id: color_temp_user3
label: Color Temperature User3
kind: action
command: "06 14 00 04 00 34 11 32 07 90"
params: []
- id: color_temp_user4
label: Color Temperature User4
kind: action
command: "06 14 00 04 00 34 11 32 08 91"
params: []
- id: color_temp_read
label: Color Temperature Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 32 89"
params: []
- id: color_space_auto
label: Color Space Auto
kind: action
command: "06 14 00 04 00 34 11 33 00 8A"
params: []
- id: color_space_rgb
label: Color Space RGB
kind: action
command: "06 14 00 04 00 34 11 33 01 8B"
params: []
- id: color_space_yuv
label: Color Space YUV
kind: action
command: "06 14 00 04 00 34 11 33 02 8C"
params: []
- id: color_space_read
label: Color Space Status Query
kind: query
command: "07 14 00 05 00 34 00 00 11 33 8A"
params: []
- id: input_skip_on
label: Input Skip On
kind: action
command: "06 14 00 04 00 34 13 {input} 01 {checksum}"
params:
- name: input
type: integer
description: "Input sub-address byte (03=DSub, 04=HDMI1, 05=HDMI2, 06=HDBaseT, 07=USB Reader, 08=LAN/WiFi, 09=USB Display, 0A=input9, 0B=input10, 0C=input11)"
- id: input_skip_off
label: Input Skip Off
kind: action
command: "06 14 00 04 00 34 13 {input} 00 {checksum}"
params:
- name: input
type: integer
description: "Input sub-address byte (03=DSub, 04=HDMI1, 05=HDMI2, 06=HDBaseT, 07=USB Reader, 08=LAN/WiFi, 09=USB Display, 0A=input9, 0B=input10, 0C=input11)"
- id: input_skip_read
label: Input Skip Status Query
kind: query
command: "07 14 00 05 00 34 00 00 13 {input} {checksum}"
params:
- name: input
type: integer
description: "Input sub-address byte (03-0C)"
Feedbacks
feedbacks:
- id: power_state
type: enum
values:
- key: "00"
label: Power Off
- key: "01"
label: Power On
- key: "02"
label: Warm Up
- key: "03"
label: Cool Down
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: splash_screen
type: enum
values:
- key: "00"
label: Black
- key: "01"
label: Blue
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: quick_power_off_state
type: enum
values:
- key: "00"
label: Off
- key: "01"
label: On
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: high_altitude_state
type: enum
values:
- key: "00"
label: Off
- key: "01"
label: On
- key: "02"
label: Auto
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: lamp_mode_state
type: enum
values:
- key: "00"
label: Normal
- key: "01"
label: Eco
- key: "02"
label: Eco Extended
- key: "0B"
label: Full Normal
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: pres_timer_state
type: enum
values:
- key: "00"
label: Off
- key: "01"
label: Timer 1
- key: "02"
label: Timer 2
- key: "03"
label: Timer 3
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: contrast_level
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: brightness_level
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: wb_red_gain
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: wb_green_gain
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: wb_blue_gain
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: sharpness_level
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: zoom_level
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: focus_level
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: freeze_state
type: enum
values:
- key: "00"
label: Off
- key: "01"
label: On
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: aspect_ratio
type: enum
values:
- key: "00"
label: Auto
- key: "01"
label: "4:3"
- key: "02"
label: "16:9"
- key: "03"
label: "16:10"
- key: "04"
label: Panorama
- key: "05"
label: "2.35:1"
- key: "06"
label: "2.35:2"
- key: "07"
label: Native
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: source_input
type: enum
values:
- key: "00"
label: D-Sub / Component 1
- key: "03"
label: HDMI 1
- key: "07"
label: HDMI 2
- key: "0C"
label: HDBaseT
- key: "1A"
label: USB Reader / USB1
- key: "1B"
label: LAN / WiFi Display
- key: "1C"
label: USB Display
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: auto_search_state
type: enum
values:
- key: "00"
label: Off
- key: "01"
label: On
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: mute_state
type: enum
values:
- key: "00"
label: Off
- key: "01"
label: On
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: volume_level
type: integer
response_format: "05 14 00 03 00 00 00 {value} {checksum}"
- id: dde_mode
type: enum
values:
- key: "00"
label: Film
- key: "01"
label: Video
- key: "02"
label: Standard
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: color_temperature
type: enum
values:
- key: "00"
label: 6500K
- key: "01"
label: 7000K
- key: "02"
label: 7500K
- key: "03"
label: 9000K
- key: "04"
label: 9300K
- key: "05"
label: User1
- key: "06"
label: User2
- key: "07"
label: User3
- key: "08"
label: User4
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: color_space
type: enum
values:
- key: "00"
label: Auto
- key: "01"
label: RGB
- key: "02"
label: YUV
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: input_skip_state
type: enum
values:
- key: "00"
label: Off
- key: "01"
label: On
response_format: "05 14 00 03 00 00 00 {status} {checksum}"
- id: function_disabled
type: flag
description: "Response 00 14 00 00 00 14 indicates function is disabled or greyed out"
Variables
variables: []
Events
events: []
Macros
macros:
- id: factory_reset_reboot
label: Factory Reset with Reboot
steps:
- action: factory_reset
note: "Sends factory reset command"
- note: "Reboot projector to clear parameters (source Note 9)"
Safety
confirmation_required_for:
- factory_reset
- lan_reset
interlocks:
- condition: "Warm Up state"
description: "Do not send commands during warm up (source Note 7)"
- condition: "Cool Down state"
description: "Do not send commands during cool down (source Note 7)"
Notes
- Command format: binary hex byte packets. Write commands start with
06header, Read/Query commands start with07header. - Response format:
03 14 00 00 00 14for write acknowledgement (single-byte),05 14 00 03 00 00 00 {status} {checksum}for query response (two-byte). - Checksum: last byte of every packet. Empirically verified as sum of all preceding bytes except the first header byte (
06or07), mod 256. Not explicitly documented in source. - LAN transport: identical byte values, but each
0xprefix replaced with\backslash escape. TCP port 4661. Exception: Pro9 series uses port 23. - RS-232: DSUB 9-pin connector, pins 2 (RXD), 3 (TXD), 5 (GND). Null modem cable required.
- Baud rate supports 4800, 9600, 19200 (default), 38400.
- Response
00 14 00 00 00 14at first byte indicates function is disabled or greyed out (e.g. Aspect Ratio when no source is connected). - Mute function only active when an input source is applied (Note 8).
- Auto Adjust function only active for non-digital inputs like VGA/D-Sub (Note 8).
- Operating temperature response: bytes 7-10 form a 32-bit little-endian hex value; divide by 10 for degrees Celsius (Note 1).
- Light source usage time response: bytes 7-10 form a 32-bit little-endian hex value; decimal interpretation gives hours (Note 4).
- HDMI Range: Enhanced/Full = 0-255, Normal/Limited = 16-235 (Note 6).
Provenance
source_domains:
- viewsonicglobal.com
source_urls:
- "https://www.viewsonicglobal.com/public/products_download/user_guide/projector/LSC_6_7_8_Series/LSC%20Series%20RS-232%20LAN%20Control%20Protocol%20Specification.pdf"
retrieved_at: 2026-04-30T04:25:07.876Z
last_checked_at: 2026-06-01T20:45:25.304Z
Verification Summary
verdict: verified
checked_at: 2026-06-01T20:45:25.304Z
matched_actions: 95
action_count: 95
confidence: medium
summary: "All 95 spec actions matched exactly to source hex sequences; transport parameters verified; comprehensive protocol coverage. (20 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "specific projector models not enumerated in source"
- "firmware version compatibility not stated"
- "command packet structure (header, length, function code fields) not formally documented beyond examples"
- "checksum algorithm not explicitly stated; inferred from examples as sum of bytes[1..n-1] mod 256"
- "contrast/brightness/sharpness valid value range not stated, only example values 0x00 and 0x01 shown"
- "zoom and focus value ranges not stated; source shows only 0x01 and 0x02 examples"
- "volume_set valid range not stated; source shows only 0x11 (17) example"
- "checksum computation algorithm not explicitly stated in source; empirically verified as sum of bytes[1..n-1] mod 256 across multiple commands"
- "input_skip input sub-address 0A-0C exact input mapping not labeled in source"
- "freeze read response references \"value mapping table 3.2.1\" which was not included in source"
- "operating temperature query command bytes not provided in source, only response format"
- "light source usage time query command bytes not provided in source, only response format"
- "source does not document unsolicited notification events"
- "specific projector models covered by this protocol not enumerated"
- "checksum algorithm not explicitly documented"
- "contrast/brightness/sharpness/volume/zoom/focus valid value ranges not stated"
- "input_skip sub-addresses 0A-0C exact input mapping not labeled"
- "Freeze Read \"value mapping table 3.2.1\" referenced but not included in source"
- "operating temperature and light source usage time query command bytes not in extracted source"
- "error response status format documented (Note 3) for service debug only"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0