Skip to content

A Windows desktop application for controlling BenQ projectors via RS-232 serial connection. Built specifically for golf simulator setups, with automatic power management when your simulator software launches.

License

Notifications You must be signed in to change notification settings

dmkern03/BenQ-Projector-Control

Repository files navigation

BenQ Projector Control

A Windows desktop application for controlling BenQ projectors via RS-232 serial connection. Built specifically for golf simulator setups, with automatic power management when your simulator software launches.

Python Platform License

Features

  • Manual Control: Power, input source, picture modes, aspect ratio, audio, and more
  • Auto Power Management: Automatically turn projector on/off when your golf simulator software starts/stops
  • Configurable Monitoring: Monitor any .exe file (SkyTrak, GSPro, E6, etc.)
  • Windows Startup: Option to run at Windows startup
  • Default Settings: Auto-apply your preferred input and picture mode on power-on
  • Power-Off Delay: Configurable delay prevents accidental shutdowns if app restarts
  • Dark Theme UI: Modern, easy-on-the-eyes interface

Screenshots

Supported Projectors

Tested with:

  • BenQ AK700ST (Golf Simulator Edition)

Should work with other BenQ projectors that support RS-232 control. The command set is fairly standard across BenQ models.

Hardware Requirements

  1. USB to RS-232 Adapter (recommended: FTDI-based chipset)
  2. RS-232 Cable (DB-9 crossover/null modem cable)
    • If your projector has a DB-9 female port, you need a DB-9 male to female crossover cable
    • Pin 2 (RX) connects to Pin 3 (TX) and vice versa

Wiring Diagram

USB-to-RS232 Adapter          Projector RS-232 Port
     (DB-9 Male)                  (DB-9 Female)
    ┌───────────┐                ┌───────────┐
    │ 2 (RX)  ──┼────────────────┼── 3 (TX)  │
    │ 3 (TX)  ──┼────────────────┼── 2 (RX)  │
    │ 5 (GND) ──┼────────────────┼── 5 (GND) │
    └───────────┘                └───────────┘

Installation

Option 1: Run from Source

  1. Clone the repository:

    git clone https://github.com/dmkern03/benq-projector-control.git
    cd benq-projector-control
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python projector_control.py

Option 2: Build Standalone Executable

  1. Clone and install dependencies (as above)

  2. Build the executable:

    # Windows
    build_exe.bat
    
    # Or manually
    pip install pyinstaller
    pyinstaller --onefile --windowed --name "BenQ_Projector_Control" projector_control.py
  3. Find your executable in the dist folder

Option 3: Download Release

Download the latest .exe from the Releases page.

Configuration

First-Time Setup

  1. Connect your USB-to-RS232 adapter
  2. Launch the application
  3. Click Settings (gear icon)
  4. Configure:
    • COM Port: Select your adapter (check Device Manager if unsure)
    • Baud Rate: Usually 115200 (verify in projector OSD menu)
    • Application to Monitor: Browse to your simulator .exe file

Settings Reference

Setting Description Default
Run at Windows startup Launch app when Windows starts Off
Start minimized Start in system tray Off
Auto-connect on startup Connect to projector automatically On
Enable application monitoring Watch for simulator software On
Power ON when app starts Turn on projector when simulator launches On
Power OFF when app closes Turn off projector when simulator exits On
Power off delay Seconds to wait before powering off 5
Check interval How often to check for running apps 5 sec
Default input Input to switch to on power-on HDMI 1
Default picture mode Picture mode to apply on power-on Game

Finding Your COM Port

  1. Open Device Manager (Win + X, then Device Manager)
  2. Expand Ports (COM & LPT)
  3. Look for your USB-Serial adapter (e.g., "USB Serial Port (COM3)")

Verifying Projector Baud Rate

  1. On your projector, go to Settings > Advanced > RS232 Settings
  2. Note the baud rate (commonly 9600 or 115200)
  3. Match this in the app settings

