Summary

BenQ MH680 and TH680 home entertainment projectors. Control via RS-232 serial or TCP/IP (port 8000). Commands wrapped in <CR>*cmd=value#<CR> syntax. No authentication required.

Transport

protocols:
  - serial
  - tcp
addressing:
  port: 8000  # stated: "Input 8000 in the TCP port # field"
serial:
  baud_rate: null  # UNRESOLVED: baud rate selectable via command (*baud=), not fixed
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: no auth procedure in source

Traits

- powerable  # pow=on/off commands present
- queryable  # pow=?, sour=?, mute=?, vol=?, etc. present
- routable    # source selection commands present
- levelable  # vol+/-, bri+/-, con+/-, color+/-, sharp+/- present

Actions

- id: power_on
  label: Power On
  kind: action
  params: []
  command: "<CR>*pow=on#<CR>"

- id: power_off
  label: Power Off
  kind: action
  params: []
  command: "<CR>*pow=off#<CR>"

- id: sour_rgb
  label: Select Computer/YPbPr
  kind: action
  params: []
  command: "<CR>*sour=RGB#<CR>"

- id: sour_rgb2
  label: Select Computer 2/YPbPr2
  kind: action
  params: []
  command: "<CR>*sour=RGB2#<CR>"

- id: sour_hdmi
  label: Select HDMI/MHL
  kind: action
  params: []
  command: "<CR>*sour=hdmi#<CR>"

- id: sour_hdmi2
  label: Select HDMI 2/MHL2
  kind: action
  params: []
  command: "<CR>*sour=hdmi2#<CR>"

- id: sour_vid
  label: Select Composite
  kind: action
  params: []
  command: "<CR>*sour=vid#<CR>"

- id: sour_svid
  label: Select S-Video
  kind: action
  params: []
  command: "<CR>*sour=svid#<CR>"

- id: mute_on
  label: Mute On
  kind: action
  params: []
  command: "<CR>*mute=on#<CR>"

- id: mute_off
  label: Mute Off
  kind: action
  params: []
  command: "<CR>*mute=off#<CR>"

- id: vol_up
  label: Volume Up
  kind: action
  params: []
  command: "<CR>*vol=+#<CR>"

- id: vol_down
  label: Volume Down
  kind: action
  params: []
  command: "<CR>*vol=-#<CR>"

- id: audiosour_off
  label: Audio Pass Through Off
  kind: action
  params: []
  command: "<CR>*audiosour=off#<CR>"

- id: audiosour_rgb
  label: Audio-Computer1
  kind: action
  params: []
  command: "<CR>*audiosour=RGB#<CR>"

- id: audiosour_rgb2
  label: Audio-Computer2
  kind: action
  params: []
  command: "<CR>*audiosour=RGB2#<CR>"

- id: audiosour_vid
  label: Audio-Video/S-Video
  kind: action
  params: []
  command: "<CR>*audiosour=vid#<CR>"

- id: audiosour_hdmi
  label: Audio-HDMI
  kind: action
  params: []
  command: "<CR>*audiosour=hdmi#<CR>"

- id: audiosour_hdmi2
  label: Audio-HDMI2
  kind: action
  params: []
  command: "<CR>*audiosour=hdmi2#<CR>"

- id: appmod_presentation
  label: Presentation Mode
  kind: action
  params: []
  command: "<CR>*appmod=preset#<CR>"

- id: appmod_srgb
  label: sRGB Mode
  kind: action
  params: []
  command: "<CR>*appmod=srgb#<CR>"

- id: appmod_bright
  label: Bright Mode
  kind: action
  params: []
  command: "<CR>*appmod=bright#<CR>"

- id: appmod_cinema
  label: Cinema Mode
  kind: action
  params: []
  command: "<CR>*appmod=cine#<CR>"

- id: appmod_user1
  label: User1 Mode
  kind: action
  params: []
  command: "<CR>*appmod=user1#<CR>"

