Difference between revisions of "GT350 CAN Bus Topology"
(→ADDR: 077 -- GT350_SPEEDOMETER) |
|||
(109 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | __FORCETOC__ | ||
+ | |||
+ | == CAN bus table (VERIFIED) == | ||
+ | |||
+ | The following table are all verified values. Many unverified values are listed in the "CAN bus register details" section of this wiki. | ||
+ | |||
{| class = "diyTable canbusTable" | {| class = "diyTable canbusTable" | ||
! | ! | ||
Line 7: | Line 13: | ||
! | ! | ||
! | ! | ||
− | ! colspan="2" | | + | ! colspan="2" |Y = mX + b |
! colspan="2" |Range | ! colspan="2" |Range | ||
! rowspan="2" |Sampling Rate | ! rowspan="2" |Sampling Rate | ||
Line 27: | Line 33: | ||
|- | |- | ||
− | |GT350_STEERING_ANGLE | + | |[http://wiki.rcollins.org/core/index.php?title=GT350_CAN_Bus_Topology#ADDR:_076_--_GT350_STEERING_ANGLE GT350_STEERING_ANGLE] |
|STEERING_ANGLE_DEG | |STEERING_ANGLE_DEG | ||
|76 | |76 | ||
Line 74: | Line 80: | ||
|1=Reverse engaged | |1=Reverse engaged | ||
− | |- | + | |
+ | |- | ||
+ | |GT350_SPEEDOMETER | ||
+ | |SPEEDOMETER_KPH | ||
+ | |77 | ||
+ | |B1[0] | ||
+ | |B0[7] | ||
+ | |16 | ||
+ | |Big-Endian | ||
+ | |Unsigned integer | ||
+ | |0.01 | ||
+ | |0.00 | ||
+ | |0.000 | ||
+ | |656.000 | ||
+ | |50 Hz | ||
+ | |Speedometer (KPH)? Very likely speedometer. Seems to have about a 3.3% fudge factor with respect to wheel speed sensors. | ||
+ | |||
+ | |- | ||
+ | | | ||
+ | |SPEEDOMETER_MPH | ||
+ | |77 | ||
+ | |B1[0] | ||
+ | |B0[7] | ||
+ | |16 | ||
+ | |Big-Endian | ||
+ | |Unsigned integer | ||
+ | |0.00621371 | ||
+ | |0.00 | ||
+ | |0.000 | ||
+ | |408.000 | ||
+ | |50 Hz | ||
+ | |Same as above (MPH) | ||
+ | |||
+ | |- | ||
|GT350_BRAKE_PRESSURE | |GT350_BRAKE_PRESSURE | ||
|BRAKE_PRESSURE_BAR | |BRAKE_PRESSURE_BAR | ||
Line 596: | Line 635: | ||
|50 Hz | |50 Hz | ||
|Transmission Temperature (deg-F) | |Transmission Temperature (deg-F) | ||
+ | |- | ||
+ | |GT350_ENGINE_LAMBDA? | ||
+ | |Lambda? | ||
+ | |242 | ||
+ | |B3[0] | ||
+ | |B2[4] | ||
+ | |13 | ||
+ | |Big-Endian | ||
+ | |Signed 2's complement integer | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |25 Hz | ||
+ | |Possible engine lambda (AFR) sensor. | ||
+ | |- | ||
+ | | | ||
+ | |TBD | ||
+ | |242 | ||
+ | |B2[5] | ||
+ | |B2[7] | ||
+ | |3 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |25 Hz | ||
+ | |There is some type of 3-bit field here | ||
+ | |- | ||
+ | |GT350_ALTIMETER? | ||
+ | |Altimeter? | ||
+ | |326 | ||
+ | |B3[0] | ||
+ | |B2[1] | ||
+ | |10 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |1 Hz | ||
+ | |Possible altimeter, but really just a wild guess at this point. | ||
+ | |}<br><hr><br> | ||
+ | |||
+ | == CAN bus register details == | ||
+ | Each section below lists one CAN bus register, each byte, and each bit. Some values are known and verified; other values are guesses or work-in-progress; and other values are completely unknown. | ||
+ | |||
+ | For known values, there will be a register description, datatype description, decoding formula, range of values, and possible notes of explanation. For both known, and unknown values, the following descriptions apply. | ||
+ | |||
+ | '''VALIDATED FIELDS''' | ||
+ | * Given a descriptive name | ||
+ | * Datatype will give full details how the data is formulated and decoded on the CAN bus | ||
+ | * Decoding formula in the form of "Y = mX + b" | ||
+ | * Range of possible values using standard math set notation with "[ ]" and "( )" | ||
+ | * Applicable notes where necessary | ||
+ | <br> | ||
+ | '''PARTIALLY UNKNOWN FIELDS''' | ||
+ | * Usually given the names in the form TBD_REGNUM_FIELDNUM. For example: TBD_077_01 or TBD_077_02 where '077' is the CAN bus address associated with this register, and '01' and '02' are the enumerated counts of the unknown fields. | ||
+ | * Usually I've figured out the datatype and will give a datatype definition. | ||
+ | * Sometimes I've figured out the decoding formula, but don't know what the data represents. | ||
+ | * Sometimes I'll make an educated or wild guess what I think is in this field. | ||
+ | <br> | ||
+ | '''COMPLETELY UNKNOWN FIELDS''' | ||
+ | * Will be shown as "?" in the register mappings below. | ||
+ | * Values marked with "?" will constantly be changing, but their contents are unknown. | ||
+ | <br> | ||
+ | '''HARD CODED FIELDS''' | ||
+ | * These values never seem to change; they are fixed values. | ||
+ | * Will be marked either "1" or "0" in the register mappings below. | ||
+ | * Their purpose is completely unknown. | ||
+ | <br> | ||
+ | === ADDR: 041 -- GT350_041_TBD === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |}<br>'''Fixed Values: HEX:''' 00 00 00 00 00 00 00 00 | ||
+ | <br> | ||
+ | |||
+ | === ADDR: 047 -- GT350_047_TBD === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |}<br>'''Fixed Values: HEX:''' 20 00 00 00 00 00 00 00 | ||
+ | <br> | ||
+ | |||
+ | === ADDR: 04A -- GT350_04A_TBD === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |1 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |}<br>'''Fixed Values: HEX:''' 02 00 00 00 00 00 00 00 | ||
+ | <br> | ||
+ | |||
+ | === ADDR: 04B -- GT350_04B_TBD === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |}<br>'''Fixed Values: HEX:''' 00 C0 D8 D8 D8 D8 C0 00 | ||
+ | <br> | ||
+ | === ADDR: 04C -- GT350_04C_TBD === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | |UBIT_1_07 | ||
+ | |UBIT_1_06 | ||
+ | |1 | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |1 | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |} | ||
+ | <br>'''UBIT_1_07:''' Unknown bit, byte-1, bit-7 | ||
+ | <br>'''UBIT_1_06:''' Unknown bit, byte-1, bit-6 | ||
+ | |||
+ | <br>'''FIXED FIELDS:''' | ||
+ | * Byte-0 HEX: 20 | ||
+ | * Byte-2 HEX: FF | ||
+ | * Byte-3 HEX: 00 | ||
+ | * Byte-4 HEX: 00 | ||
+ | * Byte-5 HEX: 00 | ||
+ | * Byte-6 HEX: 00 | ||
+ | * Byte-7 HEX: 00 | ||
+ | <br> | ||
+ | |||
+ | === ADDR: 076 -- GT350_076_STEERING_ANGLE === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | |REVERSE_SW | ||
+ | | colspan="7" |STEERING_ANGLE [b14:b08] | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | | colspan="8" |STEERING_ANGLE [b07:b00] | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |1 | ||
+ | |1 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |UBIT_4_07 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |}<br>'''REVERSE_SW:''' | ||
+ | * Datatype: Boolean, 1-bit | ||
+ | * 1=Reverse engaged; 0=Reverse not engaged | ||
+ | <br>'''STEERING_ANGLE:''' | ||
+ | * Datatype: Big-Endian, Unsigned integer, 15-bits | ||
+ | * Available as degrees or radians | ||
+ | * Y = mX + b: Degrees: m=-0.1, b=1600 | ||
+ | * Y = mX + b: Radians: m=-0.00174533, b= 27.92528 | ||
+ | * Practical Range: (-450, 450) Degrees, (-7.85, 7.85) Radians | ||
+ | * Theoretical Range: (-1600, 1600) Degrees, (-28, 28) Radians | ||
+ | * Notes: Degrees (radians) increase in clockwise direction of steering wheel | ||
+ | <br>'''UBIT_4_07:''' Unknown bit, Byte-4, bit-7. Changes value, but purpose is unknown. | ||
+ | |||
+ | <br>'''FIXED VALUES:''' | ||
+ | * Byte-2 HEX: C0 | ||
+ | * Byte-3 HEX: 00 | ||
+ | * Byte-5 HEX: 00 | ||
+ | * Byte-6 HEX: 00 | ||
+ | * Byte-7 HEX: 00 | ||
+ | <br> | ||
+ | |||
+ | === ADDR: 077 -- GT350_SPEEDOMETER === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | | colspan="8" |SPEEDOMETER [b15:b08] | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | | colspan="8" |SPEEDOMETER [b07:b00] | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |}<br>'''SPEEDOMETER:''' | ||
+ | * Datatype: Big-Endian, Unsigned Integer, 16-bits | ||
+ | * Available as: Kilometers per hour (KPH), Miles per hour (MPH) | ||
+ | * Y = mX + b: KPH: m=0.01, b=0 | ||
+ | * Y = mX + b: MPH: m=0.00621371, b=0 | ||
+ | * Theoretical Range: [0, 656) KPH, [0, 408) MPH | ||
+ | * '''NOTES:''' Speedometer is an "estimate" based on the average wheel speed sensor values. | ||
+ | <br> | ||
+ | |||
+ | === ADDR: 07D -- GT350_BRAKE_PRESSURE === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | |0 | ||
+ | |0 | ||
+ | | colspan="6" |BRAKE_PRESSURE [b13:b08] | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | | colspan="8" |BRAKE_PRESSURE [b07:b00] | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |? | ||
+ | |}<br>'''BRAKE_PRESSURE''' | ||
+ | * Datatype: Big-Endian, Unsigned Integer, 14-bits | ||
+ | * Available as: BAR, KPA, or PSI | ||
+ | * Y = mX + b: BAR: m=0.025, b=0 | ||
+ | * Y = mX + b: KPA: m=2.5, b=0 | ||
+ | * Y = mX + b: PSI: m=0.362595, b=0 | ||
+ | * Practical Range: [0, 64] BAR, [0, 6400] KPA, [0, 928] PSI | ||
+ | * Theoretical Range: [0, 410) BAR, [0, 40960] KPA, [0, 5940) PSI | ||
+ | * Notes: The practical range and theoretical range are many orders of magnitude different. The 14-bit field will allow up to 410 BAR, but in the real word, I've never seen more than 64 BAR no matter how hard I pressed on the brake pedal. | ||
+ | <br> | ||
+ | |||
+ | === ADDR: 156 -- GT350_ENGINE_TEMPS_01 === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | | colspan="8" |COOLANT_TEMP [b07:b00] | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | | colspan="8" |ENGINE_OIL_TEMP [b07:b00] | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |1 | ||
+ | |1 | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |0 | ||
+ | |}<br>'''COOLANT_TEMP''' | ||
+ | * Datatype: Big-Endian, Unsigned Integer, 8-bits | ||
+ | * Available as: Celcius, Kelvin, or Farenheit | ||
+ | * Y = mX + b: Celcius (C): m=1.0, b=0 | ||
+ | * Y = mX + b: Kelvin (K): m=213.15, b=0 | ||
+ | * Y = mX + b: Farenheit (F): m=1.8, b=-76 | ||
+ | * Theoretical Range: [-60, 195] deg-C, [213.15, 468.15] deg-K, [-76, 383] deg-F | ||
+ | <br>'''ENGINE_OIL_TEMP''' | ||
+ | * Datatype: Big-Endian, Unsigned Integer, 8-bits | ||
+ | * Available as: Celcius, Kelvin, or Farenheit | ||
+ | * Y = mX + b: Celcius (C): m=1.0, b=0 | ||
+ | * Y = mX + b: Kelvin (K): m=213.15, b=0 | ||
+ | * Y = mX + b: Farenheit (F): m=1.8, b=-76 | ||
+ | * Theoretical Range: [-60, 195] deg-C, [213.15, 468.15] deg-K, [-76, 383] deg-F | ||
+ | <br> | ||
+ | |||
+ | === ADDR: TBD -- GT350_ === | ||
+ | {| class="diyTable canRegister" | ||
+ | ! | ||
+ | !7 | ||
+ | !6 | ||
+ | !5 | ||
+ | !4 | ||
+ | !3 | ||
+ | !2 | ||
+ | !1 | ||
+ | !0 | ||
+ | |- | ||
+ | |Byte-0 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Byte-1 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Byte-2 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Byte-3 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Byte-4 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Byte-5 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Byte-6 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |Byte-7 | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
|} | |} |
Latest revision as of 04:28, 14 June 2017
Contents
- 1 CAN bus table (VERIFIED)
- 2 CAN bus register details
- 2.1 ADDR: 041 -- GT350_041_TBD
- 2.2 ADDR: 047 -- GT350_047_TBD
- 2.3 ADDR: 04A -- GT350_04A_TBD
- 2.4 ADDR: 04B -- GT350_04B_TBD
- 2.5 ADDR: 04C -- GT350_04C_TBD
- 2.6 ADDR: 076 -- GT350_076_STEERING_ANGLE
- 2.7 ADDR: 077 -- GT350_SPEEDOMETER
- 2.8 ADDR: 07D -- GT350_BRAKE_PRESSURE
- 2.9 ADDR: 156 -- GT350_ENGINE_TEMPS_01
- 2.10 ADDR: TBD -- GT350_
CAN bus table (VERIFIED)
The following table are all verified values. Many unverified values are listed in the "CAN bus register details" section of this wiki.
Hex Address | Position | Y = mX + b | Range | Sampling Rate | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Address Name | Field Name | Start | End | Length (bits) | Direction | Data Format | Data Scale (m) | Data Offset (b) | Start | End | Description | ||
GT350_STEERING_ANGLE | STEERING_ANGLE_DEG | 76 | B1[0] | B0[6] | 15 | Big-Endian | Unsigned Integer | -0.1 | 1600 | -450 | 450 | 50 Hz | Steering angle (degrees) |
STEERING_ANGLE_RAD | 76 | B1[0] | B0[6] | 15 | Big-Endian | Unsigned Integer | -0.00174533 | 27.92528 | -7.854 | 7.854 | 50 Hz | Steering angle (radians) | |
REVERSE_SW | 76 | B1[7] | 1 | Bit | 50 Hz | 1=Reverse engaged
| |||||||
GT350_SPEEDOMETER | SPEEDOMETER_KPH | 77 | B1[0] | B0[7] | 16 | Big-Endian | Unsigned integer | 0.01 | 0.00 | 0.000 | 656.000 | 50 Hz | Speedometer (KPH)? Very likely speedometer. Seems to have about a 3.3% fudge factor with respect to wheel speed sensors. |
SPEEDOMETER_MPH | 77 | B1[0] | B0[7] | 16 | Big-Endian | Unsigned integer | 0.00621371 | 0.00 | 0.000 | 408.000 | 50 Hz | Same as above (MPH) | |
GT350_BRAKE_PRESSURE | BRAKE_PRESSURE_BAR | 7D | B1[0] | B0[5] | 14 | Big-Endian | Unsigned Integer | 0.025 | 0 | 0.0 | 409.6 | 50 Hz | Brake pressure (bar) |
BRAKE_PRESSURE_KPA | 7D | B1[0] | B0[5] | 14 | Big-Endian | Unsigned Integer | 2.5 | 0 | 0.0 | 40960 | 50 Hz | Brake pressure (kPa) | |
BRAKE_PRESSURE_PSI | 7D | B1[0] | B0[5] | 14 | Big-Endian | Unsigned Integer | 0.362595 | 0 | 0.00 | 5940.75 | 50 Hz | Brake pressure (psi) | |
GT350_ENGINE_TEMPS_01 | COOLANT_TEMP_C | 156 | B0[0] | B0[7] | 8 | Big-Endian | Unsigned Integer | 1 | -60.00 | -60.00 | 195.00 | 10 Hz | Coolant temperature (deg-C) |
COOLANT_TEMP_K | 156 | B0[0] | B0[7] | 8 | Big-Endian | Unsigned Integer | 1 | 213.15 | 213.15 | 468.15 | 10 Hz | Coolant temperature (deg-K) | |
COOLANT_TEMP_F | 156 | B0[0] | B0[7] | 8 | Big-Endian | Unsigned Integer | 1.80 | -76.00 | -76.00 | 383.00 | 10 Hz | Coolant temperature (deg-F) | |
UNKNOWN_TEMP_C | 156 | B1[0] | B1[7] | 8 | Big-Endian | Unsigned Integer | 1 | -60.00 | -60.00 | 195.00 | 10 Hz | Unknown temperature sensor (deg-C) | |
GT350_WEATHER | AMBIENT_TEMP_C | 178 | B5[0] | B4[1] | 10 | Big-Endian | Unsigned Integer | 0.25 | -128.00 | -128.00 | 128.00 | 10 Hz | Ambient temperature (deg-C) |
AMBIENT_TEMP_K | 178 | B5[0] | B4[1] | 10 | Big-Endian | Unsigned Integer | 0.25 | 145.15 | 145.15 | 401.15 | 10 Hz | Ambient temperature (deg-K) | |
AMBIENT_TEMP_F | 178 | B5[0] | B4[1] | 10 | Big-Endian | Unsigned Integer | 0.45 | -198.40 | -198.40 | 262.40 | 10 Hz | Ambient temperature (deg-F) | |
AMBIENT_PRESSURE_MBAR | 178 | B6[0] | B6[7] | 8 | Big-Endian | Unsigned Integer | 2.50 | 500.00 | 500.00 | 1140.00 | 10 Hz | Ambient pressure (mBar) | |
AMBIENT_PRESSURE_KPA | 178 | B6[0] | B6[7] | 8 | Big-Endian | Unsigned Integer | 0.25 | 50.00 | 50.00 | 114.00 | 10 Hz | Ambient pressure (kPa) | |
AMBIENT_PRESSURE_MBAR | 178 | B6[0] | B6[7] | 8 | Big-Endian | Unsigned Integer | 0.073825 | 14.765 | 14.765 | 33.664 | 10 Hz | Ambient pressure (inHg) | |
UNKNOWN_TEMP | 178 | B7[0] | B7[7] | 8 | Big-Endian | Unsigned Integer | TBD | TBD | TBD | TBD | 10 Hz | Unknown sensor; seems to be temperature related | |
GT350_RPM_TPS | THROTTLE_POSITION | 204 | B1[0] | B0[1] | 10 | Big-Endian | Unsigned Integer | 0.10 | 0.00 | 0.00 | 102.30 | 80 Hz | Throttle position (%) |
ENGINE_RPM | 204 | B4[0] | B3[4] | 13 | Big-Endian | Unsigned Integer | 2.00 | 0.00 | 0.00 | 16384.00 | 80 Hz | Engine RPM | |
GT350_213_MOTION | LONG_ACCELERATION_G | 213 | B6[0] | B5[1] | 10 | Big-Endian | Unsigned Integer | 0.0078125 | -3.9921875 | -4.000 | 4.000 | 50 Hz | Longitudinal acceleration (G) |
GT350_WHEEL_ROTATION | WHL_01 | 216 | B0[0] | B0[7] | 8 | Big-Endian | Unsigned Integer | 50 Hz | Some type of wheel rotation sensors. Monotonically increments while wheels are in motion. Starts at 0 when car is turned on. Does not return to 0 when car is not in motion. Seem to count rotation, or partial rotation of each wheel. | ||||
WHL_02 | 216 | B1[0] | B1[7] | 8 | Big-Endian | Unsigned Integer | 50 Hz | Same as above | |||||
WHL_03 | 216 | B2[0] | B2[7] | 8 | Big-Endian | Unsigned Integer | 50 Hz | Same as above | |||||
WHL_04 | 216 | B3[0] | B3[7] | 8 | Big-Endian | Unsigned Integer | 50 Hz | Same as above | |||||
GT350_WHEEL_SPEEDS | WHLSPD_FRNT_DRV_KPH | 217 | B1[0] | B0[6] | 15 | Big-Endian | Unsigned Integer | 0.012 | 0.00 | 0.00 | 394.00 | 80 Hz | Wheel speed sensor (front, driver, KPH) |
WHLSPD_FRNT_DRV_MPH | 217 | B1[0] | B0[6] | 15 | Big-Endian | Unsigned Integer | 0.007456452 | 0.00 | 0.00 | 245.00 | 80 Hz | Wheel speed sensor (front, driver, MPH) | |
WHLSPD_FRNT_PAS_KPH | 217 | B3[0] | B2[6] | 15 | Big-Endian | Unsigned Integer | 0.012 | 0.00 | 0.00 | 394.00 | 80 Hz | Wheel speed sensor (front, passenger, KPH) | |
WHLSPD_FRNT_PAS_MPH | 217 | B3[0] | B2[6] | 15 | Big-Endian | Unsigned Integer | 0.007456452 | 0.00 | 0.00 | 245.00 | 80 Hz | Wheel speed sensor (front, passenger, MPH) | |
WHLSPD_REAR_DRV_KPH | 217 | B5[0] | B4[6] | 15 | Big-Endian | Unsigned Integer | 0.012 | 0.00 | 0.00 | 394.00 | 80 Hz | Wheel speed sensor (rear, driver, KPH) | |
WHLSPD_REAR_DRV_MPH | 217 | B5[0] | B4[6] | 15 | Big-Endian | Unsigned Integer | 0.007456452 | 0.00 | 0.00 | 245.00 | 80 Hz | Wheel speed sensor (rear, driver, MPH) | |
WHLSPD_REAR_PAS_KPH | 217 | B7[0] | B6[6] | 15 | Big-Endian | Unsigned Integer | 0.012 | 0.00 | 0.00 | 394.00 | 80 Hz | Wheel speed sensor (rear, passenger, KPH) | |
WHLSPD_REAR_PAS_MPH | 217 | B7[0] | B6[6] | 15 | Big-Endian | Unsigned Integer | 0.007456452 | 0.00 | 0.00 | 245.00 | 80 Hz | Wheel speed sensor (rear, passenger, MPH) | |
GT350_TRANSMISSION | TBD | 230 | B0[4] | B0[7] | 4 | Big-Endian | Unsigned Integer | Seems to be clutch related because it changes value at the approximate times the clutch is being engaged and disengaged. | |||||
TRANSMISSION_TEMP_C | 230 | B4[0] | B4[7] | 8 | Big-Endian | Unsigned Integer | 1 | -60.00 | -60.00 | 195.00 | 50 Hz | Transmission Temperature (deg-C) | |
TRANSMISSION_TEMP_K | 230 | B4[0] | B4[7] | 8 | Big-Endian | Unsigned Integer | 1 | 213.15 | 213.15 | 498.15 | 50 Hz | Transmission Temperature (deg-K) | |
TRANSMISSION_TEMP_F | 230 | B4[0] | B4[7] | 8 | Big-Endian | Unsigned Integer | 1 | -76.00 | -76.00 | 383.00 | 50 Hz | Transmission Temperature (deg-F) | |
GT350_ENGINE_LAMBDA? | Lambda? | 242 | B3[0] | B2[4] | 13 | Big-Endian | Signed 2's complement integer | 25 Hz | Possible engine lambda (AFR) sensor. | ||||
TBD | 242 | B2[5] | B2[7] | 3 | 25 Hz | There is some type of 3-bit field here | |||||||
GT350_ALTIMETER? | Altimeter? | 326 | B3[0] | B2[1] | 10 | 1 Hz | Possible altimeter, but really just a wild guess at this point. |
CAN bus register details
Each section below lists one CAN bus register, each byte, and each bit. Some values are known and verified; other values are guesses or work-in-progress; and other values are completely unknown.
For known values, there will be a register description, datatype description, decoding formula, range of values, and possible notes of explanation. For both known, and unknown values, the following descriptions apply.
VALIDATED FIELDS
- Given a descriptive name
- Datatype will give full details how the data is formulated and decoded on the CAN bus
- Decoding formula in the form of "Y = mX + b"
- Range of possible values using standard math set notation with "[ ]" and "( )"
- Applicable notes where necessary
PARTIALLY UNKNOWN FIELDS
- Usually given the names in the form TBD_REGNUM_FIELDNUM. For example: TBD_077_01 or TBD_077_02 where '077' is the CAN bus address associated with this register, and '01' and '02' are the enumerated counts of the unknown fields.
- Usually I've figured out the datatype and will give a datatype definition.
- Sometimes I've figured out the decoding formula, but don't know what the data represents.
- Sometimes I'll make an educated or wild guess what I think is in this field.
COMPLETELY UNKNOWN FIELDS
- Will be shown as "?" in the register mappings below.
- Values marked with "?" will constantly be changing, but their contents are unknown.
HARD CODED FIELDS
- These values never seem to change; they are fixed values.
- Will be marked either "1" or "0" in the register mappings below.
- Their purpose is completely unknown.
ADDR: 041 -- GT350_041_TBD
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Fixed Values: HEX: 00 00 00 00 00 00 00 00
ADDR: 047 -- GT350_047_TBD
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
Byte-1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Fixed Values: HEX: 20 00 00 00 00 00 00 00
ADDR: 04A -- GT350_04A_TBD
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
Byte-1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Fixed Values: HEX: 02 00 00 00 00 00 00 00
ADDR: 04B -- GT350_04B_TBD
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-2 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
Byte-3 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
Byte-4 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
Byte-5 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
Byte-6 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Fixed Values: HEX: 00 C0 D8 D8 D8 D8 C0 00
ADDR: 04C -- GT350_04C_TBD
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
Byte-1 | UBIT_1_07 | UBIT_1_06 | 1 | 0 | 1 | 1 | 1 | 1 |
Byte-2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Byte-3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
UBIT_1_07: Unknown bit, byte-1, bit-7
UBIT_1_06: Unknown bit, byte-1, bit-6
FIXED FIELDS:
- Byte-0 HEX: 20
- Byte-2 HEX: FF
- Byte-3 HEX: 00
- Byte-4 HEX: 00
- Byte-5 HEX: 00
- Byte-6 HEX: 00
- Byte-7 HEX: 00
ADDR: 076 -- GT350_076_STEERING_ANGLE
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | REVERSE_SW | STEERING_ANGLE [b14:b08] | ||||||
Byte-1 | STEERING_ANGLE [b07:b00] | |||||||
Byte-2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-4 | UBIT_4_07 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
REVERSE_SW:
- Datatype: Boolean, 1-bit
- 1=Reverse engaged; 0=Reverse not engaged
STEERING_ANGLE:
- Datatype: Big-Endian, Unsigned integer, 15-bits
- Available as degrees or radians
- Y = mX + b: Degrees: m=-0.1, b=1600
- Y = mX + b: Radians: m=-0.00174533, b= 27.92528
- Practical Range: (-450, 450) Degrees, (-7.85, 7.85) Radians
- Theoretical Range: (-1600, 1600) Degrees, (-28, 28) Radians
- Notes: Degrees (radians) increase in clockwise direction of steering wheel
UBIT_4_07: Unknown bit, Byte-4, bit-7. Changes value, but purpose is unknown.
FIXED VALUES:
- Byte-2 HEX: C0
- Byte-3 HEX: 00
- Byte-5 HEX: 00
- Byte-6 HEX: 00
- Byte-7 HEX: 00
ADDR: 077 -- GT350_SPEEDOMETER
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | SPEEDOMETER [b15:b08] | |||||||
Byte-1 | SPEEDOMETER [b07:b00] | |||||||
Byte-2 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-3 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-4 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-5 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-6 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-7 | ? | ? | ? | ? | ? | ? | ? | ? |
SPEEDOMETER:
- Datatype: Big-Endian, Unsigned Integer, 16-bits
- Available as: Kilometers per hour (KPH), Miles per hour (MPH)
- Y = mX + b: KPH: m=0.01, b=0
- Y = mX + b: MPH: m=0.00621371, b=0
- Theoretical Range: [0, 656) KPH, [0, 408) MPH
- NOTES: Speedometer is an "estimate" based on the average wheel speed sensor values.
ADDR: 07D -- GT350_BRAKE_PRESSURE
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | 0 | 0 | BRAKE_PRESSURE [b13:b08] | |||||
Byte-1 | BRAKE_PRESSURE [b07:b00] | |||||||
Byte-2 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-3 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-4 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-5 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-6 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-7 | ? | ? | ? | ? | ? | ? | ? | ? |
BRAKE_PRESSURE
- Datatype: Big-Endian, Unsigned Integer, 14-bits
- Available as: BAR, KPA, or PSI
- Y = mX + b: BAR: m=0.025, b=0
- Y = mX + b: KPA: m=2.5, b=0
- Y = mX + b: PSI: m=0.362595, b=0
- Practical Range: [0, 64] BAR, [0, 6400] KPA, [0, 928] PSI
- Theoretical Range: [0, 410) BAR, [0, 40960] KPA, [0, 5940) PSI
- Notes: The practical range and theoretical range are many orders of magnitude different. The 14-bit field will allow up to 410 BAR, but in the real word, I've never seen more than 64 BAR no matter how hard I pressed on the brake pedal.
ADDR: 156 -- GT350_ENGINE_TEMPS_01
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | COOLANT_TEMP [b07:b00] | |||||||
Byte-1 | ENGINE_OIL_TEMP [b07:b00] | |||||||
Byte-2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-4 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
Byte-5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Byte-7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
COOLANT_TEMP
- Datatype: Big-Endian, Unsigned Integer, 8-bits
- Available as: Celcius, Kelvin, or Farenheit
- Y = mX + b: Celcius (C): m=1.0, b=0
- Y = mX + b: Kelvin (K): m=213.15, b=0
- Y = mX + b: Farenheit (F): m=1.8, b=-76
- Theoretical Range: [-60, 195] deg-C, [213.15, 468.15] deg-K, [-76, 383] deg-F
ENGINE_OIL_TEMP
- Datatype: Big-Endian, Unsigned Integer, 8-bits
- Available as: Celcius, Kelvin, or Farenheit
- Y = mX + b: Celcius (C): m=1.0, b=0
- Y = mX + b: Kelvin (K): m=213.15, b=0
- Y = mX + b: Farenheit (F): m=1.8, b=-76
- Theoretical Range: [-60, 195] deg-C, [213.15, 468.15] deg-K, [-76, 383] deg-F
ADDR: TBD -- GT350_
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | ||||||||
Byte-1 | ||||||||
Byte-2 | ||||||||
Byte-3 | ||||||||
Byte-4 | ||||||||
Byte-5 | ||||||||
Byte-6 | ||||||||
Byte-7 |