Summary
Serial (RS-232C / RS-422A) control protocol for Sony VPH-G70Q and VPH-D50Q family CRT/data projectors. Uses fixed-size binary command blocks with start/end markers and XOR checksum; the projector responds with ACK, NAK, or data return blocks.
Transport
protocols:
- serial
serial:
baud_rate: 38400 # factory default; 19200/9600/4800 also selectable via OSD
data_bits: 8
parity: even
stop_bits: 1
flow_control: none # UNRESOLVED: flow control not explicitly stated in source
connector: D-sub 9-pin female (D-9S)
electrical: RS-232C or RS-422A (4-wire); cross-over wiring table provided in source
inter_byte_gap_max_ms: 4
auth:
type: none # inferred: no login/password/auth procedure in source
Traits
- powerable # inferred: POWER REQUEST, POWER DIRECT SELECT, AC POWER ON/OFF
- routable # inferred: INPUT CHANNEL SELECT, VIDEO/INPUT A/INPUT B SIGNAL SELECT
- queryable # inferred: extensive status sense commands (CMD1=11)
- levelable # inferred: COLOR UNIFORMITY, BRIGHTNESS UNIFORMITY, PICTURE CONTROL writes
Actions
Command block format (B0..Bn+2):
A5 01 00 01 00 01 03 00 01 00 01 {CMD1} {CMD2} 10 {SIZE_4_to_6} 00 {SIZE_6} {DATA} {CHECKSUM} 5A
- B0 start =
A5; B1..B5 receiver index (projector 01 0001); B6..B10 sender index (controller 03 0001); B13 projector category =10(CRT); B15 sub-cmd =00; Bn+2 end =5A. - SIZE_4_to_6 = 5 + len(DATA) (sum of CMD1..CMD3, sub-cmd, size, data). SIZE_6 = len(DATA).
- CHECKSUM = XOR of B1..Bn.
- Projector replies with CMD1=
10blocks: ACK (10 10), ACK WITH DATA (10 20), NAK (10 11), or ERROR DATA SET (10 F0). - For data-bearing commands the DATA section is command-specific; use the source protocol table for each layout.
# CMD1=10 - Return Data (controller <- projector). Listed as actions so a driver can pattern-match.
- id: return_data_ack
label: Return Data (ACK)
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 10 10 10 05 00 00 {checksum} 5A"
params: []
- id: return_data_ack_with_data
label: Return Data (ACK With Data)
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 10 20 10 05 00 00 {checksum} 5A"
params: []
- id: return_data_nak
label: Return Data (NAK)
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 10 11 10 05 00 00 {checksum} 5A"
params: []
- id: return_data_error_set
label: Return Data - Error Data Set
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 10 F0 10 {size_4_to_6} 00 {size_6} {error_data} {checksum} 5A"
params:
- name: error_data
type: bytes
description: 4-byte error code set (see error codes)
# CMD1=11 - Status Sense (controller -> projector)
- id: device_type_request
label: Device Type Request
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 00 10 05 00 00 {checksum} 5A"
params: []
- id: software_ver_request
label: Software Ver. Request
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 20 10 05 00 00 {checksum} 5A"
params: []
- id: err_request
label: ERR Request
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 08 10 05 00 00 {checksum} 5A"
params: []
- id: power_status_sense
label: Power Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 10 10 05 00 00 {checksum} 5A"
params: []
- id: set_mode_status_sense
label: Set Mode Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 0D 10 05 00 00 {checksum} 5A"
params: []
- id: pole_status_sense
label: Pole Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 0E 10 05 00 00 {checksum} 5A"
params: []
- id: all_white_mode_status_sense
label: All White Mode Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 0F 10 05 00 00 {checksum} 5A"
params: []
- id: power_saving_status_sense
label: Power Saving Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 10 10 05 00 00 {checksum} 5A"
params: []
- id: picture_muting_status_sense
label: Picture Muting Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 11 10 05 00 00 {checksum} 5A"
params: []
- id: protection_status_sense
label: Protection Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 17 10 05 00 00 {checksum} 5A"
params: []
- id: fh_too_high_status_sense
label: FH Too High Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 18 10 05 00 00 {checksum} 5A"
params: []
- id: over_correction_status_sense
label: Over Correction Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 19 10 05 00 00 {checksum} 5A"
params: []
- id: comm_target_device_index_sense
label: Comm Target Device Index Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 1A 10 05 00 00 {checksum} 5A"
params: []
- id: nvm_imem_entry_load_from_sense
label: NVM IMEM Entry Load From Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 1B 10 05 00 00 {checksum} 5A"
params: []
- id: signal_stabilized_sense
label: Signal Stabilized Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 1C 10 05 00 00 {checksum} 5A"
params: []
- id: signal_act_sense
label: Signal ACT Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 1D 10 05 00 00 {checksum} 5A"
params: []
- id: power_saving_act_sense
label: Power Saving ACT Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 2B 10 05 00 00 {checksum} 5A"
params: []
- id: all_white_act_sense
label: All White ACT Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 2C 10 05 00 00 {checksum} 5A"
params: []
- id: pic_orbiting_sense
label: Pic Orbiting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 30 10 05 00 00 {checksum} 5A"
params: []
- id: crt_active_time_sense
label: CRT Active Time Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 31 10 05 00 00 {checksum} 5A"
params: []
- id: input_status_sense
label: Input Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 40 10 05 00 00 {checksum} 5A"
params: []
- id: channel_swer_sense
label: Channel Switcher Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 43 10 05 00 00 {checksum} 5A"
params: []
- id: fh_fv_sync_sense
label: fH/fV/Sync Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 49 10 05 00 00 {checksum} 5A"
params: []
- id: power_direct_status_sense
label: Power Direct Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 50 10 05 00 00 {checksum} 5A"
params: []
- id: power_on_delay_status_sense
label: Power On Delay Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 51 10 05 00 00 {checksum} 5A"
params: []
- id: bnc_old_swer_status_sense
label: 5BNC Old Switcher Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 52 10 05 00 00 {checksum} 5A"
params: []
- id: auto_back_ground_status_sense
label: Auto Back Ground Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 55 10 05 00 00 {checksum} 5A"
params: []
- id: abl_link_status_sense
label: ABL Link Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 56 10 05 00 00 {checksum} 5A"
params: []
- id: ir_in_status_sense
label: IR In Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 57 10 05 00 00 {checksum} 5A"
params: []
- id: osd_language_status_sense
label: OSD Language Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 60 10 05 00 00 {checksum} 5A"
params: []
- id: osd_show_status_sense
label: OSD Show Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 61 10 05 00 00 {checksum} 5A"
params: []
- id: input_status_sense_70
label: Input Status Sense (CMD2 70)
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 70 10 05 00 00 {checksum} 5A"
params: []
- id: video_setting_sense
label: Video Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 74 10 05 00 00 {checksum} 5A"
params: []
- id: input_a_setting_sense
label: Input A Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 78 10 05 00 00 {checksum} 5A"
params: []
- id: input_b_setting_sense
label: Input B Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 7C 10 05 00 00 {checksum} 5A"
params: []
- id: old_swer_all_setting_sense
label: Old Switcher All Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 80 10 05 00 00 {checksum} 5A"
params: []
- id: old_swer_setting_sense
label: Old Switcher Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 81 10 05 00 00 {checksum} 5A"
params: []
- id: screen_type_sense
label: Screen Type Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 88 10 05 00 00 {checksum} 5A"
params: []
- id: color_uniformity_setting_sense
label: Color Uniformity Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 89 10 05 00 00 {checksum} 5A"
params: []
- id: brightness_uniformity_setting_sense
label: Brightness Uniformity Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 8A 10 05 00 00 {checksum} 5A"
params: []
- id: color_temp_setting_sense
label: Color Temp. Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 20 10 05 00 00 {checksum} 5A"
params: []
- id: d_picture_setting_sense
label: D Picture Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 20 10 05 00 00 {checksum} 5A"
params: []
- id: vshift_setting_sense
label: V.Shift Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 20 10 05 00 00 {checksum} 5A"
params: []
- id: ntsc_setup_setting_sense
label: NTSC Setup Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 20 10 05 00 00 {checksum} 5A"
params: []
- id: component_video_memory_setting_sense
label: Component Setting Sense / Video Memory Setting Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 11 F1 10 05 00 00 {checksum} 5A"
params: []
# CMD1=13 - System Select (controller -> projector)
- id: power_request
label: Power Request
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 0A 10 05 00 00 {checksum} 5A"
params: []
- id: set_mode_act_select
label: Set Mode ACT Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 0D 10 06 00 01 {mode} {checksum} 5A"
params:
- name: mode
type: enum
values: [user, service] # 00 USER, 01 SERVICE
- id: pole_status_select
label: Pole Status Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 0E 10 06 00 01 {pole} {checksum} 5A"
params:
- name: pole
type: enum
values: [normal, hinv, vinv, hvinv] # 00..03
- id: picture_muting_status_select
label: Picture Muting Status Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 11 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on] # 00..01
- id: all_white_mode_all_write
label: All White Mode All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 40 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
description: All-white mode parameters (see source)
- id: all_white_mode_onoff_select
label: All White Mode On/Off Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 41 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: all_white_mode_time_write
label: All White Mode Time Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 42 10 06 00 01 {minutes} {checksum} 5A"
params:
- name: minutes
type: integer
description: 1 byte, 1 unit = 1 minute
- id: pic_orbiting_all_write
label: Pic Orbiting All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 43 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: pic_orbiting_onoff_select
label: Pic Orbiting On/Off Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 44 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: pic_orbiting_time_write
label: Pic Orbiting Time Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 45 10 06 00 01 {minutes} {checksum} 5A"
params:
- name: minutes
type: integer
description: 1 byte, 1 unit = 1 minute
- id: power_saving_all_select
label: Power Saving All Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 49 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: power_saving_onoff_select
label: Power Saving On/Off Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 4A 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: power_saving_time_write
label: Power Saving Time Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 4B 10 06 00 01 {minutes} {checksum} 5A"
params:
- name: minutes
type: integer
description: 1 byte, 1 unit = 1 minute
- id: power_direct_select
label: Power Direct Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 50 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on] # AC POWER ON/OFF
- id: power_on_delay_status_select
label: Power On Delay Status Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 51 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: bnc_old_swer_status_select
label: 5BNC Old Switcher Status Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 52 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: auto_back_ground_select
label: Auto Back Ground Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 55 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: abl_link_status_select
label: ABL Link Status Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 56 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: ir_in_status_select
label: IR In Status Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 57 10 06 00 01 {mode} {checksum} 5A"
params:
- name: mode
type: enum
values: [front_rear, front, rear] # 00..02
- id: osd_language_select
label: OSD Language Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 60 10 06 00 01 {lang} {checksum} 5A"
params:
- name: lang
type: enum
values: [english, french, german, italian, spanish, japanese, chinese]
- id: osd_show_select
label: OSD Show Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 61 10 06 00 01 {mode} {checksum} 5A"
params:
- name: mode
type: enum
values: [on, normal_off, all_off] # 00..02
- id: input_all_select
label: Input All Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 70 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: input_channel_select
label: Input Channel Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 71 10 06 00 01 {channel} {checksum} 5A"
params:
- name: channel
type: enum
values: [video, input_a, input_b, old_swer] # 00..03
- id: old_swer_channel_select
label: Old Switcher Channel Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 72 10 06 00 01 {channel} {checksum} 5A"
params:
- name: channel
type: integer
description: 00..07 SW'er1-1..8; 10..17 SW'er2-1..8; 20 OTHER
- id: video_all_select
label: Video All Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 74 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: video_signal_select
label: Video Signal Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 75 10 06 00 01 {signal} {checksum} 5A"
params:
- name: signal
type: enum
values: [video, svideo] # 10, 11
- id: video_col_sys_select
label: Video COL SYS Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 76 10 06 00 01 {sys} {checksum} 5A"
params:
- name: sys
type: enum
values: [auto, ntsc, pal, secam, ntsc443, palm] # 00,07,19,1D,05,2B
- id: video_idtv_use_select
label: Video IDTV Use Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 77 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [not_use, use]
- id: input_a_all_select
label: Input A All Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 78 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: input_a_signal_select
label: Input A Signal Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 79 10 06 00 01 {signal} {checksum} 5A"
params:
- name: signal
type: enum
values: [video, svideo, rgb, comp, hdtvypbpr, hdtvgbr] # 10,11,20,30,40,41
- id: input_a_col_sys_select
label: Input A COL SYS Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 7A 10 06 00 01 {sys} {checksum} 5A"
params:
- name: sys
type: enum
values: [auto, ntsc, pal, secam, ntsc443, palm]
- id: input_a_idtv_use_select
label: Input A IDTV Use Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 7B 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [not_use, use]
- id: input_b_all_select
label: Input B All Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 7C 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: input_b_signal_select
label: Input B Signal Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 7D 10 06 00 01 {signal} {checksum} 5A"
params:
- name: signal
type: enum
values: [video, svideo, rgb, comp, hdtvypbpr, hdtvgbr]
- id: input_b_col_sys_select
label: Input B COL SYS Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 7E 10 06 00 01 {sys} {checksum} 5A"
params:
- name: sys
type: enum
values: [auto, ntsc, pal, secam, ntsc443, palm]
- id: input_b_idtv_use_select
label: Input B IDTV Use Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 7F 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [not_use, use]
- id: old_swer_all_select
label: Old Switcher All Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 80 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: old_swer_colsys_idtv_select
label: Old Switcher COLSYS IDTV Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 81 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: old_swer_col_sys_select
label: Old Switcher COL SYS Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 82 10 06 00 01 {sys} {checksum} 5A"
params:
- name: sys
type: enum
values: [auto, ntsc, pal, secam, ntsc443, palm]
- id: old_swer_idtv_use_select
label: Old Switcher IDTV Use Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 83 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [not_use, use]
- id: screen_type_select
label: Screen Type Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 88 10 06 00 01 {screen} {checksum} 5A"
params:
- name: screen
type: enum
values: [s1, s2] # 00,01 (active memory write also lists S3=02)
- id: color_uniformity_setting_select
label: Color Uniformity Setting Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 89 10 06 00 01 {mode} {checksum} 5A"
params:
- name: mode
type: enum
values: [off, adjust, preset_s1, preset_s2, preset_s3]
- id: brightness_uniformity_setting_select
label: Brightness Uniformity Setting Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 8A 10 06 00 01 {mode} {checksum} 5A"
params:
- name: mode
type: enum
values: [off, adjust, preset_s1, preset_s2, preset_s3]
- id: color_temp_select
label: Color Temp. Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 20 10 06 00 01 {temp} {checksum} 5A"
params:
- name: temp
type: enum
values: ["9300K", "6500K", "5400K", "3200K", preset]
- id: d_picture_select
label: D Picture Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 20 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: vshift_select
label: V.Shift Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 20 10 06 00 01 {mode} {checksum} 5A"
params:
- name: mode
type: enum
values: [wide, narrow]
- id: ntsc_setup_select
label: NTSC Setup Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 20 10 06 00 01 {setup} {checksum} 5A"
params:
- name: setup
type: enum
values: ["0%", "7.5%"]
- id: component_video_memory_select
label: Component Setting Select / Video Memory Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 F1 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: clamp_select
label: CLAMP Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 F2 10 06 00 01 {clamp} {checksum} 5A"
params:
- name: clamp
type: enum
values: [auto, song, hc, hp, trilevels] # 00..04
- id: sync_select
label: SYNC Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 F3 10 06 00 01 {sync} {checksum} 5A"
params:
- name: sync
type: enum
values: [auto, internal, external, external_c, external_hv] # source shows 00..03 with sub-encoding
- id: sync_osc_shift_setting_select
label: SYNC OSC Shift Setting Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 13 F5 10 06 00 01 {shift} {checksum} 5A"
params:
- name: shift
type: enum
values: ["1", "2"] # 00,01
# CMD1=15 - Internal Test Signal Generator
- id: osc_int_onoff_status_sense
label: OSC INT On/Off Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 15 01 10 05 00 00 {checksum} 5A"
params: []
- id: osc_internal_status_sense
label: OSC Internal Status Sense
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 15 10 10 05 00 00 {checksum} 5A"
params: []
- id: osc_int_onoff_select
label: OSC INT On/Off Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 15 10 10 06 00 01 {state} {checksum} 5A"
params:
- name: state
type: enum
values: [off, on]
- id: osc_internal_select
label: OSC Internal Select
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 15 20 10 06 00 01 {pattern} {checksum} 5A"
params:
- name: pattern
type: integer
description: 00..07 pattern number 1..8
# CMD1=16 - SIRCS Code Direct
- id: sircs_code_direct
label: SIRCS Code Direct
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 16 20 10 08 00 03 {cmd2} {repeat} {sircs_code} {checksum} 5A"
params:
- name: cmd2
type: integer
description: SIRCS row/function nibble 0x0..0xF (see SIRCS table)
- name: repeat
type: enum
values: [one_shot, repeat] # 00,01
- name: sircs_code
type: integer
description: SIRCS code value 0x00..0x7F
# CMD1=30 - Active Memory Read
- id: color_uniformity_data_read
label: Color Uniformity Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 08 10 05 00 00 {checksum} 5A"
params: []
- id: brightness_uniformity_direct_read
label: Brightness Uniformity Read / Direct Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 10 10 05 00 00 {checksum} 5A"
params: []
- id: cxa1839_00h_data_read
label: CXA1839 00H Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 10 10 05 00 00 {checksum} 5A"
params: []
- id: cxa1839_05h_data_read
label: CXA1839 05H Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 20 10 05 00 00 {checksum} 5A"
params: []
- id: cxa1839_08h_data_read
label: CXA1839 08H Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 27 10 05 00 00 {checksum} 5A"
params: []
- id: picture_control_data_read
label: Picture Control Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 20 10 05 00 00 {checksum} 5A"
params: []
- id: rgb_size_data_read
label: RGB Size Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 52 10 05 00 00 {checksum} 5A"
params: []
- id: rgb_shift_data_read
label: RGB Shift Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 54 10 05 00 00 {checksum} 5A"
params: []
- id: blanking_data_read
label: Blanking Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 56 10 05 00 00 {checksum} 5A"
params: []
- id: cent_data_read
label: Centering Data Read
kind: query
command: "A5 01 00 01 00 01 03 00 01 00 01 30 58 10 05 00 00 {checksum} 5A"
params: []
# CMD1=32 - Active Memory Write
- id: color_uniformity_data_all_write
label: Color Uniformity Data All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 08 10 0C 00 07 01 01 00 00 00 {checksum} 5A"
params: []
notes: "Source example: HG=0, VG=0, V=0; full data layout per source protocol table"
- id: color_uniformity_data_rgb_write
label: Color Uniformity Data R/G/B Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 09 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: brt_uniformity_data_all_write
label: BRT Uniformity Data All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 0A 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: brt_uniformity_data_lr_tb_write
label: BRT Uniformity Data LR/TB Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 0B 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: cxa1839_00h_data_write
label: CXA1839 00H Data Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 10 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: cxa1839_05h_data_write
label: CXA1839 05H Data Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 21 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: cxa1839_08h_data_write
label: CXA1839 08H Data Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 29 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: format_write
label: Format Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 20 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: picture_control_data_all_write
label: Picture Control Data All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 52 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: picture_control_data_write
label: Picture Control Data Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 53 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: rgb_size_data_all_write
label: RGB Size Data All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 54 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: rgb_size_data_hv_write
label: RGB Size Data H/V Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 55 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: rgb_shift_data_all_write
label: RGB Shift Data All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 56 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: rgb_shift_data_hv_write
label: RGB Shift Data H/V Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 57 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: blanking_data_all_write
label: Blanking Data All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 58 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: blanking_data_write
label: Blanking Data Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 59 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: cent_data_all_write
label: Centering Data All Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 60 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
- id: cent_data_write
label: Centering Data Write
kind: action
command: "A5 01 00 01 00 01 03 00 01 00 01 32 61 10 {size_4_to_6} 00 {size_6} {data} {checksum} 5A"
params:
- name: data
type: bytes
Feedbacks
- id: ack_status
label: ACK Status
type: enum
values: [ack, ack_with_data, nak]
- id: error_code
label: Error Code
type: enum
values:
- undefined_command
- head_not_power_on
- any_protect_on
- size_error
- select_error
- range_over
- sircs_busy
- data_not_stabilized
- checksum_error
- framing_error
- parity_error
- over_error
- other_error
- id: device_type
label: Device Type
type: bytes
notes: Returned by 11 00 DEVICE TYPE REQUEST
- id: software_version
label: Software Version
type: bytes
notes: "16 bytes total (MAIN+REGI+OSD+COMM MCU); per-MCU sense via 11 20 with sub-code 03..07"
- id: set_mode
label: Set Mode
type: enum
values: [user, service, factory]
- id: pole
label: Pole
type: enum
values: [normal, hinv, vinv, hvinv]
- id: all_white_mode
label: All White Mode
type: enum
values: [off, on]
- id: power_saving
label: Power Saving
type: enum
values: [off, on]
- id: picture_muting
label: Picture Muting
type: enum
values: [off, on]
- id: fh_too_high
label: FH Too High
type: enum
values: [normal, fh_too_high]
- id: over_correction
label: Over Correction
type: enum
values: [normal, over_correction]
- id: signal_stabilized
label: Signal Stabilized
type: enum
values: [instability, stability]
- id: input_channel
label: Input Channel
type: enum
values: [video, input_a, input_b, old_swer]
- id: pic_orbiting
label: Pic Orbiting
type: enum
values: [off, on]
- id: signal_request
label: Signal Request
type: enum
values: [videocvbs, videoyc, rgb, comp, hdtvypbpr, hdtvgbr, idtv, idtvntsc]
- id: fh
label: Horizontal Frequency
type: integer
notes: 4 bytes * 10 mSec
- id: fv
label: Vertical Frequency
type: integer
notes: "Hz; (DATA#21*256+DATA#22)/10"
- id: sync_level
label: Sync Level
type: enum
values: [unknown, level_2, level_3]
- id: h_c_sync
label: H/C Sync
type: enum
values: [off, negative, positive]
- id: v_sync
label: V Sync
type: enum
values: [off, negative, positive]
- id: col_sys
label: Color System
type: enum
values: [invalid, ntsc, pal, secam, ntsc443, palm, bw60, bw50]
- id: high_scan
label: High Scan
type: enum
values: [normal, int_2fh, int_2fhfv, int_edtvii, int_palplus, ext_2fh, ext_2fhfv, ext_edtvii, ext_palplus]
- id: power_state
label: Power State
type: enum
values: [off, on]
- id: power_on_delay
label: Power On Delay
type: enum
values: [off, on]
- id: bnc_old_swer
label: 5BNC Old Switcher
type: enum
values: [off, on]
- id: auto_back_ground
label: Auto Back Ground
type: enum
values: [off, on]
- id: abl_link
label: ABL Link
type: enum
values: [off, on]
- id: ir_in
label: IR In
type: enum
values: [front_rear, front, rear]
- id: osd_language
label: OSD Language
type: enum
values: [english, french, german, italian, spanish, japanese, chinese]
- id: osd_show
label: OSD Show
type: enum
values: [on, normal_off, all_off]
- id: video_signal
label: Video Signal
type: enum
values: [video, svideo]
- id: input_ab_signal
label: Input A/B Signal
type: enum
values: [video, svideo, rgb, comp, hdtvypbpr, hdtvgbr]
- id: idtv_use
label: IDTV Use
type: enum
values: [not_use, use]
- id: old_swer_channel
label: Old Switcher Channel
type: integer
notes: 00..07 / 10..17 / 20
- id: screen_type
label: Screen Type
type: enum
values: [s1, s2]
- id: color_uniformity
label: Color Uniformity
type: enum
values: [off, adjust, preset_s1, preset_s2, preset_s3]
- id: brightness_uniformity
label: Brightness Uniformity
type: enum
values: [off, adjust, preset_s1, preset_s2, preset_s3]
- id: color_temp
label: Color Temp
type: enum
values: ["9300K", "6500K", "5400K", "3200K", preset]
- id: d_picture
label: D Picture
type: enum
values: [off, on]
- id: vshift
label: V.Shift
type: enum
values: [wide, narrow]
- id: ntsc_setup
label: NTSC Setup
type: enum
values: ["0%", "7.5%"]
- id: component_format
label: Component Format
type: enum
values: [smpte_ebu_n10, betacam_7_5]
- id: video_memory
label: Video Memory
type: integer
notes: 00 OFF; 01..0A = 1..10
- id: slot_no
label: Slot Number
type: integer
notes: 00..07 = 1..8
- id: clamp
label: CLAMP
type: enum
values: [auto, song, hc, hp, trilevels]
- id: sync
label: SYNC
type: enum
values: [auto, internal, external, external_c, external_hv]
- id: sync_osc_shift
label: SYNC OSC Shift
type: enum
values: ["1", "2"]
- id: osc_int_onoff
label: OSC INT On/Off
type: enum
values: [off, on]
- id: osc_internal_pattern
label: OSC Internal Pattern
type: integer
notes: 00..07 = 1..8
- id: rom_version
label: ROM Version
type: bytes
notes: "Per-MCU (MAIN/REGI/OSD/COMM) and combined 16-byte read; sub-codes 03..07"
- id: mcu_error_status
label: MCU Error Status
type: enum
values: [off, on]
- id: protection_status
label: Protection Status
type: enum
values: [off, on]
- id: signal_act
label: Signal ACT
type: enum
values: [off, on]
- id: power_saving_act
label: Power Saving ACT
type: enum
values: [off, on]
- id: all_white_act
label: All White ACT
type: enum
values: [off, on]
- id: crt_active_time
label: CRT Active Time
type: integer
notes: Projector lamp/module cumulative active time
- id: comm_target_device_index
label: Comm Target Device Index
type: integer
- id: nvm_imem_entry_load_from
label: NVM IMEM Entry Load Source
type: integer
- id: channel_swer
label: Channel Switcher
type: integer
notes: Internal channel-switcher state
Variables
- id: baud_rate
label: Baud Rate
type: enum
values: ["38400", "19200", "9600", "4800"]
notes: Settable via OSD "Service Setting for RS422A" (projector side)
- id: project_id
label: Projector Index
type: integer
notes: Fixed at 01 (0001 hex) for VPH-G70 / D50
- id: controller_id
label: Controller Index
type: integer
notes: Fixed at 03 (per CONTROLLER index table)
- id: sub_command
label: Sub Command
type: integer
notes: Always 00 in this spec
Events
# UNRESOLVED: source describes no unsolicited notification/event stream; device is strictly
# request/response.
Macros
# UNRESOLVED: source does not enumerate multi-step macro sequences.
Safety
confirmation_required_for:
- system_select
- active_memory_write
interlocks:
- signal_not_stable
- protection_status
notes: |
USER mode picture disappearance and state changes possible when DATA WRITE COMMAND is sent
(source §2-6). SYSTEM SELECT and ACTIVE MEMORY WRITE commands take ~800 ms before return data.
SIRCS DIRECT commands require >180 ms between successive transmissions.
Notes
- Source lists several duplicate CMD2 hex codes for distinct logical functions (CMD2=
20for SOFTWARE VER / ERROR / NTSC SETUP / COLOR TEMP / D PICTURE / V.SHIFT, and CMD1=11 CMD2=20reused 5x, CMD1=13 CMD2=20reused 4x). They are listed as separate actions to preserve the source's row-by-row enumeration; on the wire the CMD2 byte alone does not disambiguate them — the controller must track which sense/select it issued. - Projector category byte (B13) is fixed at
10(CRT) for this family.80would indicate LCD,B0DMD. - All multi-byte values in sense responses are returned in a CMD1=
10, CMD2=20(ACK WITH DATA) block; the driver must parse that wrapper first. - SIRCS codes 0x0..0xF high nibble = row group, low nibble = function per the SIRCS table; controller must compute the CMD2 byte from the desired function.
Saved to `drafts/sony_vph_g70q_series.md`.
## Provenance
```yaml
source_domains:
- projector-database.com
- manualslib.com
source_urls:
- https://www.projector-database.com/pdf/SonyD50-g70-serial-port.pdf
- https://www.manualslib.com/manual/1691134/Sony-Vph-G70q.html
retrieved_at: 2026-05-04T15:15:59.741Z
last_checked_at: 2026-06-02T07:36:16.408Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T07:36:16.408Z
matched_actions: 133
action_count: 133
confidence: medium
summary: "All 133 spec actions verified against source; all CMD1/CMD2 pairs match command table; all transport parameters (baud, connector, parity, bits) present verbatim in source. (7 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "full command tables for active memory write (CMD1=32) reference many data byte formats whose exact byte-by-byte layouts are not enumerated in the source — verified as command existence only."
- "flow control not explicitly stated in source"
- "source describes no unsolicited notification/event stream; device is strictly"
- "source does not enumerate multi-step macro sequences."
- "per-MCU ROM version sub-codes (03..07) and their exact field offsets within the 16-byte response are documented in the source ROM version table but not byte-mapped here."
- "flow control (XON/XOFF or RTS/CTS) is not stated in source — wiring table shows RTS/CTS pins used, but the protocol does not specify whether software or hardware flow control is required."
- "factory baud rate is 38400 but the source does not specify which of the four rates the protocol manual was authored against."
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0