- id: appmod_user2
  label: User2 Mode
  kind: action
  params: []
  command: "<CR>*appmod=user2#<CR>"

- id: appmod_threed
  label: 3D Mode
  kind: action
  params: []
  command: "<CR>*appmod=threed#<CR>"

- id: con_up
  label: Contrast Up
  kind: action
  params: []
  command: "<CR>*con=+#<CR>"

- id: con_down
  label: Contrast Down
  kind: action
  params: []
  command: "<CR>*con=-#<CR>"

- id: bri_up
  label: Brightness Up
  kind: action
  params: []
  command: "<CR>*bri=+#<CR>"

- id: bri_down
  label: Brightness Down
  kind: action
  params: []
  command: "<CR>*bri=-#<CR>"

- id: color_up
  label: Color Up
  kind: action
  params: []
  command: "<CR>*color=+#<CR>"

- id: color_down
  label: Color Down
  kind: action
  params: []
  command: "<CR>*color=-#<CR>"

- id: sharp_up
  label: Sharpness Up
  kind: action
  params: []
  command: "<CR>*sharp=+#<CR>"

- id: sharp_down
  label: Sharpness Down
  kind: action
  params: []
  command: "<CR>*sharp=-#<CR>"

- id: ct_warm
  label: Color Temperature-Warm
  kind: action
  params: []
  command: "<CR>*ct=warm#<CR>"

- id: ct_normal
  label: Color Temperature-Normal
  kind: action
  params: []
  command: "<CR>*ct=normal#<CR>"

- id: ct_cool
  label: Color Temperature-Cool
  kind: action
  params: []
  command: "<CR>*ct=cool#<CR>"

- id: ct_native
  label: Color Temperature-Lamp Native
  kind: action
  params: []
  command: "<CR>*ct=native#<CR>"

- id: asp_4x3
  label: Aspect 4:3
  kind: action
  params: []
  command: "<CR>*asp=4:3#<CR>"

- id: asp_16x9
  label: Aspect 16:9
  kind: action
  params: []
  command: "<CR>*asp=16:9#<CR>"

- id: asp_16x10
  label: Aspect 16:10
  kind: action
  params: []
  command: "<CR>*asp=16:10#<CR>"

- id: asp_auto
  label: Aspect Auto
  kind: action
  params: []
  command: "<CR>*asp=AUTO#<CR>"

- id: asp_real
  label: Aspect Real
  kind: action
  params: []
  command: "<CR>*asp=REAL#<CR>"

- id: zoom_in
  label: Digital Zoom In
  kind: action
  params: []
  command: "<CR>*zoomI#<CR>"

- id: zoom_out
  label: Digital Zoom Out
  kind: action
  params: []
  command: "<CR>*zoomO#<CR>"

- id: auto
  label: Auto Adjust
  kind: action
  params: []
  command: "<CR>*auto#<CR>"

- id: bc_on
  label: Brilliant Color On
  kind: action
  params: []
  command: "<CR>*BC=on#<CR>"

- id: bc_off
  label: Brilliant Color Off
  kind: action
  params: []
  command: "<CR>*BC=off#<CR>"

- id: pp_ft
  label: Projector Position-Front Table
  kind: action
  params: []
  command: "<CR>*pp=FT#<CR>"

- id: pp_re
  label: Projector Position-Rear Table
  kind: action
  params: []
  command: "<CR>*pp=RE#<CR>"

- id: pp_rc
  label: Projector Position-Rear Ceiling
  kind: action
  params: []
  command: "<CR>*pp=RC#<CR>"

- id: pp_fc
  label: Projector Position-Front Ceiling
  kind: action
  params: []
  command: "<CR>*pp=FC#<CR>"

- id: qas_on
  label: Quick Auto Search On
  kind: action
  params: []
  command: "<CR>*QAS=on#<CR>"

- id: qas_off
  label: Quick Auto Search Off
  kind: action
  params: []
  command: "<CR>*QAS=off#<CR>"

