This site uses cookies for analytics and personalized content. By continuing to browse this site, you agree to this use. Learn more
7 Pages123>>Next
Rank: Forza Community Team
 4 users liked this post.
#1 Posted : Monday, June 4, 2018 7:58:48 AM(UTC)
With the launch of the June CU for Forza Motorsport 7, we're including a new Data Out feature, which outputs a UDP data stream which players can now take advantage of. This is the same technology that powers the motion sleds that Turn 10 uses, but the possibilities are endless. For those interested, here's a look at the parameters:

Description
Telemetry output sends data packets for outside use by third parties. Designed for motion sleds, dashboards, data logging, etc. You can use it for whatever your imagination desires. This one-way UDP traffic is sent to a remote machine at 60fps. Localhost data streaming is not supported.

The initial data structure is designed specifically for motion sleds. We are working with several peripheral manufacturers and will be adding many more data points in the future.

Input Parameters
The following parameters are now located in the HUD options menu.

• Data Out: Toggles the data output function on and off.
• Data Out IP Address: The target IP address of the remote machine receiving data.
• Data Out IP Port: The target IP port of the remote machine receiving data.

Output Structure
Data is output in the following structure.

s32 IsRaceOn; // = 1 when race is on. = 0 when in menus/race stopped …

u32 TimestampMS; //Can overflow to 0 eventually

f32 EngineMaxRpm;
f32 EngineIdleRpm;
f32 CurrentEngineRpm;

f32 AccelerationX; //In the car's local space; X = right, Y = up, Z = forward
f32 AccelerationY;
f32 AccelerationZ;

f32 VelocityX; //In the car's local space; X = right, Y = up, Z = forward
f32 VelocityY;
f32 VelocityZ;

f32 AngularVelocityX; //In the car's local space; X = pitch, Y = yaw, Z = roll
f32 AngularVelocityY;
f32 AngularVelocityZ;

f32 Yaw;
f32 Pitch;
f32 Roll;

f32 NormalizedSuspensionTravelFrontLeft; // Suspension travel normalized: 0.0f = max stretch; 1.0 = max compression
f32 NormalizedSuspensionTravelFrontRight;
f32 NormalizedSuspensionTravelRearLeft;
f32 NormalizedSuspensionTravelRearRight;

f32 TireSlipRatioFrontLeft; // Tire normalized slip ratio, = 0 means 100% grip and |ratio| > 1.0 means loss of grip.
f32 TireSlipRatioFrontRight;
f32 TireSlipRatioRearLeft;
f32 TireSlipRatioRearRight;

f32 WheelRotationSpeedFrontLeft; // Wheel rotation speed radians/sec.
f32 WheelRotationSpeedFrontRight;
f32 WheelRotationSpeedRearLeft;
f32 WheelRotationSpeedRearRight;

s32 WheelOnRumbleStripFrontLeft; // = 1 when wheel is on rumble strip, = 0 when off.
s32 WheelOnRumbleStripFrontRight;
s32 WheelOnRumbleStripRearLeft;
s32 WheelOnRumbleStripRearRight;

f32 WheelInPuddleDepthFrontLeft; // = from 0 to 1, where 1 is the deepest puddle
f32 WheelInPuddleDepthFrontRight;
f32 WheelInPuddleDepthRearLeft;
f32 WheelInPuddleDepthRearRight;

f32 SurfaceRumbleFrontLeft; // Non-dimensional surface rumble values passed to controller force feedback
f32 SurfaceRumbleFrontRight;
f32 SurfaceRumbleRearLeft;
f32 SurfaceRumbleRearRight;

f32 TireSlipAngleFrontLeft; // Tire normalized slip angle, = 0 means 100% grip and |angle| > 1.0 means loss of grip.
f32 TireSlipAngleFrontRight;
f32 TireSlipAngleRearLeft;
f32 TireSlipAngleRearRight;

f32 TireCombinedSlipFrontLeft; // Tire normalized combined slip, = 0 means 100% grip and |slip| > 1.0 means loss of grip.
f32 TireCombinedSlipFrontRight;
f32 TireCombinedSlipRearLeft;
f32 TireCombinedSlipRearRight;

f32 SuspensionTravelMetersFrontLeft; // Actual suspension travel in meters
f32 SuspensionTravelMetersFrontRight;
f32 SuspensionTravelMetersRearLeft;
f32 SuspensionTravelMetersRearRight;

s32 CarOrdinal; //Unique ID of the car make/model
s32 CarClass; //Between 0 (D -- worst cars) and 7 (X class -- best cars) inclusive
s32 CarPerformanceIndex; //Between 100 (slowest car) and 999 (fastest car) inclusive
s32 DrivetrainType; //Corresponds to EDrivetrainType; 0 = FWD, 1 = RWD, 2 = AWD
s32 NumCylinders; //Number of cylinders in the engine

