Summary
Professional installation projector supporting RS-232 serial and TCP/IP control. Document covers PU9730/PW9620/PX9710 models; these share the same RS-232 command protocol. Commands are ASCII-formatted with <CR>*command=value#<CR> syntax. Supported: power, source selection, picture mode/mode settings, lamp control, lens positioning, 3D, audio, mute/volume, remote receiver, standby modes, networking, and discovery. RS232 control also tunneled via LAN (TCP port 8000) or HDBaseT.
Transport
protocols:
- serial
- tcp
serial:
baud_rate: null # UNRESOLVED: source lists 9600/14400/19200/38400/57600/115200 bps; no single default stated
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
addressing:
port: 8000 # TCP port for RS232-via-LAN control
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable
- routable
- queryable
- levelable
Actions
# Command framing: <CR>*<opcode>=<value>#<CR>. Commands case-insensitive.
# Values below are the core payload (opcode=value); integrator wraps with <CR> framing.
# Per source: over LAN the <CR> delimiters are optional.
# --- Power ---
- id: power_on
label: Power On
kind: action
command: "*pow=on#"
params: []
- id: power_off
label: Power Off
kind: action
command: "*pow=off#"
params: []
- id: power_status
label: Power Status
kind: query
command: "*pow=?#"
params: []
# --- Source Selection ---
- id: select_source
label: Select Source
kind: action
command: "*sour={source}#"
params:
- name: source
type: string
description: "One of RGB, RGB2, YPbr, ypbr2, dviA, dvid, hdmi, hdmi2, vid, svid, network, usbdisplay, usbreader, wireless, dp, hdconnect, hdbaset"
- id: current_source
label: Current Source
kind: query
command: "*sour=?#"
params: []
# --- Audio Control (mute / volume / mic) ---
- id: mute_on
label: Mute On
kind: action
command: "*mute=on#"
params: []
- id: mute_off
label: Mute Off
kind: action
command: "*mute=off#"
params: []
- id: mute_status
label: Mute Status
kind: query
command: "*mute=?#"
params: []
- id: volume_up
label: Volume Up
kind: action
command: "*vol=+#"
params: []
- id: volume_down
label: Volume Down
kind: action
command: "*vol=-#"
params: []
- id: volume_status
label: Volume Status
kind: query
command: "*vol=?#"
params: []
- id: mic_volume_up
label: Microphone Volume Up
kind: action
command: "*micvol=+#"
params: []
- id: mic_volume_down
label: Microphone Volume Down
kind: action
command: "*micvol=-#"
params: []
- id: mic_volume_status
label: Microphone Volume Status
kind: query
command: "*micvol=?#"
params: []
# --- Audio Source ---
- id: audio_source
label: Audio Source
kind: action
command: "*audiosour={source}#"
params:
- name: source
type: string
description: "One of off, RGB, RGB2, vid, ypbr, hdmi, hdmi2"
- id: audio_source_status
label: Audio Source Status
kind: query
command: "*audiosour=?#"
params: []
# --- Picture Mode ---
- id: picture_mode
label: Picture Mode
kind: action
command: "*appmod={mode}#"
params:
- name: mode
type: string
description: "One of dynamic, preset, srgb, bright, livingroom, game, cine, std, user1, user2, user3, isfday, isfnight, threed"
# --- Picture Settings ---
- id: contrast_adjust
label: Contrast Adjust
kind: action
command: "*con={delta}#"
params:
- name: delta
type: string
description: "\"+\" or \"-\""
- id: contrast_value
label: Contrast Value
kind: query
command: "*con=?#"
params: []
- id: brightness_adjust
label: Brightness Adjust
kind: action
command: "*bri={delta}#"
params:
- name: delta
type: string
description: "\"+\" or \"-\""
- id: brightness_value
label: Brightness Value
kind: query
command: "*bri=?#"
params: []
- id: color_adjust
label: Color Adjust
kind: action
command: "*color={delta}#"
params:
- name: delta
type: string
description: "\"+\" or \"-\""
- id: color_value
label: Color Value
kind: query
command: "*color=?#"
params: []
- id: sharpness_adjust
label: Sharpness Adjust
kind: action
command: "*sharp={delta}#"
params:
- name: delta
type: string
description: "\"+\" or \"-\""
- id: sharpness_value
label: Sharpness Value
kind: query
command: "*sharp=?#"
params: []
- id: color_temperature
label: Color Temperature
kind: action
command: "*ct={mode}#"
params:
- name: mode
type: string
description: "One of warmer, warm, normal, cool, cooler, native"
- id: color_temperature_status
label: Color Temperature Status
kind: query
command: "*ct=?#"
params: []
# --- Aspect Ratio ---
- id: aspect_ratio
label: Aspect Ratio
kind: action
command: "*asp={ratio}#"
params:
- name: ratio
type: string
description: "One of 4:3, 16:9, 16:10, AUTO, REAL, LBOX, WIDE, ANAM, 5:4, 1.88:1, 2.35:1"
- id: aspect_status
label: Aspect Status
kind: query
command: "*asp=?#"
params: []
# --- Zoom / Auto ---
- id: digital_zoom_in
label: Digital Zoom In
kind: action
command: "*zoomI#"
params: []
- id: digital_zoom_out
label: Digital Zoom Out
kind: action
command: "*zoomO#"
params: []
- id: auto_align
label: Auto
kind: action
command: "*auto#"
params: []
# --- Brilliant Color ---
- id: brilliant_color_on
label: Brilliant Color On
kind: action
command: "*BC=on#"
params: []
- id: brilliant_color_off
label: Brilliant Color Off
kind: action
command: "*BC=off#"
params: []
- id: brilliant_color_status
label: Brilliant Color Status
kind: query
command: "*BC=?#"
params: []
# --- Projector Position ---
- id: projector_position
label: Projector Position
kind: action
command: "*pp={position}#"
params:
- name: position
type: string
description: "One of FT, RE, RC, FC, UF, DF"
- id: projector_position_status
label: Projector Position Status
kind: query
command: "*pp=?#"
params: []
# --- Operation Settings ---
- id: quick_auto_search
label: Quick Auto Search
kind: action
command: "*QAS={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: direct_power_on
label: Direct Power On
kind: action
command: "*directpower={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: direct_power_on_status
label: Direct Power On Status
kind: query
command: "*directpower=?#"
params: []
- id: signal_power_on
label: Signal Power On
kind: action
command: "*autopower={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: signal_power_on_status
label: Signal Power On Status
kind: query
command: "*autopower=?#"
params: []
# --- Standby Settings ---
- id: standby_settings
label: Standby Settings
kind: action
command: "*standbynet={mode}#"
params:
- name: mode
type: string
description: "One of standard, eco, network, on, off"
- id: standby_settings_status
label: Standby Settings Network Status
kind: query
command: "*standbynet=?#"
params: []
- id: standby_microphone
label: Standby Settings Microphone
kind: action
command: "*standbymic={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: standby_microphone_status
label: Standby Settings Microphone Status
kind: query
command: "*standbymic=?#"
params: []
- id: standby_monitor_out
label: Standby Settings Monitor Out
kind: action
command: "*standbymnt={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: standby_monitor_out_status
label: Standby Settings Monitor Out Status
kind: query
command: "*standbymnt=?#"
params: []
# --- Baud Rate ---
- id: baud_rate_set
label: Baud Rate Set
kind: action
command: "*baud={rate}#"
params:
- name: rate
type: integer
description: "2400, 4800, 9600, 14400, 19200, 38400, 57600, or 115200"
- id: baud_rate_status
label: Baud Rate Status
kind: query
command: "*baud=?#"
params: []
# --- Lamp ---
- id: lamp_hour_status
label: Lamp Hour Status
kind: query
command: "*ltim=?#"
params: []
- id: lamp2_hour_status
label: Lamp2 Hour Status
kind: query
command: "*ltim2=?#"
params: []
- id: lamp_hour_reset
label: Lamp Hour Reset
kind: action
command: "*ltim=reset#"
params: []
- id: lamp2_hour_reset
label: Lamp2 Hour Reset
kind: action
command: "*ltim2=reset#"
params: []
- id: lamp_mode
label: Lamp Mode
kind: action
command: "*lampm={mode}#"
params:
- name: mode
type: string
description: "One of lnor, eco, seco, seco2, seco3, dualbr, dualre, single, singleeco"
- id: lamp_mode_status
label: Lamp Mode Status
kind: query
command: "*lampm=?#"
params: []
- id: lamp_dual_select
label: Lamp Dual Select
kind: action
command: "*lammd={mode}#"
params:
- name: mode
type: string
description: "One of dual, num1l, num2, single"
- id: lamp_status
label: Lamp Status
kind: query
command: "*lammd=?#"
params: []
# --- Model Name ---
- id: model_name
label: Model Name
kind: query
command: "*modelname=?#"
params: []
# --- Blank / Freeze / Menu ---
- id: blank_screen
label: Blank Screen
kind: action
command: "*blank={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: blank_status
label: Blank Status
kind: query
command: "*blank=?#"
params: []
- id: freeze
label: Freeze
kind: action
command: "*freeze={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: freeze_status
label: Freeze Status
kind: query
command: "*freeze=?#"
params: []
- id: menu
label: Menu
kind: action
command: "*menu={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: menu_status
label: Menu Status
kind: query
command: "*menu=?#"
params: []
# --- Navigation Keys ---
- id: key_up
label: Key Up
kind: action
command: "*up#"
params: []
- id: key_down
label: Key Down
kind: action
command: "*down#"
params: []
- id: key_right
label: Key Right
kind: action
command: "*right#"
params: []
- id: key_left
label: Key Left
kind: action
command: "*left#"
params: []
- id: key_enter
label: Key Enter
kind: action
command: "*enter#"
params: []
# --- 3D Sync ---
- id: sync_3d
label: 3D Sync
kind: action
command: "*3d={mode}#"
params:
- name: mode
type: string
description: "One of off, auto, tb, fs, fp, sbs, da, iv, 2d3d, nvidia"
- id: sync_3d_status
label: 3D Sync Status
kind: query
command: "*3d=?#"
params: []
# --- Remote ---
- id: remote_set
label: Remote Set
kind: action
command: "*rrset=0#"
params: []
- id: remote_set_status
label: Remote Set Status
kind: query
command: "*rrset=?#"
params: []
- id: remote_receiver
label: Remote Receiver
kind: action
command: "*rr={position}#"
params:
- name: position
type: string
description: "One of fr, f, r, t, tf, tr"
- id: remote_receiver_status
label: Remote Receiver Status
kind: query
command: "*rr=?#"
params: []
# --- Instant On ---
- id: instant_on
label: Instant On
kind: action
command: "*ins={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: instant_on_status
label: Instant On Status
kind: query
command: "*ins=?#"
params: []
# --- Lamp Saver ---
- id: lamp_saver_mode
label: Lamp Saver Mode
kind: action
command: "*lpsaver={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: lamp_saver_mode_status
label: Lamp Saver Mode Status
kind: query
command: "*lpsaver=?#"
params: []
# --- Projection Log In Code ---
- id: projection_log_in_code
label: Projection Log In Code
kind: action
command: "*prjlogincode={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: projection_log_in_code_status
label: Projection Log In Code Status
kind: query
command: "*prjlogincode=?#"
params: []
# --- Broadcasting ---
- id: broadcasting
label: Broadcasting
kind: action
command: "*broadcasting={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: broadcasting_status
label: Broadcasting Status
kind: query
command: "*broadcasting=?#"
params: []
# --- AMX Device Discovery ---
- id: amx_device_discovery
label: AMX Device Discovery
kind: action
command: "*amxdd={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: amx_device_discovery_status
label: AMX Device Discovery Status
kind: query
command: "*amxdd=?#"
params: []
# --- Mac Address ---
- id: mac_address
label: Mac Address
kind: query
command: "*macaddr=?#"
params: []
# --- Trigger ---
- id: trigger
label: Trigger
kind: action
command: "*trigger={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: trigger_status
label: Trigger Status
kind: query
command: "*trigger=?#"
params: []
# --- High Altitude ---
- id: high_altitude_mode
label: High Altitude Mode
kind: action
command: "*Highaltitude={state}#"
params:
- name: state
type: string
description: "\"on\" or \"off\""
- id: high_altitude_mode_status
label: High Altitude Mode Status
kind: query
command: "*Highaltitude=?#"
params: []
# --- Error Code ---
- id: error_code_report
label: Error Code Report
kind: query
command: "*error=report#"
params: []
# --- Serial Number ---
- id: serial_number_set
label: Serial Number Code1
kind: action
command: "V99N1234"
params: []
- id: serial_number_query
label: Serial Number Query
kind: query
command: "V99N0000"
params: []
# --- Lens ---
- id: lens_shift
label: Lens Shift
kind: action
command: "*lst={direction}#"
params:
- name: direction
type: string
description: "up, down, left, right"
- id: lens_focus
label: Lens Focus
kind: action
command: "*focus={delta}#"
params:
- name: delta
type: string
description: "\"+\" or \"-\""
- id: lens_zoom
label: Lens Zoom
kind: action
command: "*zoom={delta}#"
params:
- name: delta
type: string
description: "\"+\" or \"-\""
- id: keystone_adjust
label: Keystone Adjust
kind: action
command: "*keyst={delta}#"
params:
- name: delta
type: string
description: "\"+\" or \"-\""
- id: keystone_status
label: Keystone Vertical Status
kind: query
command: "*keyst=?#"
params: []
- id: lens_load
label: Lens Load Memory
kind: action
command: "*lensload={memory}#"
params:
- name: memory
type: string
description: "m1 through m10"
- id: lens_save
label: Lens Save Memory
kind: action
command: "*lenssave={memory}#"
params:
- name: memory
type: string
description: "m1 through m10"
- id: lens_reset
label: Lens Reset to Center
kind: action
command: "*lensreset=center#"
params: []
# --- Documented but not implemented (NA) on this family ---
# Source lists these as functions with ASCII = "NA" and Support = NO.
- id: autosync
label: AutoSync
kind: action
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: get_filter_timer
label: Get Filter Timer
kind: query
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: system_reset
label: System Reset
kind: action
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: get_fw_version
label: Get Firmware Version
kind: query
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: get_tint
label: Get Tint
kind: query
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: set_tint
label: Set Tint
kind: action
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: get_keystone_value
label: Get Keystone Value
kind: query
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: set_keystone_value
label: Set Keystone Value
kind: action
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: get_messaging
label: Get Messaging
kind: query
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
- id: set_messaging
label: Set Messaging
kind: action
command: null # UNRESOLVED: source documents no payload (ASCII = NA), support NO
params: []
Feedbacks
- id: power_state
type: enum
values: [on, off]
- id: current_source
type: string
- id: mute_state
type: enum
values: [on, off]
- id: volume_level
type: integer
- id: mic_volume_level
type: integer
- id: picture_mode
type: string
- id: contrast_value
type: integer
- id: brightness_value
type: integer
- id: color_value
type: integer
- id: sharpness_value
type: integer
- id: color_temperature
type: string
- id: aspect_ratio
type: string
- id: brilliant_color_state
type: enum
values: [on, off]
- id: projector_position
type: string
- id: quick_auto_search_state
type: enum
values: [on, off]
- id: direct_power_on_state
type: enum
values: [on, off]
- id: signal_power_on_state
type: enum
values: [on, off]
- id: standby_settings_state
type: string
- id: standby_microphone_state
type: enum
values: [on, off]
- id: standby_monitor_out_state
type: enum
values: [on, off]
- id: baud_rate
type: integer
- id: lamp_hour
type: integer
- id: lamp2_hour
type: integer
- id: lamp_mode
type: string
- id: lamp_status
type: string
- id: model_name
type: string
- id: blank_state
type: enum
values: [on, off]
- id: freeze_state
type: enum
values: [on, off]
- id: menu_state
type: enum
values: [on, off]
- id: sync_3d_state
type: string
- id: remote_set_state
type: string
- id: remote_receiver_state
type: string
- id: instant_on_state
type: enum
values: [on, off]
- id: lamp_saver_mode_state
type: enum
values: [on, off]
- id: projection_log_in_code_state
type: enum
values: [on, off]
- id: broadcasting_state
type: enum
values: [on, off]
- id: amx_device_discovery_state
type: enum
values: [on, off]
- id: mac_address
type: string
- id: serial_number
type: string
- id: trigger_state
type: enum
values: [on, off]
- id: high_altitude_mode_state
type: enum
values: [on, off]
- id: error_code
type: string
- id: keystone_value
type: integer
- id: audio_source_state
type: string
Variables
# UNRESOLVED: source documents discrete actions; no settable parameters as separate variables identified
Events
# UNRESOLVED: no unsolicited event notifications documented in source
Macros
# UNRESOLVED: no multi-step macro sequences documented in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source contains no safety warnings or interlock procedures.
# Note: source states commands only function when standby power is 0.5W or higher
# and a supported baud rate is set on the projector.
Notes
Command format: <CR>*command=value#<CR> (e.g., <CR>*pow=on#<CR>). Commands are case-insensitive. Error responses: "Illegal format" (malformed command), "Unsupported item" (valid command not supported by model), "Block item" (command blocked under current condition).
Three physical control paths documented, all using the same command set:
- RS232 serial (D-Sub 9-pin, straight cable) — baud 9600/14400/19200/38400/57600/115200 bps (check OSD for active rate; no single default stated), 8 data bits, no parity, 1 stop bit, no flow control.
- RS232 via LAN (RJ45) — TCP port 8000. Commands work with or without
<CR>delimiters over LAN; behavior identical to serial. - RS232 via HDBaseT (RJ45) — serial tunneled through HDBaseT-compatible device using same serial settings.
Standby power must be 0.5W or higher for RS-232 control to function. Available features vary by model, input sources, and settings.
RS232 pin assignment (D-Sub 9): pin 2 = RXD, pin 3 = TXD, pin 5 = GND, pin 7 = RTS, pin 8 = CTS; pins 1/4/6/9 = NC.
Source support column: many commands marked NO (not functional on PU9730/PW9620/PX9710 family) — including mute, volume, mic volume, audio source selection, most picture modes, brilliant color, signal power on, standby microphone/monitor out, remote set/receiver, instant on, lamp saver, projection log in code, broadcasting, AMX discovery, mac address, serial number, and several sources (HDMI 2, DVI-A, Network, USB Display/Reader, Wireless, DisplayPort, HD Connect). These remain documented as actions for family-wide coverage; integrators should verify per-model support.
Document version: 1.01-S.
Upgrade done. Key adds:
- **Transport**: added `tcp` + port 8000 (LAN control path)
- **~36 new actions**: mute×3, volume×3, micvol×3, brilliant color×3, autopower×2, standbymic×2, standbymnt×2, lamp2 reset, remote set×2, remote receiver×2, instant on×2, lamp saver×2, prjlogincode×2, broadcasting×2, amx×2, mac address, serial num×2, plus 10 NA documented functions
- **`command:` payloads** verbatim on every action w/ documented opcode
- **Feedbacks**: added mic_volume, serial_number; kept all existing
Existing IDs/shapes preserved. Nothing deleted.
## Provenance
```yaml
source_domains:
- benq.eu
- esupportdownload.benq.com
- manualslib.com
source_urls:
- https://www.benq.eu/content/dam/bb/en/product/projector/professional-installation/pu9730/quick-start-guide/pu9730-rs232-control-guide-0-windows7-windows8-winxp.pdf
- "https://esupportdownload.benq.com/esupport/Projector/Control%20Protocols/PU9730/PU9730_RS232%20Control%20Guide_0_Windows7_Windows8_WinXP.pdf"
- https://www.manualslib.com/manual/1512826/Benq-Pu9730.html
retrieved_at: 2026-04-29T15:27:53.965Z
last_checked_at: 2026-10-01T22:15:39.391Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-10-01T22:15:39.391Z
matched_actions: 112
action_count: 112
confidence: medium
summary: "All 112 spec actions have literal command opcodes present in the refined source command table; transport parameters (baud, 8/N/1, port 8000) verbatim. (10 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "source titled \"PU9730/PW9620/PX9710\" — input called \"P-Series\"; mapping inferred from prior attempt notes"
- "source lists 9600/14400/19200/38400/57600/115200 bps; no single default stated"
- "source documents no payload (ASCII = NA), support NO"
- "source documents discrete actions; no settable parameters as separate variables identified"
- "no unsolicited event notifications documented in source"
- "no multi-step macro sequences documented in source"
- "source contains no safety warnings or interlock procedures."
- "specific model-to-command support mapping not provided; support column reflects general PU9730/PW9620/PX9710 family"
- "firmware version compatibility not stated in source"
- "single default baud rate not stated; OSD-dependent"
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0