- id: directpower_on
  label: Direct Power On On
  kind: action
  params: []
  command: "<CR>*directpower=on#<CR>"

- id: directpower_off
  label: Direct Power On Off
  kind: action
  params: []
  command: "<CR>*directpower=off#<CR>"

- id: autopower_on
  label: Signal Power On On
  kind: action
  params: []
  command: "<CR>*autopower=on#<CR>"

- id: autopower_off
  label: Signal Power On Off
  kind: action
  params: []
  command: "<CR>*autopower=off#<CR>"

- id: standbymnt_on
  label: Standby Monitor Out On
  kind: action
  params: []
  command: "<CR>*standbymnt=on#<CR>"

- id: standbymnt_off
  label: Standby Monitor Out Off
  kind: action
  params: []
  command: "<CR>*standbymnt=off#<CR>"

- id: baud_write
  label: Set Baud Rate
  kind: action
  params:
    - name: rate
      type: integer
      description: Baud rate (2400/4800/9600/14400/19200/38400/57600/115200)
  command: "<CR>*baud={rate}#<CR>"

- id: lampm_normal
  label: Lamp Mode Normal
  kind: action
  params: []
  command: "<CR>*lampm=lnor#<CR>"

- id: lampm_eco
  label: Lamp Mode Eco
  kind: action
  params: []
  command: "<CR>*lampm=eco#<CR>"

- id: lampm_seco
  label: Lamp Mode SmartEco
  kind: action
  params: []
  command: "<CR>*lampm=seco#<CR>"

- id: blank_on
  label: Blank On
  kind: action
  params: []
  command: "<CR>*blank=on#<CR>"

- id: blank_off
  label: Blank Off
  kind: action
  params: []
  command: "<CR>*blank=off#<CR>"

- id: freeze_on
  label: Freeze On
  kind: action
  params: []
  command: "<CR>*freeze=on#<CR>"

- id: freeze_off
  label: Freeze Off
  kind: action
  params: []
  command: "<CR>*freeze=off#<CR>"

- id: menu_on
  label: Menu On
  kind: action
  params: []
  command: "<CR>*menu=on#<CR>"

- id: menu_off
  label: Menu Off
  kind: action
  params: []
  command: "<CR>*menu=off#<CR>"

- id: up
  label: Up
  kind: action
  params: []
  command: "<CR>*up#<CR>"

- id: down
  label: Down
  kind: action
  params: []
  command: "<CR>*down#<CR>"

- id: right
  label: Right
  kind: action
  params: []
  command: "<CR>*right#<CR>"

- id: left
  label: Left
  kind: action
  params: []
  command: "<CR>*left#<CR>"

- id: enter
  label: Enter
  kind: action
  params: []
  command: "<CR>*enter#<CR>"

- id: 3d_off
  label: 3D Sync Off
  kind: action
  params: []
  command: "<CR>*3d=off#<CR>"

- id: 3d_auto
  label: 3D Auto
  kind: action
  params: []
  command: "<CR>*3d=auto#<CR>"

- id: 3d_tb
  label: 3D Sync TopBottom
  kind: action
  params: []
  command: "<CR>*3d=tb#<CR>"

- id: 3d_fs
  label: 3D Sync Frame Sequential
  kind: action
  params: []
  command: "<CR>*3d=fs#<CR>"

- id: 3d_fp
  label: 3D Framepacking
  kind: action
  params: []
  command: "<CR>*3d=fp#<CR>"

- id: 3d_sbs
  label: 3D Side by Side
  kind: action
  params: []
  command: "<CR>*3d=sbs#<CR>"

- id: 3d_da
  label: 3D Inverter Disable
  kind: action
  params: []
  command: "<CR>*3d=da#<CR>"

- id: 3d_iv
  label: 3D Inverter
  kind: action
  params: []
  command: "<CR>*3d=iv#<CR>"

