# SUB Control A lightweight Windows controller for ArduSub ROVs over USB/MAVLink. ![SUB Control V2 interface in Demo mode](docs/sub-control-v2.jpg) ## Quick start Install Python 3.11+ with the Python launcher, then run: ```powershell ./run.ps1 ``` The script creates a virtual environment and installs dependencies automatically. On first launch, it also adds a **SUB Control** desktop shortcut. Select a COM port and **Connect**, or choose **Demo Mode** to try it without hardware. Connection settings are under **•••**. ## Controls - Joystick: forward/back and turning. Vertical slider: rise/dive. - Keyboard: **W/S** forward/back, **A/D** or **Q/E** turn, **R/F** rise/dive. - Hold **engage** for 1.4 seconds to request arming; tap **disengage** to request disarming. The app waits for vehicle confirmation. - Movement controls ease back to neutral when released. Includes adjustable output limit, motor setup, voltage-based battery status, an STL viewer, and session logs in `logs/`. ## Safety Verify motor direction, ESC settings, and vehicle failsafes before use. Remove propellers for initial bench tests and keep a physical power cutoff available. A lost connection cannot guarantee the motors stop.