Summary
BenQ TH671ST short-throw projector supporting RS-232 serial, TCP/IP (LAN), and RS-232 via HDBaseT control. Commands are ASCII-formatted with <CR>*key=value#<CR> syntax. Supports power, source selection, audio, picture settings, and operation controls via query and write commands.
Transport
protocols:
- serial
- tcp
addressing:
port: 8000 # TCP port for RS232 via LAN (stated in source)
serial:
baud_rate: 9600 # default; selectable: 2400/4800/9600/14400/19200/38400/57600/115200
data_bits: 8
parity: none
stop_bits: 1
flow_control: none
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable
- routable
- queryable
- levelable
Actions
# All commands framed as <CR>*payload#<CR>. Payload shown verbatim in `command:`.
# Via LAN, <CR> delimiters optional (per source note).
# --- 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_query
label: Power Status Query
kind: query
command: "*pow=?#"
params: []
# --- Source Selection ---
- id: select_source
label: Select Source
kind: action
command: "*sour={source}#"
params:
- name: source
type: string
description: Source identifier (RGB, RGB2, hdmi, hdmi2, vid, svid)
- id: current_source_query
label: Current Source Query
kind: query
command: "*sour=?#"
params: []
# --- Audio Control ---
- 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_query
label: Mute Status Query
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_query
label: Volume Status Query
kind: query
command: "*vol=?#"
params: []
# --- Audio Source ---
- id: set_audio_source
label: Set Audio Source
kind: action
command: "*audiosour={source}#"
params:
- name: source
type: string
description: Audio source (off, RGB, RGB2, vid, hdmi, hdmi2)
- id: audio_source_status_query
label: Audio Source Status Query
kind: query
command: "*audiosour=?#"
params: []
# --- Picture Mode ---
- id: set_picture_mode
label: Set Picture Mode
kind: action
command: "*appmod={mode}#"
params:
- name: mode
type: string
description: Picture mode (preset, srgb, bright, cine, user1, user2, threed)
- id: picture_mode_status_query
label: Picture Mode Status Query
kind: query
command: "*appmod=?#"
params: []
# --- Picture Setting ---
- id: contrast_up
label: Contrast Up
kind: action
command: "*con=+#"
params: []
- id: contrast_down
label: Contrast Down
kind: action
command: "*con=-#"
params: []
- id: contrast_value_query
label: Contrast Value Query
kind: query
command: "*con=?#"
params: []
- id: brightness_up
label: Brightness Up
kind: action
command: "*bri=+#"
params: []
- id: brightness_down
label: Brightness Down
kind: action
command: "*bri=-#"
params: []
- id: brightness_value_query
label: Brightness Value Query
kind: query
command: "*bri=?#"
params: []
- id: color_up
label: Color Up
kind: action
command: "*color=+#"
params: []
- id: color_down
label: Color Down
kind: action
command: "*color=-#"
params: []
- id: color_value_query
label: Color Value Query
kind: query
command: "*color=?#"
params: []
- id: sharpness_up
label: Sharpness Up
kind: action
command: "*sharp=+#"
params: []
- id: sharpness_down
label: Sharpness Down
kind: action
command: "*sharp=-#"
params: []
- id: sharpness_value_query
label: Sharpness Value Query
kind: query
command: "*sharp=?#"
params: []
- id: set_color_temperature
label: Set Color Temperature
kind: action
command: "*ct={temperature}#"
params:
- name: temperature
type: string
description: Color temperature (warm, normal, cool, native)
- id: color_temperature_status_query
label: Color Temperature Status Query
kind: query
command: "*ct=?#"
params: []
# --- Aspect Ratio ---
- id: set_aspect_ratio
label: Set Aspect Ratio
kind: action
command: "*asp={ratio}#"
params:
- name: ratio
type: string
description: Aspect ratio (4:3, 16:9, 16:10, AUTO, REAL)
- id: aspect_status_query
label: Aspect Status Query
kind: query
command: "*asp=?#"
params: []
# --- Operation ---
- id: zoom_in
label: Digital Zoom In
kind: action
command: "*zoomI#"
params: []
- id: zoom_out
label: Digital Zoom Out
kind: action
command: "*zoomO#"
params: []
- id: auto_setup
label: Auto Setup
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_query
label: Brilliant Color Status Query
kind: query
command: "*BC=?#"
params: []
# --- Projector Position ---
- id: set_projector_position
label: Set Projector Position
kind: action
command: "*pp={position}#"
params:
- name: position
type: string
description: Projector position (FT, RE, RC, FC)
- id: projector_position_status_query
label: Projector Position Status Query
kind: query
command: "*pp=?#"
params: []
# --- Quick Auto Search ---
- id: quick_auto_search_on
label: Quick Auto Search On
kind: action
command: "*QAS=on#"
params: []
- id: quick_auto_search_off
label: Quick Auto Search Off
kind: action
command: "*QAS=off#"
params: []
- id: quick_auto_search_status_query
label: Quick Auto Search Status Query
kind: query
command: "*QAS=?#"
params: []
# --- Direct Power On ---
- id: direct_power_on_on
label: Direct Power On On
kind: action
command: "*directpower=on#"
params: []
- id: direct_power_on_off
label: Direct Power On Off
kind: action
command: "*directpower=off#"
params: []
- id: direct_power_on_status_query
label: Direct Power On Status Query
kind: query
command: "*directpower=?#"
params: []
# --- Signal Power On ---
- id: signal_power_on_on
label: Signal Power On On
kind: action
command: "*autopower=on#"
params: []
- id: signal_power_on_off
label: Signal Power On Off
kind: action
command: "*autopower=off#"
params: []
- id: signal_power_on_status_query
label: Signal Power On Status Query
kind: query
command: "*autopower=?#"
params: []
# --- Standby Monitor Out ---
- id: standby_monitor_out_on
label: Standby Monitor Out On
kind: action
command: "*standbymnt=on#"
params: []
- id: standby_monitor_out_off
label: Standby Monitor Out Off
kind: action
command: "*standbymnt=off#"
params: []
- id: standby_monitor_out_status_query
label: Standby Monitor Out Status Query
kind: query
command: "*standbymnt=?#"
params: []
# --- Baud Rate ---
- id: set_baud_rate
label: Set Baud Rate
kind: action
command: "*baud={rate}#"
params:
- name: rate
type: integer
description: Baud rate (2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200)
- id: baud_rate_status_query
label: Baud Rate Status Query
kind: query
command: "*baud=?#"
params: []
# --- Lamp ---
- id: lamp_hour_query
label: Lamp Hour Query
kind: query
command: "*ltim=?#"
params: []
- id: set_lamp_mode
label: Set Lamp Mode
kind: action
command: "*lampm={mode}#"
params:
- name: mode
type: string
description: Lamp mode (lnor, eco, seco)
- id: lamp_mode_status_query
label: Lamp Mode Status Query
kind: query
command: "*lampm=?#"
params: []
- id: model_name_query
label: Model Name Query
kind: query
command: "*modelname=?#"
params: []
# --- Blank ---
- id: blank_on
label: Blank On
kind: action
command: "*blank=on#"
params: []
- id: blank_off
label: Blank Off
kind: action
command: "*blank=off#"
params: []
- id: blank_status_query
label: Blank Status Query
kind: query
command: "*blank=?#"
params: []
# --- Freeze ---
- id: freeze_on
label: Freeze On
kind: action
command: "*freeze=on#"
params: []
- id: freeze_off
label: Freeze Off
kind: action
command: "*freeze=off#"
params: []
- id: freeze_status_query
label: Freeze Status Query
kind: query
command: "*freeze=?#"
params: []
# --- Menu / Navigation ---
- id: menu_on
label: Menu On
kind: action
command: "*menu=on#"
params: []
- id: menu_off
label: Menu Off
kind: action
command: "*menu=off#"
params: []
- id: up
label: Up
kind: action
command: "*up#"
params: []
- id: down
label: Down
kind: action
command: "*down#"
params: []
- id: right
label: Right
kind: action
command: "*right#"
params: []
- id: left
label: Left
kind: action
command: "*left#"
params: []
- id: enter
label: Enter
kind: action
command: "*enter#"
params: []
# --- 3D Sync ---
- id: set_3d_sync
label: Set 3D Sync
kind: action
command: "*3d={mode}#"
params:
- name: mode
type: string
description: 3D sync mode (off, auto, tb, fs, fp, sbs, da, iv)
- id: d3d_sync_status_query
label: 3D Sync Status Query
kind: query
command: "*3d=?#"
params: []
# --- Instant On ---
- id: instant_on_on
label: Instant On On
kind: action
command: "*ins=on#"
params: []
- id: instant_on_off
label: Instant On Off
kind: action
command: "*ins=off#"
params: []
- id: instant_on_status_query
label: Instant On Status Query
kind: query
command: "*ins=?#"
params: []
# --- High Altitude ---
- id: high_altitude_on
label: High Altitude Mode On
kind: action
command: "*Highaltitude=on#"
params: []
- id: high_altitude_off
label: High Altitude Mode Off
kind: action
command: "*Highaltitude=off#"
params: []
- id: high_altitude_status_query
label: High Altitude Mode Status Query
kind: query
command: "*Highaltitude=?#"
params: []
Feedbacks
- id: power_status
label: Power Status
type: enum
values: [on, off]
- id: current_source
label: Current Source
type: string
- id: mute_status
label: Mute Status
type: enum
values: [on, off]
- id: volume_status
label: Volume Status
type: integer
- id: audio_source_status
label: Audio Source Status
type: string
- id: picture_mode_status
label: Picture Mode Status
type: string
- id: contrast_value
label: Contrast Value
type: integer
- id: brightness_value
label: Brightness Value
type: integer
- id: color_value
label: Color Value
type: integer
- id: sharpness_value
label: Sharpness Value
type: integer
- id: color_temperature_status
label: Color Temperature Status
type: string
- id: aspect_status
label: Aspect Status
type: string
- id: brilliant_color_status
label: Brilliant Color Status
type: enum
values: [on, off]
- id: projector_position_status
label: Projector Position Status
type: string
- id: quick_auto_search_status
label: Quick Auto Search Status
type: enum
values: [on, off]
- id: direct_power_on_status
label: Direct Power On Status
type: enum
values: [on, off]
- id: signal_power_on_status
label: Signal Power On Status
type: enum
values: [on, off]
- id: standby_monitor_out_status
label: Standby Monitor Out Status
type: enum
values: [on, off]
- id: baud_rate_status
label: Baud Rate Status
type: integer
- id: lamp_hours
label: Lamp Hours
type: integer
- id: lamp_mode_status
label: Lamp Mode Status
type: string
- id: model_name
label: Model Name
type: string
- id: blank_status
label: Blank Status
type: enum
values: [on, off]
- id: freeze_status
label: Freeze Status
type: enum
values: [on, off]
- id: d3d_sync_status
label: 3D Sync Status
type: string
- id: instant_on_status
label: Instant On Status
type: enum
values: [on, off]
- id: high_altitude_status
label: High Altitude Mode Status
type: enum
values: [on, off]
Variables
# UNRESOLVED: no standalone settable parameters beyond action params
Events
# UNRESOLVED: no unsolicited event definitions in source
Macros
# UNRESOLVED: no multi-step macro sequences defined in source
Safety
confirmation_required_for: []
interlocks: []
Notes
- Commands accept uppercase, lowercase, and mixed case.
- When controlling via LAN (TCP), commands work with or without
<CR>delimiters. - Echo responses:
Illegal format(bad syntax),Unsupported item(invalid for model),Block item(cannot execute under current condition). - Standby power requirement: 0.5W minimum for RS232 control to work.
- Baud rate is configurable via
*baud=XXXX#command. - RS232 via HDBaseT uses identical serial settings (baud/data/parity/stop/flow) over the HDBaseT physical layer; same command set applies.
- Source document version: 1.01-C.
Upgrade done. Added `command:` payloads to all 49 existing actions (were missing = not implementable), appended 27 read/query actions as `kind: query`, added 2 missing standby-monitor-out write actions. Preserved all existing IDs/shapes + feedbacks. Added HDBaseT serial note.
## Provenance
```yaml
source_domains:
- esupportdownload.benq.com
- files.vivid-illumination.com
- benq.com
- manuals.plus
source_urls:
- "https://esupportdownload.benq.com/esupport/Projector/Control%20Protocols/BS5050/RS232%20Control%20Guide_0_Windows10_Windows7_Windows8.pdf"
- http://files.vivid-illumination.com/downloads/projector_user_manual/BenQ_TH671ST_User_Manual.pdf
- https://esupportdownload.benq.com/esupport/PROJECTOR/UserManual/TH671ST/TH671ST_UM_EN_230426092526.pdf
- https://www.benq.com/en-us/support/downloads-faq/products/projector/th671st/manual.html
- https://manuals.plus/asin/B076MHKTFH.pdf
retrieved_at: 2026-05-14T12:24:34.436Z
last_checked_at: 2026-07-21T21:36:49.738Z
```
## Verification Summary
```yaml
verdict: verified
checked_at: 2026-07-21T21:36:49.738Z
matched_actions: 78
action_count: 78
confidence: medium
summary: "All 78 spec actions match literal command tokens in source with correct parameter shapes; transport parameters (port 8000, baud rates 2400-115200) verified verbatim; spec covers source command catalogue comprehensively. (5 unresolved item(s) noted in Known Gaps.)"
```
## Known Gaps
```yaml
- "HDBaseT exposed as serial-over-HDBaseT (same protocol, different physical layer); source selection inputs limited to RGB/RGB2/hdmi/hdmi2/vid/svid on this model"
- "no standalone settable parameters beyond action params"
- "no unsolicited event definitions in source"
- "no multi-step macro sequences defined in source"
- "Lamp2 Hour, network standby, microphone standby, remote receiver, USB, wireless, HDBaseT source-select, DisplayPort, broadcasting, AMX discovery, mac address, projection login code, lamp saver commands marked \"No\" (not supported) on this model"
```
---
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0