Skip to content

Commit

Permalink
readme update
Browse files Browse the repository at this point in the history
  • Loading branch information
HoodV committed Aug 16, 2022
1 parent 2d93e42 commit 8ef4554
Showing 1 changed file with 26 additions and 20 deletions.
46 changes: 26 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,45 @@
# F1 Force Feedback
Application for force feedback with Teslasuit for F1 game. Haptic Feedback generation based on UDP Telemetry of the game.
Application for real time generation of Teslasuit haptic feedback on Teslasuit for F1 game.
Feedback generation is based on UDP Telemetry from the game.
Feedback is implemented for next game events:
- G-Forces with haptic impact based on force (Any movements, such as acceleration, braking, turning, collisions)
- Engine Vibration with haptic frequency based on engine RPM.
- Suspension shaking with haptic impact based on suspension acceleration.
- Wheel slippage for each of 4 wheels. Occurs on acceleration or braking without ABS.

## Requirements
Software:
- F1 2021 official game with UDP streaming enabled
- Teslasuit SDK installed
- Teslasuit Python API compatible with installed Teslasuit SDK
- Teslasuit Control Center
- F1 2021 or newer official game

Hardware:
- Gaming steering wheel and pedals
- Teslasuit device
- Gaming steering wheel and pedals

## Setup Environment
1. Install Teslasuit Studio build #18791 or higher - https://gitlab.vrweartek.com/software/teslasuit-studio/-/pipelines.
2. Install Python 3 from https://www.python.org/downloads/.
3. Install Steam and F1 2021 game from it - https://store.steampowered.com/.
4. Install Drivers for racing wheel. For thrustmaster - https://support.thrustmaster.com/en/product/t300rs-en/.
## Environment Setup
1. Install Teslasuit Control Center - https://teslasuit.io/.
2. Install Python 3 x64 from https://www.python.org/downloads/.
3. Install Steam and F1 2021 or newer game from it - https://store.steampowered.com/.
4. Install Drivers for racing wheel. For Thrustmaster - https://support.thrustmaster.com/en/product/t300rs-en/.

## Configuration
1. Turn on UDP streaming in F1 2021 settings. Ensure that port number is 20777 (or setup another port in f1_client.py).
2. Configure racing wheel for F1: turn on wheel in PS3 mode (physical toogle), in configure tool lock rotation to max 270-360 degrees. Configuration tool by default should be at "C:\Program Files\Thrustmaster\FFB Racing wheel\drivers\tmJoycpl.exe".
3. Connect Teslasuit to PC and calibrate it in Control Center.
1. Turn on UDP streaming in F1 game settings at Game Options → Settings → Telemetry Settings → UDP Telemetry → On. Ensure that port number is 20777 (or setup another port in f1_client.py). If your game is newer than F1 2021 - select 2021 UDP format for compatibility.
2. Configure racing wheel for F1. For Thrustmaster: turn on wheel in PS3 mode (physical toogle), in configure tool lock rotation to max 270-360 degrees. Configuration tool by default should be at "C:\Program Files\Thrustmaster\FFB Racing wheel\drivers\tmJoycpl.exe".
3. Connect Teslasuit device to PC and calibrate it in Control Center.

## Running
Connect calibrated Teslasuit to PC and launch F1 game.
Run main.py - it will auto detect connected device, listen game telemetry and generate haptic feedback.
Close main.py terminal to stop feedback.
It can be run from terminal to check for any printed errors.
1. Connect calibrated Teslasuit device to PC and launch F1 game.
2. Run main.py - it will auto detect connected device, listen game telemetry and generate haptic feedback.
3. Close main.py terminal to stop feedback.
4. It can be run from terminal to check for errors in terminal window.

## Development

### Project structure
Project contains two main components - F1 game client and Teslasuit client.
F1 game client (f1_client.py) listen UDP socket for packages from the game and generates unified force feedback events (ff_event.py).
Teslasuit client (ts_client.py) detects attached suit, process feedback events into playback for haptic presets. TS client includes playlist object (playlist.py) to parse assets from disk, preload assets, control assets playback and modifiers.
1. Project contains two main components - F1 game client and Teslasuit client.
2. F1 game client (f1_client.py) listen UDP socket for packages from the game and generates unified force feedback events (ff_event.py).
3. Teslasuit client (ts_client.py) detects attached suit, process feedback events into playback for haptic presets. TS client includes playlist object (playlist.py) to parse assets from disk, preload assets, control assets playback and modifiers.
4. Directory ts_assets contains haptic assets for different feedback events, Teslasuit Studio project that can be used to view or modify haptic assets, template haptic calibration file that can be used to start calibration with it.

### F1 2021 UDP Spec
https://forums.codemasters.com/topic/80231-f1-2021-udp-specification/

0 comments on commit 8ef4554

Please sign in to comment.