English | Русский
Important
Formerly GyroBridge. Since v2.0.0 the project is called PhoneGyro. All GyroBridge v1.x releases are deprecated and considered highly unstable — use v2.0.0 or newer. There is no migration from v1.x: reinstall the certificate on iPhone/iPad and recalibrate. See the v2.0.0 release notes.
📖 Comprehensive User Guide: English User Guide | Русскоязычное руководство
PhoneGyro turns your smartphone (iOS or Android) or a USB motion controller (Arduino Nano + MPU-6050) into a motion controller for PC games and emulators using the Cemuhook DSU protocol.
Compatible with Cemu, RPCS3, Ryujinx, Yuzu, Dolphin, PCSX2, and any game or tool supporting Cemuhook DSU.
Download PhoneGyro.exe (or PhoneGyro-windows-arm64.exe for ARM-based Windows devices) from the latest GitHub Releases.
Make sure your PC and smartphone are connected to the same Wi-Fi network. Launch PhoneGyro.exe.
Pick the source at the top of the window: Smartphone or USB Controller.
- iOS (iPhone / iPad): Click Initial Setup in the app and follow the step-by-step guide to install the local profile certificate required by Safari to access motion sensors over HTTPS.
- Android: Scan the QR code on the main screen with your camera and open the controller web app in Google Chrome.
- USB controller (Arduino Nano + MPU-6050): flash the reference firmware (protocol 1.1+) and plug it in — PhoneGyro finds it on any COM port by itself.
Click Calibrate and follow the wizard (rest, nod, bank, axis alignment — about a minute). Calibration tells PhoneGyro where "forward" and "right" are for your grip; without it the in-game aim turns along the wrong axis or backwards. Perform this once per device and grip; phone and USB profiles are stored separately.
On first connection PhoneGyro opens the recenter window: hold the device as you will hold it in game, pick your calibration profile, and press Recenter.
In your emulator's input/controller settings, configure the motion server:
- Server IP:
127.0.0.1 - Server Port:
26760 - Protocol: Cemuhook DSU
Aim jitters slightly while you hold still? Raise the tremor threshold in Settings (separate for phone and USB). Details in the User Guide.
Click Stats & 3D View in the header to open the dedicated real-time 3D telemetry and diagnostics window to verify sensor response, orientation stability, and DSU packet delivery rate:
Click the Settings button in the header to access advanced options:
- Interactive Test Bench: Live multi-axis oscilloscope, 3D target viewfinder, and apparatus tilt mini-bench to test response and filters before gaming.
- Custom Ports: Modify Cemuhook DSU (
26760), HTTP pairing (8080), and HTTPS controller (8443) ports with real-time collision checks. - Gyro Deadband & Sensitivity: Silence resting sensor micro-jitter with a soft deadband and scale gyro response. Motion itself is sent unsmoothed and drift-corrected (see Motion Pipeline).
- Global UI Scaling: Scale the interface and fonts (
0.80x-1.40x) with desktop shortcuts (Ctrl +,Ctrl -,Ctrl 0). - Audio Feedback: Choose between synthesized chimes, classic Windows system sounds, or silent mode.
- Appearance: Switch between Apple-inspired dark and light interfaces.
PhoneGyro is 100% open-source software under the MIT license. It contains zero trackers, no telemetry, and makes no external internet connections by default — all communication is strictly between your phone and your PC over your local home Wi-Fi. The only exception is the optional "Check for updates at startup" setting (off by default): when you turn it on, PhoneGyro asks GitHub for the latest release number once per start and sends nothing else.
Independent open-source developers rarely purchase proprietary EV (Extended Validation) code signing certificates due to exorbitant recurring costs ($400+/year). Because of this, automated machine-learning heuristics in certain antivirus software (e.g., Microsoft Defender generic !ml tags) might flag freshly compiled binaries as unfamiliar.
We regularly scan release binaries against VirusTotal (69+ engines clean). If you have any security reservations:
- Inspect the Source: Review the entire codebase yourself or pass it to any AI agent (Claude, ChatGPT, Gemini, etc.) to perform an independent security review.
- Build from Source: Follow the instructions below to compile the binary directly on your own machine using Go and Wails.
Prerequisites:
- Go 1.25+
- Node.js 18+
- Wails CLI v2 (
go install github.com/wailsapp/wails/v2/cmd/wails@latest)
# Clone the repository
git clone https://github.com/MrHoustonOff/PhoneGyro.git
cd PhoneGyro/gui
# Build Windows x86_64
wails build -tags native_webview2loader -o PhoneGyro.exe
# Build Windows ARM64
wails build -tags native_webview2loader -platform windows/arm64 -o PhoneGyro-arm64.exeThe compiled binaries will be placed in gui/build/bin/.
gui/ Windows app (Wails); main.go only embeds the UI and starts it
internal/app/ the App API the UI calls: the frame pipeline (pipeline.go),
motion banks, calibration wizard, phone and USB wiring,
Live Debug, background loops
internal/motion/ motion math: calibration matrices, axis alignment, AHRS,
iOS attitude anchor, gyro bias, deadband, mount tilt
internal/settings/ settings.json: defaults, older files, port/MAC checks
internal/profiles/ profiles.json: the six calibration slots of a source
internal/usbdev/ USB host: finds the device, reads and decodes its frames
internal/hwproto/ USB hardware protocol wire format (frame, CRC, decoder)
internal/link/ link-loss statistics and the data-loss alarm
internal/dsuclients/ names local DSU clients after their program, focuses its window
internal/tray/ tray icon, its menu and the global recenter hotkey
internal/resmon/ CPU / RAM monitor
internal/version/ build identity (release tag, build number, channel)
frontend/src/ UI: index.html + js/ + css/, Live Debug window
pkg/server/ phone HTTPS/WebSocket server, USB frame injection
pkg/dsu/ Cemuhook DSU server
pkg/ca/, pkg/pairing/ local certificate authority, QR codes
pkg/i18n/ RU/EN translations
web/ the phone page
docs/ user guides, motion pipeline notes
This project is open-source and licensed under the MIT License.