Usage

Manual Control

Simply click the buttons to control your projector:

  • Power: On/Off
  • Input Source: HDMI 1, HDMI 2
  • Picture Mode: Game (golf), Cinema, Bright, Sport, User 1
  • Aspect Ratio: 16:9, 4:3, Auto
  • Audio: Mute, Unmute, Volume +/-
  • Video: Blank, Freeze, Brightness +/-, Contrast +/-
  • 3D: Off, Frame Sequential

Automatic Control

Once configured, the app monitors for your simulator software:

  1. You launch SkyTrak/GSPro/E6

    • App detects the process
    • Projector powers on
    • Default input and picture mode are applied
  2. You close your simulator

    • App detects process ended
    • Waits for configured delay (in case of restart)
    • Projector powers off

Status Indicators

  • Green dot: Connected to projector
  • Gray dot: Disconnected
  • Status bar: Shows monitoring status and last action

Troubleshooting

"No COM ports found"

  • Ensure USB-RS232 adapter is plugged in
  • Install adapter drivers (usually automatic, but FTDI drivers may need manual install)
  • Check Device Manager for the adapter

"Could not connect to COM port"

  • Port may be in use by another application
  • Try unplugging and reconnecting the adapter
  • Restart the application

"Command sent but no response"

  • Verify baud rate matches projector settings
  • Check cable connections
  • Ensure you're using a crossover cable, not straight-through
  • Try a different USB port

Projector doesn't respond to commands

  • Projector must be in "Network Standby" mode to accept power-on commands when off
  • Check projector's RS-232 settings are enabled
  • Some commands only work when projector is fully powered on

Auto power not working

  • Verify the correct .exe path in Settings
  • Ensure "Enable application monitoring" is checked
  • Check that psutil is installed: pip install psutil
  • The monitored app must be a standard Windows process

RS-232 Command Reference

For developers or advanced users, here are the BenQ RS-232 commands used:

Function Command Response
Power On *pow=on# *POW=ON#
Power Off *pow=off# *POW=OFF#
Power Status *pow=?# *POW=ON# or *POW=OFF#
HDMI 1 *sour=hdmi# *SOUR=HDMI#
HDMI 2 *sour=hdmi2# *SOUR=HDMI2#
Game Mode *appmod=game# *APPMOD=GAME#
Cinema Mode *appmod=cine# *APPMOD=CINE#
Mute On *mute=on# *MUTE=ON#
Mute Off *mute=off# *MUTE=OFF#
Lamp Hours *ltim=?# *LTIM=xxxx#

Commands must be wrapped with <CR> (carriage return): \r*command#\r

See docs/RS232_COMMANDS.md for the complete command list.

Project Structure

benq-projector-control/
├── projector_control.py    # Main application
├── requirements.txt        # Python dependencies
├── build_exe.bat          # Windows build script
├── README.md              # This file
├── LICENSE                # MIT License
├── .gitignore            # Git ignore rules
└── docs/
    └── RS232_COMMANDS.md  # Complete RS-232 command reference

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

git clone https://github.com/dmkern03/benq-projector-control.git
cd benq-projector-control
pip install -r requirements.txt
python projector_control.py

Adding Support for Other Projectors

The RS-232 commands are defined in the COMMANDS dictionary at the top of projector_control.py. To support other BenQ models or brands:

  1. Find the RS-232 command documentation for your projector
  2. Update the COMMANDS dictionary with the correct byte strings
  3. Submit a PR with the model name in the description

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built for the golf simulator community
  • BenQ for providing RS-232 documentation
  • The Python pyserial and psutil libraries

Author

Dave Kern (@dmkern03)


Disclaimer: This software is not affiliated with or endorsed by BenQ. Use at your own risk.

About

A Windows desktop application for controlling BenQ projectors via RS-232 serial connection. Built specifically for golf simulator setups, with automatic power management when your simulator software launches.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published