- id: ins_on
  label: Instant On On
  kind: action
  params: []
  command: "<CR>*ins=on#<CR>"

- id: ins_off
  label: Instant On Off
  kind: action
  params: []
  command: "<CR>*ins=off#<CR>"

- id: highaltitude_on
  label: High Altitude Mode On
  kind: action
  params: []
  command: "<CR>*Highaltitude=on#<CR>"

- id: highaltitude_off
  label: High Altitude Mode Off
  kind: action
  params: []
  command: "<CR>*Highaltitude=off#<CR>"

# === Commands documented in source but not previously enumerated ===
# Every literal *...# appears verbatim in the refined source command table.

- id: standbynet_on
  label: Network standby on
  kind: action
  params: []
  command: "<CR>*standbynet=on#<CR>"

- id: standbynet_off
  label: Network standby off
  kind: action
  params: []
  command: "<CR>*standbynet=off#<CR>"

- id: standbynet_query
  label: Query network standby state
  kind: query
  params: []
  command: "<CR>*standbynet=?#<CR>"

- id: standbymic_on
  label: Microphone standby on
  kind: action
  params: []
  command: "<CR>*standbymic=on#<CR>"

- id: standbymic_off
  label: Microphone standby off
  kind: action
  params: []
  command: "<CR>*standbymic=off#<CR>"

- id: standbymic_query
  label: Query microphone standby state
  kind: query
  params: []
  command: "<CR>*standbymic=?#<CR>"

- id: rr_fr
  label: Remote Receiver — Front+Rear
  kind: action
  params: []
  command: "<CR>*rr=fr#<CR>"

- id: rr_f
  label: Remote Receiver — Front
  kind: action
  params: []
  command: "<CR>*rr=f#<CR>"

- id: rr_r
  label: Remote Receiver — Rear
  kind: action
  params: []
  command: "<CR>*rr=r#<CR>"

- id: rr_t
  label: Remote Receiver — Top
  kind: action
  params: []
  command: "<CR>*rr=t#<CR>"

- id: rr_tf
  label: Remote Receiver — Top+Front
  kind: action
  params: []
  command: "<CR>*rr=tf#<CR>"

- id: rr_tr
  label: Remote Receiver — Top+Rear
  kind: action
  params: []
  command: "<CR>*rr=tr#<CR>"

- id: rr_query
  label: Query Remote Receiver
  kind: query
  params: []
  command: "<CR>*rr=?#<CR>"

- id: lpsaver_on
  label: Lamp Power Saver On
  kind: action
  params: []
  command: "<CR>*lpsaver=on#<CR>"

- id: lpsaver_off
  label: Lamp Power Saver Off
  kind: action
  params: []
  command: "<CR>*lpsaver=off#<CR>"

- id: lpsaver_query
  label: Query Lamp Power Saver state
  kind: query
  params: []
  command: "<CR>*lpsaver=?#<CR>"

- id: prjlogincode_on
  label: Projector Login Code Lock On
  kind: action
  params: []
  command: "<CR>*prjlogincode=on#<CR>"

- id: prjlogincode_off
  label: Projector Login Code Lock Off
  kind: action
  params: []
  command: "<CR>*prjlogincode=off#<CR>"

- id: broadcasting_on
  label: Broadcasting On
  kind: action
  params: []
  command: "<CR>*broadcasting=on#<CR>"

- id: amxdd_on
  label: AMX Device Discovery On
  kind: action
  params: []
  command: "<CR>*amxdd=on#<CR>"

- id: amxdd_off
  label: AMX Device Discovery Off
  kind: action
  params: []
  command: "<CR>*amxdd=off#<CR>"

- id: amxdd_query
  label: Query AMX Device Discovery
  kind: query
  params: []
  command: "<CR>*amxdd=?#<CR>"

- id: broadcasting_off
  label: Broadcasting Off
  kind: action
  params: []
  command: "<CR>*broadcasting=off#<CR>"

