Difference between revisions of "GT350 CAN Bus Topology"
From Wiki-DIY
(→ADDR: 156 -- GT350_ENGINE_TEMPS_01) |
(→ADDR: 156 -- GT350_ENGINE_TEMPS_01) |
||
Line 1,045: | Line 1,045: | ||
* Y = mX + b: Kelvin (K): m=213.15, b=0 | * Y = mX + b: Kelvin (K): m=213.15, b=0 | ||
* Y = mX + b: Farenheit (F): m=1.8, b=-76 | * Y = mX + b: Farenheit (F): m=1.8, b=-76 | ||
− | * Theoretical Range: [-60, 195] C, [213.15, 468.15] K, [-76, 383] F | + | * Theoretical Range: [-60, 195] deg-C, [213.15, 468.15] deg-K, [-76, 383] deg-F |
<br>'''ENGINE_OIL_TEMP''' | <br>'''ENGINE_OIL_TEMP''' | ||
* Datatype: Big-Endian, Unsigned Integer, 8-bits | * Datatype: Big-Endian, Unsigned Integer, 8-bits | ||
Line 1,052: | Line 1,052: | ||
* Y = mX + b: Kelvin (K): m=213.15, b=0 | * Y = mX + b: Kelvin (K): m=213.15, b=0 | ||
* Y = mX + b: Farenheit (F): m=1.8, b=-76 | * Y = mX + b: Farenheit (F): m=1.8, b=-76 | ||
− | * Theoretical Range: [-60, 195] C, [213.15, 468.15] K, [-76, 383] F | + | * Theoretical Range: [-60, 195] deg-C, [213.15, 468.15] deg-K, [-76, 383] deg-F |
+ | <br> | ||
=== ADDR: TBD -- GT350_ === | === ADDR: TBD -- GT350_ === |
Revision as of 04:13, 26 April 2017
Contents
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: 076 -- GT350_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 | UNKWN_BIT | 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
UNKWN_BIT
- Unknown bit. Changes value, but purpose is unknown.
OTHER FIELDS
- Unknown, or static (don't change)
ADDR: 077 -- GT350_SPEEDOMETER
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|
Byte-0 | SPEEDOMETER [b15:b08] | |||||||
Byte-1 | SPEEDOMETER [b07:b00] | |||||||
Byte-2 | TBD_077_01 [b15:b08] | |||||||
Byte-3 | TBD_077_01 [b07:b00] | |||||||
Byte-4 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Byte-5 | ? | ? | ? | ? | ? | ? | ? | ? |
Byte-6 | ? | ? | ? | ? | TBD_077_02 [b12:b08] | |||
Byte-7 | TBD_077_02 [b07:b00] |
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
TBD_077_01:
- Unknown purpose
- Datatype: Big-Endian, Unsigned Integer, 16-bit
- Notes: Being investigated as possible: longitudinal accelerometer
TBD_077_02:
- Unknown purpose
- Datatype: Big-Endian, Unsigned Integer, 12-bit
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 |