[Sept. 10, 2018 UPDATE: NEW DATA OUT STRUCTURE]

V1 is now called Sled
V2 is V1 then these added in this order at the bottom.
//Position (meters)
f32 PositionX;
f32 PositionY;
f32 PositionZ;

f32 Speed; // meters per second
f32 Power; // watts
f32 Torque; // newton meter

f32 TireTempFrontLeft;
f32 TireTempFrontRight;
f32 TireTempRearLeft;
f32 TireTempRearRight;

f32 Boost;
f32 Fuel;
f32 DistanceTraveled;
f32 BestLap;
f32 LastLap;
f32 CurrentLap;
f32 CurrentRaceTime;

u16 LapNumber;
u8 RacePosition;

u8 Accel;
u8 Brake;
u8 Clutch;
u8 HandBrake;
u8 Gear;
s8 Steer;

s8 NormalizedDrivingLine;
s8 NormalizedAIBrakeDifference;

Edited by user Monday, September 10, 2018 2:14:42 PM(UTC)  | Reason: Not specified


Brian Ekberg
Forza Community Manager
ForzaMotorsport.net
Rank: D-Class Racing License
 3 users liked this post.
#2 Posted : Monday, June 4, 2018 11:35:51 AM(UTC)
s32 CarOrdinal; //Unique ID of the car make/model
Is this going to be reused for future releases, ie, if the Aston Martin Vantage is id 10 on FM7, will it be id 10 on FM8? And is it possible to get a list of id - car?

Will the data structure be updated in the future? Are you open to parameters requests?

Can / would a broadcast option be considered?
Rank: Driver's License
 6 users liked this post.
#3 Posted : Monday, June 4, 2018 12:25:38 PM(UTC)
Can I also ask if you're open to parameter requests,

I'm one of the staff which run TORA (the online racing association) and I've already started looking into creating an app for this data stream.

The thing we do is organise racing leagues, from series to endurance races, and being able to receive this data and have it displayed on a full live timing system would be awesome,

The only things I can't see are things such as what the global position of the car is in relation the the track they're currently on so there'd be no way of plotting or tracking the cars position.

Is this every parameter you'd have available to output or are there any options to add more if required?

I've listed below what I think would be good and how it would benefit people.

x, y, z position in global terms: could then plot where the car is which would be useful for saving and reading telemetry to create better tunes / plotting the cars positions for display in live timing
gear number: useful in dashboard building as a gear indicator / telemetry
current track: again would be useful for telemetry readings
current race position: useful in a live timing diagram
distance travelled: again live timing of endurance races
fastest lap: useful for live timing, and analysing which tune produced the better times.

This information could also benfit the people of the twitch community as they could make some cool looking custom overlays

Those are just a couple I can think of but if it's possible to implement these in the future this would be awesome.
Rank: S-Class Racing License
 1 user liked this post.
#4 Posted : Monday, June 4, 2018 12:55:57 PM(UTC)
I'd absolutely love if someone could create an app that shows live telemetry. That's be incredible.

And if we could get stuff like fastest lap, current lap, last lap, map tracking and delta times I'd she'd tear aha!

Edited by user Monday, June 4, 2018 12:59:00 PM(UTC)  | Reason: Not specified

Rank: Driver's License
 2 users liked this post.
#5 Posted : Monday, June 4, 2018 1:05:03 PM(UTC)
Originally Posted by: EpicEvan777 Go to Quoted Post
I'd absolutely love if someone could create an app that shows live telemetry. That's be incredible.

And if we could get stuff like fastest lap, current lap, last lap, map tracking and delta times I'd she'd tear aha!


I like the sound of extra lap times being added like current and last as well as the best lap, delta times could then be calculated based from the previous lap times / times of other drivers if displayed on a live race dashboard.

map tracking would definitely be possible if we had global positions.

If I can get a simple app working to at least just display the raw data then processing this to look like whatever we need it to shouldn't be too difficult
Rank: Driver's Permit
 2 users liked this post.
#6 Posted : Monday, June 4, 2018 5:34:57 PM(UTC)
I would also like Parameters like Fuel, Tire Wear, Car Condition broadcast. I'd also love to have a percentage of lap completed for each car on track and where they are in relation to the left or right side of the road
Rank: Driver's Permit
 1 user liked this post.
#7 Posted : Monday, June 4, 2018 9:55:25 PM(UTC)
Originally Posted by: Mechberg Go to Quoted Post

Input Parameters
The following parameters are now located in the HUD options menu.

