Simracing Telemetry

Record and display telemetry from:
- Forza Motorsport 2023
- Forza Motorsport 7
Fully configured. Written in Golang.
Plans to support: F1 2023, etc. And make a dashboard/cockpit view for them.
Configuring Forza's UDP settings
- Launch the game and head to the HUD options menu
- Set
Data Out to ON
- Set
Data Out IP Address to your computer's IP address
- Set
Data Out IP Port to 9999
- Set
Data Out Packet Format to CAR DASH
Running the App
Docker
git clone https://github.com/bluemanos/simracing-telemetry.git
cd simracing-telemetry
- Set all the environment variables in the
.env file
docker compose up which will also build the app
Local build
git clone https://github.com/bluemanos/simracing-telemetry.git
cd simracing-telemetry
- Set all the environment variables in the
.env file
go build
- Run
./simracing-telemetry
Use released binary from GitHub
- Download the latest release from Releases Page.
- Get a
forzamotorsport file from src/telemetry/fms2023/ folder from the repository and save it in similar directory structure next to the binnary.
- Set all the environment variables in the
.env file
- Run
./simracing-telemetry
Setup Adapters/Converters
Adapters are setup separately for every game.
The correct adapter setup schema is: adapter-name:variable1:variable2:etc.
For multiple adapters configuration use comma, eg: adapter1:var1:var2,adapter2:var3:var4.
Currently two adaters are supported:
- CSV
- MySQL/MariaDB
- UDP forwarder
CSV Adapter
Example: csv:./data/forzams2023:daily
./data/forzams2023 a path to a directory or file where the CSV files will be saved
daily a record interval. Possible values: daily and none. Daily retention need a path to directory, none retention need a path to file.
MySQL Adapter
Example: mysql:user:password:host:3306:database
user a MySQL user
password a MySQL password
host a MySQL host
3306 a MySQL port
database a MySQL database name
UDP forwarder
This adapter can forward the UDP packets to another IPs addresses.
Example: udp:192.168.5.38:9999&192.168.5.26:9999
ip a MySQL user
port a MySQL password
More IPs and ports can be added with & separator.