Summary
External control spec for the Sharp PROX5 Series LCD monitor. Supports RS-232C remote control and LAN (TCP/IP) control using a framed ASCII protocol with a Header / Message / Check Code (BCC XOR) / Delimiter (CR) structure. Two command families: VCP (get/set parameter by OP code page + OP code) and CTL (system commands: power, save, timing report, serial/model/MAC read, remote-control key forwarding, firmware version, input-name edit, TV channel).
Transport
protocols:
- tcp
- serial
addressing:
port: 7142 # Fixed per §3.2
ip_assignment: dhcp # Default DHCP:On per §3.2
idle_disconnect_minutes: 15 # Monitor disconnects after 15 min idle per §3.2
serial:
baud_rate: 9600
data_bits: 8
parity: none
stop_bits: 1
flow_control: none # UNRESOLVED: flow control not stated in source
connector: "9-pin D-Sub"
cable: "Cross (null modem) cable"
code_set: ASCII
min_packet_interval_ms: 600 # >600 msec between commands per §3.1.1 / §3.2.1
auth:
type: none # inferred: no auth procedure in source
packet:
structure: "SOH | Reserved '0' | Destination | Source '0' | MsgType | MsgLen | STX | Message | ETX | BCC | CR"
soh: "01h"
stx: "02h"
etx: "03h"
delimiter: "0Dh (CR)"
bcc: "XOR of bytes from Reserved(30h) through ETX(03h), ASCII-encoded as 2 hex chars"
message_types:
A: "41h - Command"
B: "42h - Command reply"
C: "43h - Get current parameter"
D: "44h - Get parameter reply"
E: "45h - Set parameter"
F: "46h - Set parameter reply"
Traits
traits:
- powerable # inferred from CTL-C203-D6 power control + CTL-01D6 power status read
- queryable # inferred from Get-parameter (msg type C) + many read-only CTL queries
- levelable # inferred from VCP set-parameter ranges (Backlight, Contrast, Volume, etc.)
- routable # inferred from VCP-00-60 / VCP-10-2E/2F/30 input select
Actions
# Framing: every command is wrapped as
# SOH '0' <DestID> '0' <MsgType> <MsgLenHi> <MsgLenLo> STX <Message> ETX <BCC> CR
# Controller's Source byte is always '0'(30h). Destination 'A'(41h) = Monitor ID 1,
# '*'(2Ah) = all monitors on daisy chain. BCC = XOR of bytes D1..D16 (see §4.3.1).
# Below, `command:` shows the Message-block payload verbatim from source; the caller
# must prepend the header, append BCC + CR. Where source gave a literal full packet,
# it is reproduced verbatim.
actions:
# ---------- VCP set-parameter commands (msg type 'E') ----------
- id: vcp_set_parameter
label: Set Parameter (generic)
kind: action
command: "STX {op_code_page_hi}{op_code_page_lo} {op_code_hi}{op_code_lo} {set_msb}{set_b2}{set_b3}{set_lsb} ETX"
notes: "MsgType='E'. OP code page + OP code + 16-bit set value, each nibble ASCII-encoded. See §5.3."
params:
- {name: op_code_page, type: string, description: "2-hex-digit OP code page, ASCII-encoded (e.g. '00', '02', '10', '11')"}
- {name: op_code, type: string, description: "2-hex-digit OP code, ASCII-encoded"}
- {name: value, type: integer, description: "16-bit set value"}
- id: vcp_get_parameter
label: Get Parameter (generic)
kind: query
command: "STX {op_code_page_hi}{op_code_page_lo} {op_code_hi}{op_code_lo} ETX"
notes: "MsgType='C'. Replies with current value + max value + type. See §5.1 / §5.2."
params:
- {name: op_code_page, type: string, description: "2-hex-digit OP code page"}
- {name: op_code, type: string, description: "2-hex-digit OP code"}
# ---------- CTL system commands (§7.1) ----------
- id: ctl_save_current_settings
label: CTL-0C Save Current Settings
kind: action
command: "STX '0' 'C' ETX"
full_packet: "01h-30h-41h-30h-41h-30h-34h-02h-30h-43h-03h-CHK-0Dh"
notes: "MsgType='A', MsgLen='04'. Stores adjusted values. Reply: SOH-'0'-'0'-ID-'B'-'0'-'6'-STX-'0'-'0'-'0'-'C'-ETX-CHK-CR. See §5.5.1 / §7.1.1."
params: []
- id: ctl_get_timing_report
label: CTL-07 Get Timing Report
kind: query
command: "STX '0' '7' ETX"
full_packet: "01h-30h-41h-30h-41h-30h-34h-02h-30h-37h-03h-CHK-0Dh"
notes: "Reply carries SS byte (bit7 out-of-range, bit6 unstable, bit1 H-sync polarity, bit0 V-sync polarity), H Freq (0.01kHz), V Freq (0.01Hz). See §5.5.2 / §7.1.2."
params: []
# ---------- Power control (§7.2) ----------
- id: ctl_power_status_read
label: CTL-01D6 Power Status Read
kind: query
command: "STX '0' '1' 'D' '6' ETX"
full_packet: "01h-30h-ID-30h-41h-30h-36h-02h-(30h,31h,44h,36H)-03h-BCC-0Dh"
notes: "Returns current power mode: 0001=ON, 0002=Stand-by, 0003=Reserved, 0004=OFF. See §7.2.1."
params: []
- id: ctl_power_control
label: CTL-C203-D6 Power Control
kind: action
command: "STX 'C' '2' '0' '3' 'D' '6' {p1}{p2}{p3}{p4} ETX"
full_packet: "01h-30h-ID-30h-41h-30h-43h-02H-(43H 32H 30H 33H 44H 36H)-(power_mode)-03H-BCC-0DH"
notes: "Power mode values: 0001=ON, 0002=Do not set, 0003=Do not set, 0004=OFF (same as IR power off). See §7.2.2."
params:
- name: power_mode
type: enum
values: ["0001", "0004"]
description: "0001=ON, 0004=OFF (0002/0003 documented as 'Do not set')"
# ---------- Identity reads (§7.3 / §7.4 / §7.7.1) ----------
- id: ctl_serial_no_read
label: CTL-C216 Serial Number Read
kind: query
command: "STX 'C' '2' '1' '6' ETX"
full_packet: "01h-30h-ID-30h-41h-30h-36h-02H-(43H 32H 31H 36H)-03H-BCC-0DH"
notes: "Reply cmd 'C316'. Serial number max 30 bytes, ASCII-hex double-encoded. See §7.3.1."
params: []
- id: ctl_model_name_read
label: CTL-C217 Model Name Read
kind: query
command: "STX 'C' '2' '1' '7' ETX"
full_packet: "01h-30h-ID-30h-41h-30h-36h-02H-(43H 32H 31H 37H)-03H-BCC-0DH"
notes: "Reply cmd 'C317'. Model name max 36 bytes, ASCII-hex double-encoded. See §7.3.2."
params: []
- id: ctl_mac_address_read
label: CTL-C220 MAC Address Read
kind: query
command: "STX 'C' '2' '2' '0' '0' '0' ETX"
full_packet: "01h-30h-ID-30h-41h-31H-30H-02H-(43H 32H 32H 40H)-(30H 30H)-03H-BCC-0DH"
notes: "Reply cmd 'C320', device select='00' fixed, MAC address max 12 bytes. See §7.4.1."
params: []
# ---------- Direct TV channel (§7.5) - TV-tuner models only ----------
- id: ctl_tv_channel_read
label: CTL-C22C Direct TV Channel Read
kind: query
command: "STX 'C' '2' '2' 'C' ETX"
full_packet: "01h-30h-ID-30h-41h-30h-36h-02H-(43H 32H 32H 43H)-03H-BCC-0DH"
notes: "Reply cmd 'C32C'. Returns Major-High, Major-Low, Minor channel. TV tuner models only. See §7.5.1."
params: []
- id: ctl_tv_channel_write
label: CTL-C22D Direct TV Channel Write
kind: action
command: "STX 'C' '2' '2' 'D' {major_hi}{major_hi_lo}{major_lo}{major_lo_lo}{minor}{minor_lo} ETX"
full_packet: "01h-30h-ID-30h-41h-31H-32H-02H-(43H 32H 32H 44H)-(major_hi)-(major_lo)-(minor)-03H-BCC-0DH"
notes: "Reply cmd 'C32D'. Writes Major-High, Major-Low, Minor channel. TV tuner models only. See §7.5.2."
params:
- {name: major_channel_high, type: integer, description: "Major channel high 16-bit"}
- {name: major_channel_low, type: integer, description: "Major channel low 16-bit"}
- {name: minor_channel, type: integer, description: "Minor channel 16-bit"}
# ---------- Remote Control key forwarding (§7.6.1) - one action per RC code row ----------
- id: ctl_rc_key_send
label: CTL-C210 Remote Control Key Code Send
kind: action
command: "STX 'C' '2' '1' '0' '0' '0' {key_hi}{key_lo} {repeat_hi}{repeat_lo} ETX"
full_packet: "01h-30h-ID-30h-41h-30h-43h-02H-(43H 32H 31H 30H)-(30H 30H)-(key)-(repeat)-03H-BCC-0DH"
notes: "Reply cmd 'C310' echoes the key. Upper byte always '00'. See §7.6.1 for key table."
params:
- name: key_code
type: enum
description: "Remote control data code (lower byte)"
values: ["1D-PICTURE", "29-ASPECT", "43-SOUND", "08-1", "09-2", "0A-3", "0B-4", "0C-5", "0D-6", "0E-7", "0F-8", "10-9", "44-DASH", "12-0", "19-INFO", "20-MENU", "1F-EXIT", "15-UP", "14-DOWN", "21-LEFT", "22-RIGHT", "23-OK", "17-VOL+", "16-VOL-", "33-CH+", "32-CH-", "1B-MUTE", "27-FREEZE", "2C-CC", "1A-MTS"]
- {name: repeat_times, type: integer, description: "Repeat count (HL)"}
# ---------- Firmware version (§7.7.1) ----------
- id: ctl_firmware_version_read
label: CTL-CA02 Firmware Version Read
kind: query
command: "STX 'C' 'A' '0' '2' '0' '0' ETX"
full_packet: "01h-30h-ID-30h-41h-30h-38h-02H-(43H 41H 30H 32H)-(30H 30H)-03H-BCC-0DH"
notes: "Reply cmd 'CB02'. Firmware type '00'=F/W Revision. Version string format: R<major>.<min1><min2><min3><branch1><branch2> (e.g. R1.234AB). See §7.7.1."
params:
- name: firmware_type
type: enum
values: ["00"]
description: "'00' = F/W Revision (only documented value)"
# ---------- Input Name edit (§7.7.2-4) ----------
- id: ctl_input_name_read
label: CTL-CA04-03 Input Name Read
kind: query
command: "STX 'C' 'A' '0' '4' '0' '3' {terminal_hi}{terminal_lo} ETX"
full_packet: "01h-30h-ID-30h-41h-30h-41h-02H-(43H 41H 30H 34H)-(30H 33H)-(terminal)-03H-BCC-0DH"
notes: "Reply cmd 'CB04'+'03'. Returns Input Name (max 14 chars). See §7.7.2."
params:
- name: input_terminal
type: enum
description: "Designated terminal"
values: ["00-No mean", "01-VGA(RGB)", "05-AV", "09-Tuner", "0C-VGA(YPbPr)", "11-HDMI1", "12-HDMI2", "82-HDMI3", "87-MP(Media player)"]
- id: ctl_input_name_write
label: CTL-CA04-04 Input Name Write
kind: action
command: "STX 'C' 'A' '0' '4' '0' '4' {terminal_hi}{terminal_lo} {name_bytes} ETX"
full_packet: "01h-30h-ID-30h-41H-LEN-LEN-02H-(43H 41H 30H 34H)-(30H 34H)-(terminal)-(name)-03H-BCC-0DH"
notes: "Reply cmd 'CB04'+'04'. Max name length 14 chars. See §7.7.3."
params:
- name: input_terminal
type: enum
values: ["00-No mean", "01-VGA(RGB)", "05-AV", "09-Tuner", "0C-VGA(YPbPr)", "11-HDMI1", "12-HDMI2", "82-HDMI3", "87-MP(Media player)"]
- {name: input_name, type: string, description: "Input label (max 14 chars)"}
- id: ctl_input_name_reset
label: CTL-CA04-05 Input Name Reset
kind: action
command: "STX 'C' 'A' '0' '4' '0' '5' {terminal_hi}{terminal_lo} ETX"
full_packet: "01h-30h-ID-30h-41h-30h-41h-02H-(43H 41H 30H 34H)-(30H 35H)-(terminal)-03H-BCC-0DH"
notes: "Reply cmd 'CB04'+'05'. Terminal '00' resets ALL terminals. See §7.7.4."
params:
- name: input_terminal
type: enum
values: ["00-ALL Terminal", "00-No mean", "01-VGA(RGB)", "05-AV", "09-Tuner", "0C-VGA(YPbPr)", "11-HDMI1", "12-HDMI2", "82-HDMI3", "87-MP(Media player)"]
# ---------- VCP set actions - one per distinct OP code in §8 OSD table ----------
# Value column documents valid enum / range for each.
- {id: vcp_picture_mode_set, label: "VCP-02-1A Picture Mode", kind: action, command: "STX '0' '2' '1' 'A' {val} ETX", enum: ["0003-HighBright","0004-Standard","0008-Custom","0017-Dynamic","0018-Energy Savings","001B-HDR Video","001D-Conferencing"]}
- {id: vcp_aspect_ratio_set, label: "VCP-02-70 Aspect Ratio", kind: action, command: "STX '0' '2' '7' '0' {val} ETX", enum: ["0001-NORMAL","0002-FULL","0004-ZOOM","0007-1:1"]}
- {id: vcp_overscan_set, label: "VCP-02-E3 Overscan", kind: action, command: "STX '0' '2' 'E' '3' {val} ETX", enum: ["0001-Off","0002-On","0003-Auto"]}
- {id: vcp_dimming_setting_set, label: "VCP-11-4E Dimming Setting", kind: action, command: "STX '1' '1' '4' 'E' {val} ETX", enum: ["0001-OFF","0002-Dynamic Backlight","0003-Local Dimming"]}
- {id: vcp_color_temp_wnc_set, label: "VCP-00-0C Color Temperature (Warm/Normal/Cool)", kind: action, command: "STX '0' '0' '0' 'C' {val} ETX", enum: ["0023-Warm","003F-Normal","005A-Cool"]}
- {id: vcp_color_temp_native_set, label: "VCP-00-14 Color Temperature (Native/Custom)", kind: action, command: "STX '0' '0' '1' '4' {val} ETX", enum: ["0002-Native","000B-Custom"]}
- {id: vcp_white_gain_r_set, label: "VCP-00-16 R Gain", kind: action, command: "STX '0' '0' '1' '6' {val} ETX", range: "0000-0064 (Dark-Bright)"}
- {id: vcp_white_gain_g_set, label: "VCP-00-18 G Gain", kind: action, command: "STX '0' '0' '1' '8' {val} ETX", range: "0000-0064 (Dark-Bright)"}
- {id: vcp_white_gain_b_set, label: "VCP-00-1A B Gain", kind: action, command: "STX '0' '0' '1' 'A' {val} ETX", range: "0000-0064 (Dark-Bright)"}
- {id: vcp_noise_reduction_set, label: "VCP-02-20 Noise Reduction", kind: action, command: "STX '0' '2' '2' '0' {val} ETX", enum: ["0000-OFF","0001-Low","0002-Mid","0003-High"]}
- {id: vcp_noise_reduction_alt_set, label: "VCP-02-26 Noise Reduction (alt)", kind: action, command: "STX '0' '2' '2' '6' {val} ETX", enum: ["0000-OFF","0001-Low","0002-Mid","0003-High"]}
- {id: vcp_adaptive_contrast_set, label: "VCP-02-8D Adaptive Contrast", kind: action, command: "STX '0' '2' '8' 'D' {val} ETX", enum: ["0001-Off","0002-Low","0003-Mid","0004-High"]}
- {id: vcp_gamma_set, label: "VCP-02-68 Gamma", kind: action, command: "STX '0' '2' '6' '8' {val} ETX", enum: ["0001-Native","0004-2.2","0008-2.4","0010-HDR-Hybrid Log","0011-HDR-ST2084(PQ)"]}
- {id: vcp_ambient_light_sensing_set,label: "VCP-10-C8 Ambient Light Sensing", kind: action, command: "STX '1' '0' 'C' '8' {val} ETX", enum: ["0001-Off","0002-On"]}
- {id: vcp_color_enhance_set, label: "VCP-11-EC Color Enhance", kind: action, command: "STX '1' '1' 'E' 'C' {val} ETX", enum: ["0001-Off","0002-Vivid","0003-Wide"]}
- {id: vcp_hdr_mode_set, label: "VCP-11-E5 HDR Mode", kind: action, command: "STX '1' '1' 'E' '5' {val} ETX", enum: ["0004-Low","0005-Mid","0006-High"]}
- {id: vcp_backlight_brightness_set, label: "VCP-00-10 Backlight / Brightness", kind: action, command: "STX '0' '0' '1' '0' {val} ETX", range: "0000-0064 (Dark-Bright)"}
- {id: vcp_contrast_set, label: "VCP-00-12 Contrast", kind: action, command: "STX '0' '0' '1' '2' {val} ETX", range: "0000-0064 (Low-High)"}
- {id: vcp_video_black_level_set, label: "VCP-00-92 Video Black Level", kind: action, command: "STX '0' '0' '9' '2' {val} ETX", range: "0000-0064 (To Dark-To Bright)"}
- {id: vcp_sharpness_set, label: "VCP-00-87 Sharpness", kind: action, command: "STX '0' '0' '8' '7' {val} ETX", range: "0000-0064 (Dull-Sharp)"}
- {id: vcp_sharpness_alt_set, label: "VCP-00-8C Sharpness (alt)", kind: action, command: "STX '0' '0' '8' 'C' {val} ETX", range: "0000-0064 (Dull-Sharp)"}
- {id: vcp_color_set, label: "VCP-00-8A Color", kind: action, command: "STX '0' '0' '8' 'A' {val} ETX", range: "0000-0064 (Pale-To Deep)"}
- {id: vcp_color_alt_set, label: "VCP-02-1F Color (alt)", kind: action, command: "STX '0' '2' '1' 'F' {val} ETX", range: "0000-0064 (Pale-To Deep)"}
- {id: vcp_tint_set, label: "VCP-00-90 Tint", kind: action, command: "STX '0' '0' '9' '0' {val} ETX", range: "0000-0064 (Purplish-Greenish)"}
- {id: vcp_reset_settings, label: "VCP-02-CB Reset (Video/Audio/VGA/Network/All)", kind: action, command: "STX '0' '2' 'C' 'B' {val} ETX", enum: ["0001-All(Factory Reset)","0002-Picture","0003-Adjust","0004-Audio","0010-Network"]}
- {id: vcp_sound_mode_set, label: "VCP-10-B2 Sound Mode", kind: action, command: "STX '1' '0' 'B' '2' {val} ETX", enum: ["0001-Standard","0002-Movie","0003-Music","0005-Custom"]}
- {id: vcp_balance_set, label: "VCP-00-93 Balance", kind: action, command: "STX '0' '0' '9' '3' {val} ETX", range: "0000-0064 (Left-Right)"}
- {id: vcp_surround_set, label: "VCP-02-34 Surround", kind: action, command: "STX '0' '2' '3' '4' {val} ETX", enum: ["0001-Off","0002-On"]}
- {id: vcp_internal_speakers_set, label: "VCP-11-BA Internal Speakers", kind: action, command: "STX '1' '1' 'B' 'A' {val} ETX", enum: ["0000-No mean","0001-Off","0002-On","0003-Auto"]}
- {id: vcp_audio_input_set, label: "VCP-02-2E Audio Input", kind: action, command: "STX '0' '2' '2' 'E' {val} ETX", enum: ["0001-Audio1","0002-Audio2(AV)","0004-HDMI1","0006-TV","000A-HDMI2","000B-HDMI3","000D-MP"]}
- {id: vcp_audio_delay_set, label: "VCP-10-CB Audio Delay", kind: action, command: "STX '1' '0' 'C' 'B' {val} ETX", range: "0000-0064 (Small-Large)"}
- {id: vcp_audio_source_mts_set, label: "VCP-02-2C Audio Source (MTS)", kind: action, command: "STX '0' '2' '2' 'C' {val} ETX", enum: ["0000-No mean","0001-main","0002-sub","0003-main+sub","0004-stereo","0005-mono","0006-dual","0007-SAP"], notes: "TV tuner models only"}
- {id: vcp_audio_language_set, label: "VCP-10-B3 Audio Language", kind: action, command: "STX '1' '0' 'B' '3' {val} ETX", enum: ["0002-English","0003-Francais","000A-Espanol"], notes: "TV tuner models only"}
- {id: vcp_reset_audio_settings, label: "VCP-02-31 Reset Audio Settings", kind: action, command: "STX '0' '2' '3' '1' {val} ETX", enum: ["0001-Reset"]}
- {id: vcp_osd_language_set, label: "VCP-00-68 OSD Language", kind: action, command: "STX '0' '0' '6' '8' {val} ETX", enum: ["0001-English","0002-Deutsch","0003-Francais","0004-Espanol"]}
- {id: vcp_osd_transparency_set, label: "VCP-02-B8 OSD Transparency", kind: action, command: "STX '0' '2' 'B' '8' {val} ETX", enum: ["0001-Off","0002-30%","0003-50%","0004-70%"]}
- {id: vcp_information_osd_set, label: "VCP-02-3D Information OSD", kind: action, command: "STX '0' '2' '3' 'D' {val} ETX", enum: ["0000-Off","0005-On"]}
- {id: vcp_caption_display_set, label: "VCP-10-84 Caption Display (Analog)", kind: action, command: "STX '1' '0' '8' '4' {val} ETX", enum: ["0000-No mean","0001-Off","0002-CC1","0003-CC2","0004-CC3","0005-CC4","0006-Text1","0007-Text2","0008-Text3","0009-Text4"], notes: "TV tuner models only"}
- {id: vcp_digital_captions_set, label: "VCP-10-A1 Digital Captions", kind: action, command: "STX '1' '0' 'A' '1' {val} ETX", enum: ["0000-No mean","0001-Off","0002-CS1","0003-CS2","0004-CS3","0005-CS4","0006-CS5","0007-CS6"]}
- {id: vcp_quick_start_set, label: "VCP-11-EA Quick Start", kind: action, command: "STX '1' '1' 'E' 'A' {val} ETX", enum: ["0001-Off","0002-On"]}
- {id: vcp_auto_input_change_set, label: "VCP-02-40 Auto Input Change", kind: action, command: "STX '0' '2' '4' '0' {val} ETX", enum: ["0000-First","0002-None","0004-Custom"]}
- {id: vcp_input_1_select, label: "VCP-10-2E Input 1 Select", kind: action, command: "STX '1' '0' '2' 'E' {val} ETX", enum: ["0001-VGA","0005-Video1(AV)","000C-DVD/HD1(VGA(YPbPr))","0011-HDMI1","0012-HDMI2","0082-HDMI3"]}
- {id: vcp_input_2_select, label: "VCP-10-2F Input 2 Select", kind: action, command: "STX '1' '0' '2' 'F' {val} ETX", enum: ["0001-VGA","0005-Video1(AV)","000C-DVD/HD1(VGA(YPbPr))","0011-HDMI1","0012-HDMI2","0082-HDMI3"]}
- {id: vcp_input_3_select, label: "VCP-10-30 Input 3 Select", kind: action, command: "STX '1' '0' '3' '0' {val} ETX", enum: ["0001-VGA","0005-Video1(AV)","000C-DVD/HD1(VGA(YPbPr))","0011-HDMI1","0012-HDMI2","0082-HDMI3"]}
- {id: vcp_input_select_tv, label: "VCP-00-60 Input Select", kind: action, command: "STX '0' '0' '6' '0' {val} ETX", enum: ["0000-No mean","0001-VGA(RGB)","0005-Video1(AV)","0009-Tuner1(TV)","000C-DVD/HD1(VGA(YPbPr))","0011-HDMI1","0012-HDMI2","0082-HDMI3","0087-MP(Media Player)"], notes: "Tuner value TV-tuner models only"}
- {id: vcp_cec_set, label: "VCP-11-76 CEC", kind: action, command: "STX '1' '1' '7' '6' {val} ETX", enum: ["0001-Off","0002-On"]}
- {id: vcp_cec_auto_turn_off_set, label: "VCP-11-77 CEC Auto Turn Off", kind: action, command: "STX '1' '1' '7' '7' {val} ETX", enum: ["0001-Disable","0002-Enable"]}
- {id: vcp_cec_audio_receiver_set, label: "VCP-11-78 CEC Audio Receiver", kind: action, command: "STX '1' '1' '7' '8' {val} ETX", enum: ["0001-Disable","0002-Enable"]}
- {id: vcp_cec_device_list_set, label: "VCP-11-79 CEC Device List", kind: action, command: "STX '1' '1' '7' '9' {val} ETX", enum: ["0001-NO","0002-YES"]}
- {id: vcp_edid_set, label: "VCP-10-AA EDID", kind: action, command: "STX '1' '0' 'A' 'A' {val} ETX", enum: ["0001-Mode 0","0002-Mode 1","0003-Mode 2"]}
- {id: vcp_video_range_set, label: "VCP-10-40 Video Range", kind: action, command: "STX '1' '0' '4' '0' {val} ETX", enum: ["0001-Expanded Signal","0002-Raw Signal","0003-Auto"]}
- {id: vcp_vga_mode_set, label: "VCP-10-8E VGA Mode", kind: action, command: "STX '1' '0' '8' 'E' {val} ETX", enum: ["0001-RGB","0002-YPbPr"]}
- {id: vcp_vga_auto_adjust, label: "VCP-00-1E VGA Auto Adjust", kind: action, command: "STX '0' '0' '1' 'E' {val} ETX", enum: ["0001-Execute"]}
- {id: vcp_vga_h_position_set, label: "VCP-00-20 VGA H.Position", kind: action, command: "STX '0' '0' '2' '0' {val} ETX", range: "0000-0064 (Left-Right)"}
- {id: vcp_vga_v_position_set, label: "VCP-00-30 VGA V.Position", kind: action, command: "STX '0' '0' '3' '0' {val} ETX", range: "0000-0064 (Bottom-Top)"}
- {id: vcp_vga_clock_set, label: "VCP-00-0E VGA Clock", kind: action, command: "STX '0' '0' '0' 'E' {val} ETX", range: "0000-0064"}
- {id: vcp_vga_phase_set, label: "VCP-00-3E VGA Phase", kind: action, command: "STX '0' '0' '3' 'E' {val} ETX", range: "0000-0064"}
- {id: vcp_vga_h_resolution_set, label: "VCP-02-50 VGA H.Resolution", kind: action, command: "STX '0' '2' '5' '0' {val} ETX", range: "0000-FFFF (Low-High)"}
- {id: vcp_vga_v_resolution_set, label: "VCP-02-51 VGA V.Resolution", kind: action, command: "STX '0' '2' '5' '1' {val} ETX", range: "0000-FFFF (Low-High)"}
- {id: vcp_key_lock_set, label: "VCP-00-FB Key Lock", kind: action, command: "STX '0' '0' 'F' 'B' {val} ETX", enum: ["0000-Off","0001-Mode2","0002-Mode1"]}
- {id: vcp_ir_lock_set, label: "VCP-02-3F IR Lock", kind: action, command: "STX '0' '2' '3' 'F' {val} ETX", enum: ["0001-Off","0004-Mode2","0005-Mode1"]}
- {id: vcp_power_supply_set, label: "VCP-11-75 Power Supply", kind: action, command: "STX '1' '1' '7' '5' {val} ETX", enum: ["0001-ON","0003-OFF"]}
- {id: vcp_led_indicator_set, label: "VCP-02-BE LED Indicator", kind: action, command: "STX '0' '2' 'B' 'E' {val} ETX", enum: ["0001-ON","0002-OFF"]}
- {id: vcp_mute_settings_set, label: "VCP-11-E9 Mute Settings", kind: action, command: "STX '1' '1' 'E' '9' {val} ETX", enum: ["0001-Audio","0002-Video","0003-Audio & Video"]}
- {id: vcp_thermal_warning_set, label: "VCP-11-ED Thermal Warning Message", kind: action, command: "STX '1' '1' 'E' 'D' {val} ETX", enum: ["0000-No mean","0001-Off","0002-On"]}
- {id: vcp_thermal_shutdown_set, label: "VCP-10-8A Thermal Shutdown", kind: action, command: "STX '1' '0' '8' 'A' {val} ETX", enum: ["0001-Off","0002-On"]}
- {id: vcp_control_interface_set, label: "VCP-10-3E Control Interface", kind: action, command: "STX '1' '0' '3' 'E' {val} ETX", enum: ["0001-RS-232C","0002-LAN"]}
- {id: vcp_monitor_id_set, label: "VCP-02-3E Monitor ID", kind: action, command: "STX '0' '2' '3' 'E' {val} ETX", range: "0001-0064"}
# VCP-02-78 / VCP-02-79 referenced as Monitor Information reads in §8 - OP codes
# not detailed beyond the table cross-reference.
- {id: vcp_monitor_info_278_query, label: "VCP-02-78 Monitor Information (read)", kind: query, command: "STX '0' '2' '7' '8' ETX", notes: "Referenced in §8 monitor info group; detailed semantics not in source"}
- {id: vcp_monitor_info_279_query, label: "VCP-02-79 Monitor Information (read)", kind: query, command: "STX '0' '2' '7' '9' ETX", notes: "Referenced in §8 monitor info group; detailed semantics not in source"}
# OSD table marks the following as N/A (no VCP code) - recorded for completeness:
# Digital Output, Visually Impaired, Menu Speech (TTS), Auto Channel Scan, Add/Skip Channels,
# Favorite Channels, Channel Labels, Time Zone, Parental Controls, Energy Mode, Auto Power Down,
# HPD Delay, USB Demo Mode, UnPlug USB, Sleep Timer, Schedule, Network DHCP/IP/Mask/Gateway/DNS/MAC.
# These are N/A -> NOT emitted as actions (no payload documented).
Feedbacks
feedbacks:
- id: null_message
type: event
trigger: "Monitor returns NULL message ('BE') on timeout (>10s), unsupported message type, BCC error, or when busy (Power ON/OFF, Auto Setup, Input, PIP Input, Factory reset)"
command: "STX 'B' 'E' ETX"
full_packet: "01h-30h-30h-41h-42h-30h-34h-02h-42h-45h-03h-CHK-0Dh"
- id: command_reply
type: reply
description: "MsgType='B'. Generic command reply, format depends on command."
- id: get_parameter_reply
type: reply
description: "MsgType='D'. Returns Result, OP page, OP code, Type, Max value, Current Value. Result '00'=No Error, '01'=Unsupported."
- id: set_parameter_reply
type: reply
description: "MsgType='F'. Echoes Result, OP page, OP code, Type, Max, Requested Value."
- id: result_code
type: enum
values: ["00-No Error", "01-Unsupported operation or unsupported under current condition"]
- id: operation_type
type: enum
values: ["00-Set parameter", "01-Momentary (e.g. Auto Setup)"]
- id: timing_status_byte
type: bitmask
description: "SS byte in CTL-07 timing reply"
bits:
bit7: "1 = Sync Frequency out of range / No signal"
bit6: "1 = Unstable count"
bit5_2: "Reserved"
bit1: "H-sync polarity (1=positive)"
bit0: "V-sync polarity (1=positive)"
- id: temperature_sensor_count
type: integer
description: "Returned in VCP-02-78 reply - number of built-in temperature sensors (e.g. 3)"
- id: temperature_value
type: integer
description: "VCP-02-79 readout, 2's complement, 0.5 deg C resolution (0032h = 25.0 C, FFFFh = -0.5 C)"
Variables
variables:
- id: backlight
op_code_page: "00"
op_code: "10"
type: integer
range: "0000-0064 (0-100)"
unit: percent
- id: contrast
op_code_page: "00"
op_code: "12"
type: integer
range: "0000-0064"
- id: color_temperature_warm_normal_cool
op_code_page: "00"
op_code: "0C"
type: enum
values: ["0023-Warm", "003F-Normal", "005A-Cool"]
- id: monitor_id
op_code_page: "02"
op_code: "3E"
type: integer
range: "0001-0064 (1-100)"
# The full set of settable VCP parameters is enumerated in the Actions section
# above as vcp_*_set actions. Each carries its range/enum from §8.
Events
events:
- id: null_message_event
description: "Unsolicited NULL message ('BE') when monitor cannot respond or is executing a long operation."
command: "STX 'B' 'E' ETX"
- id: idle_disconnect
description: "TCP connection dropped after 15 minutes of inactivity (per §3.2). Controller must reconnect."
# UNRESOLVED: no other unsolicited push notifications documented in source.
Macros
macros:
- id: change_backlight_macro
description: "§6.1 documented procedure to change Backlight"
steps:
- "Get-parameter VCP-00-10 (read current backlight + max)"
- "Set-parameter VCP-00-10 with new value (e.g. 0050h = 80)"
- "Get-parameter VCP-00-10 (verify - recommended)"
- "CTL-0C Save Current Settings (persist)"
- id: read_temperature_macro
description: "§6.2 documented procedure to read a built-in temperature sensor"
steps:
- "Set-parameter VCP-02-78 = 0001 (select sensor #1)"
- "Get-parameter VCP-02-79 (returns temperature, 2's complement, 0.5 C resolution)"
Safety
confirmation_required_for: []
interlocks:
- "Power ON/OFF operations return NULL message if another command arrives during execution (per §5.5.3)."
- "Monitor disconnects TCP after 15 minutes idle - controller must reconnect (per §3.2)."
- "Auto Setup, Input change, PIP Input, Factory Reset also block concurrent commands (per §5.5.3)."
thermal_protection:
- "VCP-11-ED Thermal Management Warning Message (Off/On)"
- "VCP-10-8A Thermal Management Shutdown (Off/On)"
# UNRESOLVED: source contains no explicit safety interlock procedures, power-on
# sequencing, or voltage/current ratings. Thermal Management controls exist as
# OSD-settable parameters but no safety procedure is documented.
Notes
- Protocol duality: the same ASCII-framed protocol runs over both RS-232C (9600 8N1) and TCP (port 7142). The only transport-specific difference is the physical layer; message format is identical.
- Source identity: §1 of the source text refers to "NEC LCD monitor" — this is a Sharp-rebadged NEC control protocol manual for the Sharp PROX5 Series. Manufacturer entity is Sharp per the input token.
- Byte encoding: all numeric payload bytes are ASCII-encoded as 2 hex characters (e.g. byte 3Ah is sent as ASCII '3','A' = 33h,41h). Implementers must encode/decode accordingly.
- BCC calculation: XOR of bytes D1 through D16 (Reserved through ETX inclusive). Worked example in §4.3.1 yields 77h for the sample Set-parameter packet.
- Monitor / Group ID addressing: Destination byte maps Monitor ID 1→'A'(41h) ... 100→A4h, '*'(2Ah) = all monitors. Group IDs A-J map to '1'-'9' and ':'. See §4.1.1 conversion table.
- Packet interval: controller must wait > 600 ms between commands (RS-232 and LAN).
- TV-tuner-only commands (marked in §8 with
(*1)): VCP-02-2C (MTS), VCP-10-B3 (Audio Language), VCP-10-84 (Caption), CTL-C22C/C22D (TV Channel), VCP-00-60 Tuner value. US-only tuner models. - De content marked
N/Ain §8 table (Digital Output, TTS, Schedule, Network IP fields, etc.) has no documented command payload and is intentionally omitted from Actions.
Spec above. Both RS-232 + TCP. ~85 actions: 14 CTL system + 65 VCP set/query + identity/power/RC. VCP-02-78/79 marked UNRESOLVED (referenced only). All N/A rows in §8 omitted (no payload).
## Provenance
```yaml
source_domains:
- sharp-displays.jp.sharp
source_urls:
- https://sharp-displays.jp.sharp/support/webdl/dl_service/data/display/manual/e658/eu/External_Control_Exx8_Series_EN_Rev1.0.pdf
retrieved_at: 2026-06-15T12:48:55.532Z
last_checked_at: 2026-06-16T07:17:44.300Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-06-16T07:17:44.300Z
matched_actions: 86
action_count: 86
confidence: medium
summary: "All 86 spec actions have verbatim wire-literal matches in the source; transport parameters confirmed; source and spec are bidirectionally complete. (10 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "Source §1 text refers to \"NEC LCD monitor\" — document is a Sharp-rebadged NEC protocol manual. Exact PROX5 sub-models (e.g. Pro-60X5FD / Pro-70X5FD) are not named in this source text. Voltage / current / power specs not in source."
- "flow control not stated in source"
- "no other unsolicited push notifications documented in source."
- "source contains no explicit safety interlock procedures, power-on"
- "Exact PROX5 sub-model numbers (e.g. Pro-60X5FD / Pro-70X5FD) not present in this source text — only \"PROX5 Series\" generic."
- "Firmware version compatibility range not stated."
- "RS-232C flow control not specified (assumed none)."
- "No password / authentication procedure documented; auth.type inferred none."
- "VCP-02-78 and VCP-02-79 referenced only by name in §8 Monitor Information group — exact semantics (besides temp-sensor use shown in §6.2) not detailed."
- "Voltage, current, power, and mechanical specs not in this source."
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0