• Data Out: Toggles the data output function on and off.
• Data Out IP Address: The target IP address of the remote machine receiving data.
• Data Out IP Port: The target IP port of the remote machine


Hello,

when creating an UDP app for Project Cars i use an static udp port to get all the data from game without any ip address. So all devices who are listening to this udp port, for example apps for mobile phones or desktop apps, can receive those data. I understand that there is an option to adapt this port number but i didnt understand why there is a target ip address necessary or is this optional so in default case all devices listening to the udp port can receive the data (broadcast)?
Will there be more Data in the UDP stream for example sector and lap times for each player or vehicle speed so we can evaluate things like top lap time estimation when adding the players best sector times together.

With kind regards

Edited by user Monday, June 4, 2018 10:43:16 PM(UTC)  | Reason: Not specified

Rank: S-Class Racing License
#8 Posted : Tuesday, June 5, 2018 4:21:19 AM(UTC)
Having a race engineer would be cool too thinking about it.
Rank: Racing Permit
 2 users liked this post.
#9 Posted : Tuesday, June 5, 2018 4:56:55 AM(UTC)
Hi can someone please explain in english to us mere mortals exactly what this brings to game and what effect this would have, as i have no clue what all that means
Rank: Driver's Permit
 2 users liked this post.
#10 Posted : Tuesday, June 5, 2018 5:11:01 AM(UTC)
Originally Posted by: smudgerk118 Go to Quoted Post
Hi can someone please explain in english to us mere mortals exactly what this brings to game and what effect this would have, as i have no clue what all that means


With this the game sends telemetry Data to the Local network (the network your console and maybe mobile phone and Computers are in).
With special apps it is possible to use this data and bring it to an external display to show it for example in a selfbuild rig or you can use the data to optimize your driving skills and so on.
You can search for Project Cars UDP or RS Dash for examples how to use it.
Rank: D-Class Racing License
 1 user liked this post.
#11 Posted : Tuesday, June 5, 2018 7:26:40 AM(UTC)
Do you think rev lights on Fanatec wheels will work now?
Rank: S-Class Racing License
User is suspended until 2/2/2046 1:34:58 AM(UTC)
#12 Posted : Tuesday, June 5, 2018 7:36:48 AM(UTC)
Originally Posted by: EpicEvan777 Go to Quoted Post
Having a race engineer would be cool too thinking about it.


All I want is to output to a Andriod 10 inch tablet the following RPM, Speed im going and Gear im in and I will be stoked. Assists showing like TC, ABS, Stability management or what ever it is called is all ways off so yea dont need to know about that one. Bur would be a nice touchalong with current lap and previous lap as well as fastest lap would be the Icing.
Rank: On the Podium
 2 users liked this post.
#13 Posted : Tuesday, June 5, 2018 7:55:29 AM(UTC)
Originally Posted by: smudgerk118 Go to Quoted Post
Hi can someone please explain in english to us mere mortals exactly what this brings to game and what effect this would have, as i have no clue what all that means


People smarter than you and I will be able to use this data to create apps and tools that we can all enjoy.

One example would be to create an accessory-on for your steering wheel so that it displays dashboard information like a racing car would.

Rank: D-Class Racing License
#14 Posted : Tuesday, June 5, 2018 8:18:54 AM(UTC)
How can I start working on this?
Signature loading please wait ...
Rank: Driver's License
 1 user liked this post.
#15 Posted : Tuesday, June 5, 2018 10:10:06 AM(UTC)
Things like this would be possible

https://www.youtube.com/watch?v=PI0ao3vNWEE

I built this for rFactor on the PC, it basically takes the stream from the game and sends it to an arduino which then outputs the data to physical items, such as LED's servos, etc,

the same thing could be acheived here using the data stream from the xbox, if the info is there, we can output it however we like
Rank: R-Class Racing License
 3 users liked this post.
#16 Posted : Tuesday, June 5, 2018 10:32:58 AM(UTC)
Originally Posted by: HCR TJSteel Go to Quoted Post
Can I also ask if you're open to parameter requests,

I'm one of the staff which run TORA (the online racing association) and I've already started looking into creating an app for this data stream.

The thing we do is organise racing leagues, from series to endurance races, and being able to receive this data and have it displayed on a full live timing system would be awesome,

The only things I can't see are things such as what the global position of the car is in relation the the track they're currently on so there'd be no way of plotting or tracking the cars position.

Is this every parameter you'd have available to output or are there any options to add more if required?

I've listed below what I think would be good and how it would benefit people.