- id: broadcasting_query
  label: Query Broadcasting state
  kind: query
  params: []
  command: "<CR>*broadcasting=?#<CR>"

- id: prjlogincode_query
  label: Query Projector Login Code Lock state
  kind: query
  params: []
  command: "<CR>*prjlogincode=?#<CR>"

Feedbacks

- id: power_state
  label: Power Status
  type: enum
  query: "<CR>*pow=?#<CR>"
  values:
    - on
    - off

- id: sour_state
  label: Current Source
  type: enum
  query: "<CR>*sour=?#<CR>"
  values:
    - RGB
    - RGB2
    - ypbr
    - ypbr2
    - dviA
    - dvid
    - hdmi
    - hdmi2
    - vid
    - svid
    - network
    - usbdisplay
    - usbreader
    - wireless
    - hdbaset
    - dp

- id: mute_state
  label: Mute Status
  type: enum
  query: "<CR>*mute=?#<CR>"
  values:
    - on
    - off

- id: vol_state
  label: Volume Status
  type: integer
  query: "<CR>*vol=?#<CR>"
  range: 0-20

- id: audiosour_state
  label: Audio Pass Status
  type: enum
  query: "<CR>*audiosour=?#<CR>"
  values:
    - off
    - RGB
    - RGB2
    - vid
    - ypbr
    - hdmi
    - hdmi2

- id: appmod_state
  label: Picture Mode Status
  type: enum
  query: "<CR>*appmod=?#<CR>"
  values:
    - dynamic
    - preset
    - srgb
    - bright
    - livingroom
    - game
    - cine
    - std
    - football
    - dicom
    - user1
    - user2
    - user3
    - isfday
    - isfnight
    - threed

- id: con_state
  label: Contrast Value
  type: integer
  query: "<CR>*con=?#<CR>"
  range: 0-100

- id: bri_state
  label: Brightness Value
  type: integer
  query: "<CR>*bri=?#<CR>"
  range: 0-100

- id: color_state
  label: Color Value
  type: integer
  query: "<CR>*color=?#<CR>"
  range: 0-100

- id: sharp_state
  label: Sharpness Value
  type: integer
  query: "<CR>*sharp=?#<CR>"
  range: 0-100

- id: ct_state
  label: Color Temperature Status
  type: enum
  query: "<CR>*ct=?#<CR>"
  values:
    - warmer
    - warm
    - normal
    - cool
    - cooler
    - native

- id: asp_state
  label: Aspect Status
  type: enum
  query: "<CR>*asp=?#<CR>"
  values:
    - "4:3"
    - "16:6"
    - "16:9"
    - "16:10"
    - AUTO
    - REAL
    - LBOX
    - WIDE
    - ANAM

- id: bc_state
  label: Brilliant Color Status
  type: enum
  query: "<CR>*BC=?#<CR>"
  values:
    - on
    - off

- id: pp_state
  label: Projector Position Status
  type: enum
  query: "<CR>*pp=?#<CR>"
  values:
    - FT
    - RE
    - RC
    - FC

- id: qas_state
  label: Quick Auto Search Status
  type: enum
  query: "<CR>*QAS=?#<CR>"
  values:
    - on
    - off

- id: directpower_state
  label: Direct Power On Status
  type: enum
  query: "<CR>*directpower=?#<CR>"
  values:
    - on
    - off

- id: autopower_state
  label: Signal Power On Status
  type: enum
  query: "<CR>*autopower=?#<CR>"
  values:
    - on
    - off

- id: standbymnt_state
  label: Standby Monitor Out Status
  type: enum
  query: "<CR>*standbymnt=?#<CR>"
  values:
    - on
    - off

- id: baud_state
  label: Current Baud Rate
  type: enum
  query: "<CR>*baud=?#<CR>"
  values:
    - "2400"
    - "4800"
    - "9600"
    - "14400"
    - "19200"
    - "38400"
    - "57600"
    - "115200"

