Forza Motorsport 7 recently released an update that allows you to send telemetry data to another device real-time. This is done over UDP at 60 frames per second and works with XBOX or PC!
The data interface was primarily designed for people building motion sleds and the like. It contains lots of data useful to those devices like individual tire slippage, angular velocity, etc. I decided to build a native iOS app that receives this data and allows you to use the app on your phone as a secondary dash. The amount of information I can use that is helpful is limited, but the app does currently display:
- Tachometer (RPM)
- Drivetrain (tells you what your car has…AWD, FWD, RWD)
- Shift light.
Normally, to determine optimum shift point you have to take a lot of things into consideration including gear ratios but that data is not available, at least not yet. So, I set a threshold of 80% of max RPM for the car you are driving.
I wrote this app in Objective-C. I haven’t worked with raw UDP packets since the Quake days! It is amazing how fast everything is processed. There is no visible lag as you can see in the video below which is me playing on an XBOX that is streaming data to my iPhone app. This was pretty easy..I simply defined a STRUCT for the Forza UDP datagram and popped the data packet into that to pick out what I needed. Hardest part was figuring out what unit of measure is used for velocity values. The documentation does not tell you, but I finally figured out it was meters per second.
I am cleaning some things up but will release it to the app store soon. If you have an Android device, someone has already built one for that platform. Look up SimDash.
I am hoping that Forza Horizon 4 has a similar option when it comes out, I can easily adapt the app to work with it if they do.