x, y, z position in global terms: could then plot where the car is which would be useful for saving and reading telemetry to create better tunes / plotting the cars positions for display in live timing
gear number: useful in dashboard building as a gear indicator / telemetry
current track: again would be useful for telemetry readings
current race position: useful in a live timing diagram
distance travelled: again live timing of endurance races
fastest lap: useful for live timing, and analysing which tune produced the better times.

This information could also benfit the people of the twitch community as they could make some cool looking custom overlays

Those are just a couple I can think of but if it's possible to implement these in the future this would be awesome.


This is a big yes! i'll test this forever haha

Maybe if we can the addition of fuel level and tyre wear would be great as well for simulation racing

That Turn 10 Twitch mod, and the one and only Skreamies the spectacular.
Rank: Driver's Permit
#17 Posted : Tuesday, June 5, 2018 12:52:39 PM(UTC)
How long do you think it will take for some one to actually create something easily accessible with this tech?
Rank: Driver's License
 1 user liked this post.
#18 Posted : Tuesday, June 5, 2018 1:08:01 PM(UTC)
I've already wrote something which can read the data :)

Just need to make it do something useful
Rank: C-Class Racing License
 3 users liked this post.
#19 Posted : Tuesday, June 5, 2018 1:15:10 PM(UTC)
http://www.stryder-it.de...ex.php#appinfo_download

the link for the dashboard is above, it works with project cars and forza 7. Although forza is limited as you only have led lights for revs and speed reading, no gear info, on my mobile.

Although this may change soon.

I paid a few quid for it so give it a try.

Can devs comment on this?

Edited by user Tuesday, June 5, 2018 1:18:15 PM(UTC)  | Reason: Not specified

Rank: Racing Permit
#20 Posted : Tuesday, June 5, 2018 3:08:29 PM(UTC)
Anyone had any luck making use of the data in Python?

I can read the UDP packets on my Raspberry Pi but I'm not sure if I'm doing it right. Taking it in as an array seems to have a length of 232, and only indices 4-7 or so have any data.
Rank: Driver's License
 2 users liked this post.
#21 Posted : Tuesday, June 5, 2018 3:38:38 PM(UTC)
not python but I have in Java

there are 58 variables, all of which are output in chunks of 4 bytes in hex, you need to take this data and convert it to a 32bit int / float depending on which variable you're looking at.
bytes 4-7 = timestamp, that's all you'll see unless your in a race unpaused

I spent most of the night looking at it and I now understand the data enough to have the individual data values streaming in real time to the command line

just out of interest, what are you planning on doing with the data once you've processed it?
Rank: Racing Permit
 2 users liked this post.
#22 Posted : Tuesday, June 5, 2018 3:41:51 PM(UTC)
Originally Posted by: TheAdmiester Go to Quoted Post
Anyone had any luck making use of the data in Python?

I can read the UDP packets on my Raspberry Pi but I'm not sure if I'm doing it right. Taking it in as an array seems to have a length of 232, and only indices 4-7 or so have any data.

Yes. I wanted to be able to get some TSV of the data, so I wrote some Python to do this and put it on GitHub just now: https://github.com/nettrom/forza_motorsport

There's both a class for the data packets themselves, and a stream-to-TSV script that uses it. Hope that's helpful!
Rank: Driver's Permit
 1 user liked this post.
#23 Posted : Tuesday, June 5, 2018 4:03:28 PM(UTC)
Could sombody write something like that:
if s32 IsRaceOn = 1 then f32 CurrentEngineRpm/(f32 EngineMaxRpm - f32 EngineIdleRpm) ==> G29 rpm leds

Becouse logitech cant :)
Rank: Racing Permit
 1 user liked this post.
#24 Posted : Tuesday, June 5, 2018 5:10:05 PM(UTC)
Originally Posted by: HCR TJSteel Go to Quoted Post
not python but I have in Java

there are 58 variables, all of which are output in chunks of 4 bytes in hex, you need to take this data and convert it to a 32bit int / float depending on which variable you're looking at.
bytes 4-7 = timestamp, that's all you'll see unless your in a race unpaused

I spent most of the night looking at it and I now understand the data enough to have the individual data values streaming in real time to the command line

just out of interest, what are you planning on doing with the data once you've processed it?


Thanks, I might give it a go in Java since I already have a basic understanding of it. As for what I'm doing with it, not much really. Just a little coding exercise to see what I can do with it and maybe set it up as a little telemetry app on a tablet or something.
Rank: On the Podium
 1 user liked this post.
#25 Posted : Tuesday, June 5, 2018 5:49:38 PM(UTC)
What's the benefit of this for Xbox players? Why should I be excited about This?

I'm ignorant in regards to this update; therefore, I don't quite understand why this is a big deal. Feed me knowledge oh wise tech fans!
7 Pages123>>Next

Notification

Icon
Error