DriveLink Desktop is the bridge application that allows you to use your Android phone as a high-performance racing game controller for Windows. It receives real-time motion and touch data from the DriveLink mobile app via UDP and translates it into virtual gamepad inputs.
- Low Latency: Uses UDP for near-instantaneous input transmission.
- Precise Steering: Maps phone rotation (accelerometer/gyroscope) to the virtual steering axis.
- Full Pedal Support: Real-time feeding of 3 independent Throttle, Brake, and Clutch axes.
- Custom Button Mapping: Support for gear shifts, handbrake, and other actions using buttons.
- Visual Feedback: Real-time UI indicators for steering angle, pedal levels, and connection status.
- Lightweight: Written using C++ to keep performance impact at a minimum while running in the background.
DriveLink Desktop acts as a "Bridge" in the system:
- Phone Sensor Data : Captured by DriveLink Android App.
- Network Transmission : Sent as UDP packets over local WiFi.
- Bridge Processing : DriveLink Desktop receives packets and parses the data.
- Feeder Execution : DriveLink Desktop feeds data into the virtual gamepad device.
- Game Reception : Your game (BeamNG.drive, Assetto Corsa, etc.) sees the phone as a standard Steering Wheel/Gamepad.
- OS: Windows 10/11 (64-bit).
- Visual C++ Redistrubutables: Download here
- Local Network: Phone and PC must be on the same WiFi network.
- Download DriveLink: Get the latest binary from the Releases page.
- Install DriveLink: Run the installer. It should install the app and vJoy driver automatically.
Firewall troubleshooting: Ensure UDP port
7001is open in your Windows Firewall for the local network. If there is a dialog that asks for permission to allow access to the network, click Allow access.
- Install apps: Install the Android app on your mobile and Desktop app on your PC.
- Run DriveLink Desktop: Open the application.
- Connect Phone:
- Note your PC's local IP address (e.g.,
192.168.1.50). - Enter this IP in the settings page in the DriveLink mobile app.
- Go back to the home screen on the mobile app.
- Note your PC's local IP address (e.g.,
- Verification: You should see the steering wheel and pedal indicators move in the Desktop UI.
- Game Setup: Open your racing game and map the axes (Steering, Throttle, etc.) and the buttons to the actions of your choice.
DriveLink uses a custom binary protocol over UDP for maximum performance.
- Packet Parsing: The application parses packets containing floats for axes and a bitmask for buttons.
- Scaling: Phone rotation in radians (-π/2 to π/2) is mapped linearly to the virtual gamepad absolute axis range.
- Thread Safety: Networking is handled on a dedicated thread to ensure the UI remains responsive and the feeding loop (100Hz) stays consistent.
- No connection (Red Dot):
- Verify phone and PC are on the same WiFi.
- Double-check the PC's IP address.
- Disable Windows Firewall temporarily to test.
DriveLink is built with C++20 and SFML 3.0.
- Install Visual Studio 2022 with "Desktop development with C++".
- Install vcpkg and integrate it:
vcpkg integrate install. - Install dependencies:
vcpkg install sfml. - Open the
.slnx(or.vcxproj) in Visual Studio. - Build for Release/x64.
src/core: Networking and thread-safe input state.src/platform: Windows-specific vJoy implementation.src/ui: SFML-based UI components.include/dl/core/Protocols.hpp: Definition of the UDP packet format.
- Support for Linux (using
uinput). - Dynamic port configuration via UI.
- Force Feedback support.
- More interactive widgets like line charts on the interface.
I hope you enjoy it!