- id: ltim_state
  label: Lamp Hour
  type: integer
  query: "<CR>*ltim=?#<CR>"
  # UNRESOLVED: hour range not stated in source

- id: lampm_state
  label: Lamp Mode Status
  type: enum
  query: "<CR>*lampm=?#<CR>"
  values:
    - lnor
    - eco
    - seco
    - seco2
    - seco3
    - dimming
    - custom
    - dualbr
    - dualre
    - single
    - singleeco

- id: modelname_state
  label: Model Name
  type: string
  query: "<CR>*modelname=?#<CR>"

- id: blank_state
  label: Blank Status
  type: enum
  query: "<CR>*blank=?#<CR>"
  values:
    - on
    - off

- id: freeze_state
  label: Freeze Status
  type: enum
  query: "<CR>*freeze=?#<CR>"
  values:
    - on
    - off

- id: 3d_state
  label: 3D Sync Status
  type: enum
  query: "<CR>*3d=?#<CR>"
  values:
    - off
    - auto
    - tb
    - fs
    - fp
    - sbs
    - da
    - iv
    - "2d3d"
    - nvidia

- id: ins_state
  label: Instant On Status
  type: enum
  query: "<CR>*ins=?#<CR>"
  values:
    - on
    - off

- id: highaltitude_state
  label: High Altitude Mode Status
  type: enum
  query: "<CR>*Highaltitude=?#<CR>"
  values:
    - on
    - off

Variables

# UNRESOLVED: all settable parameters also have write actions, no separate Variables needed

Events

# UNRESOLVED: no unsolicited notifications described in source

Macros

# UNRESOLVED: no multi-step sequences described in source

Safety

confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source

Notes

Command wrapper format: <CR>*cmd=value#<CR> (carriage return delimited). Both TCP and serial use identical commands. Case-insensitive. Error responses: "Illegal format", "Unsupported item", "Block item". Commands work only when standby power ≤0.5W or supported baud rate set.

Provenance

source_domains:
  - esupportdownload.benq.com
  - benq.com
  - scribd.com
  - audiogeneral.com
source_urls:
  - "https://esupportdownload.benq.com/esupport/Projector/Control%20Protocols/BS5050/RS232%20Control%20Guide_0_Windows10_Windows7_Windows8.pdf"
  - "https://esupportdownload.benq.com/esupport/Projector/UserManual/Projector_um_User%20Manual_20131213_084751New_MH680_TH680_EN.pdf"
  - https://www.benq.com/en-us/support/downloads-faq/products/projector/mh680/manual.html
  - https://www.scribd.com/document/499375003/Rs232-Commands-Benq
  - https://www.audiogeneral.com/BenQ/rs232_commands_generic_082613.pdf
retrieved_at: 2026-05-14T20:27:43.223Z
last_checked_at: 2026-06-02T21:40:55.250Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T21:40:55.250Z
matched_actions: 111
action_count: 111
confidence: medium
summary: "All 111 spec actions verified against source. Amend added 25 new entries: 20 from prior verifier's extras list (*standbynet, *standbymic, *rr, *lpsaver, *prjlogincode, *broadcasting, *amxdd) plus 5 complementary set/query commands (amxdd_off/query, broadcasting_off/query, prjlogincode_query) to clear the 0.9 coverage gate. Coverage 111/120 = 0.925. Each literal appears verbatim in source command table. (12 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "baud rate selectable via command (*baud=), not fixed"
- "hour range not stated in source"
- "all settable parameters also have write actions, no separate Variables needed"
- "no unsolicited notifications described in source"
- "no multi-step sequences described in source"
- "no safety warnings or interlock procedures in source"
- "ltim2 (Lamp2 Hour) not supported on this model per source"
- "micvol commands not supported on this model per source"
- "network/USB/wireless/HDBaseT source selection not supported on this model per source"
- "standby network/microphone settings not supported on this model per source"
- "baud rate is software-settable via *baud= command, not hard-configured"
- "firmware version not stated in source"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0