A | B | C | D | E | F | G | |
---|---|---|---|---|---|---|---|
1 | |||||||
2 | Telemetry Packet Data | ||||||
3 | Primarily for Gran Turismo 7, some may be applicable to GT6 and GT Sport. | ||||||
4 | PLEASE NOTE: This is not in any way an OFFICIAL documentation for the telemetry data sent from Gran Turismo 7. Some of the data is still unknown, or there is a lot of uncertainty on how it is used. Everything you will find here is only possible due to the fine work of several individuals, but maybe first and foremost the work of Nenkai. | ||||||
5 | |||||||
6 | Sourced from the following: | ||||||
7 | https://www.gtplanet.net/forum/threads/gt7-is-compatible-with-motion-rig.410728/post-13799643 | ||||||
8 | https://github.com/Nenkai/PDTools/issues/14 | ||||||
9 | |||||||
10 | Specifically for EzioDash Pro users who are saving telemetry data from within the app – The data is already decrypted! If you want to use the data, you should be able to just fetch it from the offset and parse it as the datatype for that field. The reason for this is that since it was already decoded once, why put another hurdle in the way of progress? Telemetry data from EzioDash Pro is saved in binary .gt7td files, accompanied by a .json file for some metadata. In the metadata you will find which packet size was saved (see below) as well as the granularity (steps between packets) that was used. | ||||||
11 | |||||||
12 | Name | Type | Bytes | Offset | Description | ||
13 | HEARTBEAT "A" | Decryption key 0xDEADBEAF | |||||
14 | magic | UInt32 | 4 | 0x0 | "Magic" value, 0x47375330 for GT Sport and GT7, 0x30533647 for GT6 | ||
15 | posX | Float32 | 4 | 0x4 | Position X; Y points up, XZ is the race track plane. Origin varies by track. | ||
16 | posY | Float32 | 4 | 0x8 | Position Y; Y points up, XZ is the race track plane. Origin varies by track. | ||
17 | posZ | Float32 | 4 | 0xC | Position Z; Y points up, XZ is the race track plane. Origin varies by track. | ||
18 | velX | Float32 | 4 | 0x10 | Velocity X; In metres/second, normalized gives vehicle direction. | ||
19 | velY | Float32 | 4 | 0x14 | Velocity Y; In metres/second, normalized gives vehicle direction. | ||
20 | velZ | Float32 | 4 | 0x18 | Velocity Z; In metres/second, normalized gives vehicle direction. | ||
21 | rotX | Float32 | 4 | 0x1C | Seems to be the a unit quaternion that gives the rotation of the car relative to the track coordinate system. | ||
22 | rotW | Float32 | 4 | 0x20 | Seems to be the a unit quaternion that gives the rotation of the car relative to the track coordinate system. | ||
23 | rotY | Float32 | 4 | 0x24 | Seems to be the a unit quaternion that gives the rotation of the car relative to the track coordinate system. | ||
24 | rotZ | Float32 | 4 | 0x28 | Seems to be the a unit quaternion that gives the rotation of the car relative to the track coordinate system. | ||
25 | angX | Float32 | 4 | 0x2C | Angular velocity; In radians/second, how fast the car turns about an axis. | ||
26 | angY | Float32 | 4 | 0x30 | Angular velocity; In radians/second, how fast the car turns about an axis. | ||
27 | angZ | Float32 | 4 | 0x34 | Angular velocity; In radians/second, how fast the car turns about an axis. | ||
28 | rideHeight | Float32 | 4 | 0x38 | Ride/body height; seems to include suspension effects, not completely sure what is measured here. | ||
29 | engineRpm | Float32 | 4 | 0x3C | Engine RPM. | ||
30 | IV | UInt32 | 4 | 0x40 | Code used to decode the raw packets – you can ignore this. | ||
31 | fuelLevel | Float32 | 4 | 0x44 | Amount of of fuel left, starts at Fuel Capacity at start of race. Unreliable for EVs. | ||
32 | fuelCapacity | Float32 | 4 | 0x48 | Amount of fuel that can fit in the tank, usually 100 for fossil fuel cars, 5 for the kart. Unreliable for EVs. | ||
33 | speed | Float32 | 4 | 0x4C | Speed in metres/second, positive even when going in reverse. | ||
34 | turboBoost | Float32 | 4 | 0x50 | This value - 1 gives the Turbo Boost display. | ||
35 | oilPressure | Float32 | 4 | 0x54 | Oil pressure – Never changes. | ||
36 | waterTemperature | Float32 | 4 | 0x58 | Water temperature – Never changes. | ||
37 | oilTemperature | Float32 | 4 | 0x5C | Oil temperature – Never changes. | ||
38 | tyreTempFL | Float32 | 4 | 0x60 | Tyre temperature in degrees celsius. | ||
39 | tyreTempFR | Float32 | 4 | 0x64 | Tyre temperature in degrees celsius. | ||
40 | tyreTempRL | Float32 | 4 | 0x68 | Tyre temperature in degrees celsius. | ||
41 | tyreTempRR | Float32 | 4 | 0x6C | Tyre temperature in degrees celsius. | ||
42 | packetNumber | UInt32 | 4 | 0x70 | Incremental packet number, increases as long as the game is running. | ||
43 | currentLap | UInt16 | 2 | 0x72 | Current lap in a race, is 0 before starting first lap. 65535 while not on track. | ||
44 | raceLaps | UInt16 | 2 | 0x74 | Number of laps in a race, remains at 0 for endurance races and time trials. | ||
45 | bestLapTime | UInt32 | 4 | 0x78 | Best lap time so far, for the current race. Given in milliseconds. | ||
46 | lastLapTime | UInt32 | 4 | 0x7C | Last lap time set for the current race. Given in milliseconds. | ||
47 | timeOfDay | UInt32 | 4 | 0x80 | Timestamp in milliseconds for time of day on track. Affected by time progression speed. Useless for timing. | ||
48 | racePosition | UInt16 | 2 | 0x82 | Position in the race. | ||
49 | numberOfCars | UInt16 | 2 | 0x84 | Number of cars in the race. | ||
50 | rpmFlashing | UInt16 | 2 | 0x86 | RPM for when the rev indicator starts flashing. | ||
51 | rpmRevLimiter | UInt16 | 2 | 0x88 | RPM for when the rev limiter kicks in. | ||
52 | maximumSpeed | UInt16 | 2 | 0x8A | In-game "maximum speed" – affected by in-game setting for speed units (kph, mph). | ||
53 | miscFlags | UInt16 | 2 | 0x8C | Bit field for various things (see ◼︎ below). | ||
54 | gears | UInt8 | 1 | 0x8D | Two 4-bit integers, lower nibble is current gear, upper nibble is suggested gear (see ◼︎ below). | ||
55 | throttleInput | UInt8 | 1 | 0x8E | Throttle input value as 0-255. See also ◼︎ below. | ||
56 | brakeInput | UInt8 | 1 | 0x8F | Brake input value as 0-255. See also ◼︎ below. | ||
57 | unknown0x93 | UInt8 | 1 | 0x90 | Likely only used for padding. | ||
58 | roadPlaneX | Float32 | 4 | 0x94 | Possibly a road plane quaternion – not determined. | ||
59 | roadPlaneW | Float32 | 4 | 0x98 | Possibly a road plane quaternion – not determined. | ||
60 | roadPlaneY | Float32 | 4 | 0x9C | Possibly a road plane quaternion – not determined. | ||
61 | roadPlaneZ | Float32 | 4 | 0xA0 | Possibly a road plane quaternion – not determined. | ||
62 | tyreSpeedFL | Float32 | 4 | 0xA4 | Angular speed of the tyre in radians/second, sign opposite to vehicle speed. | ||
63 | tyreSpeedFR | Float32 | 4 | 0xA8 | Angular speed of the tyre in radians/second, sign opposite to vehicle speed. | ||
64 | tyreSpeedRL | Float32 | 4 | 0xAC | Angular speed of the tyre in radians/second, sign opposite to vehicle speed. | ||
65 | tyreSpeedRR | Float32 | 4 | 0xB0 | Angular speed of the tyre in radians/second, sign opposite to vehicle speed. | ||
66 | tyreRadiusFL | Float32 | 4 | 0xB4 | Tyre radius in metres, multiply by angular speed to get tyre speed in metres/second. | ||
67 | tyreRadiusFR | Float32 | 4 | 0xB8 | Tyre radius in metres, multiply by angular speed to get tyre speed in metres/second. | ||
68 | tyreRadiusRL | Float32 | 4 | 0xBC | Tyre radius in metres, multiply by angular speed to get tyre speed in metres/second. | ||
69 | tyreRadiusRR | Float32 | 4 | 0xC0 | Tyre radius in metres, multiply by angular speed to get tyre speed in metres/second. | ||
70 | suspensionTravelFL | Float32 | 4 | 0xC4 | Likely suspension travel in metres – not determined. | ||
71 | suspensionTravelFR | Float32 | 4 | 0xC8 | Likely suspension travel in metres – not determined. | ||
72 | suspensionTravelRL | Float32 | 4 | 0xCC | Likely suspension travel in metres – not determined. | ||
73 | suspensionTravelRR | Float32 | 4 | 0xD0 | Likely suspension travel in metres – not determined. | ||
74 | unknown0xD4 | ??? | 4 | 0xD4 | Unknown use. | ||
75 | unknown0xD8 | ??? | 4 | 0xD8 | Unknown use. | ||
76 | unknown0xDC | ??? | 4 | 0xDC | Unknown use. | ||
77 | unknown0xE0 | ??? | 4 | 0xE0 | Unknown use. | ||
78 | unknown0xE4 | ??? | 4 | 0xE4 | Unknown use. | ||
79 | unknown0xE8 | ??? | 4 | 0xE8 | Unknown use. | ||
80 | unknown0xEC | ??? | 4 | 0xEC | Unknown use. | ||
81 | unknown0xF0 | ??? | 4 | 0xF0 | Unknown use. | ||
82 | clutch | Float32 | 4 | 0xF4 | Clutch. | ||
83 | clutchEngaged | Float32 | 4 | 0xF8 | Likely clutch engagement. | ||
84 | rpmAfterClutch | Float32 | 4 | 0xFC | RPM after clutch. | ||
85 | transmissionTopSpeed | Float32 | 4 | 0x100 | Gear ratio that seem to correspond to the top speed setting of a customizable gear box. | ||
86 | gearRatio1st | Float32 | 4 | 0x104 | Gear ratio for 1st gear. | ||
87 | gearRatio2nd | Float32 | 4 | 0x108 | Gear ratio for 2nd gear. | ||
88 | gearRatio3rd | Float32 | 4 | 0x10C | Gear ratio for 3rd gear. | ||
89 | gearRatio4th | Float32 | 4 | 0x110 | Gear ratio for 4th gear. | ||
90 | gearRatio5th | Float32 | 4 | 0x114 | Gear ratio for 5th gear. | ||
91 | gearRatio6th | Float32 | 4 | 0x118 | Gear ratio for 6th gear. | ||
92 | gearRatio7th | Float32 | 4 | 0x11C | Gear ratio for 7th gear. | ||
93 | gearRatio8th | Float32 | 4 | 0x120 | Gear ratio for 8th gear. | ||
94 | carId | UInt32 | 4 | 0x124 | In-game car id; see https://www.gran-turismo.com/common/dist/gt7/companion/localize16.js | ||
95 | PACKET SIZE | 296 | |||||
96 | |||||||
97 | Name | Type | Bytes | Offset | Description | ||
98 | HEARTBEAT "B" | Decryption key 0xDEADBEEF | |||||
99 | wheelRotationRadians | Float32 | 4 | 0x128 | This is the steering angle in radians. | ||
100 | unknown0x12C | Float32 | 4 | 0x12C | Possibly lateral slip angle. |