A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | AI | AJ | AK | AL | AM | AN | AO | AP | AQ | AR | AS | AT | AU | AV | AW | AX | AY | AZ | BA | BB | BC | BD | BE | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | CAN-C and CAN-IHS Message IDs for the 2018+ Jeep Wrangler JL | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | MAY ALSO APPLY TO OTHER LATE-MODEL CHRYSLER, DODGE, JEEP, AND FIAT VEHICLES. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | Contributions by Josh McCormick (jmccorm@yahoo.com), Robert Stellhorn (redracer), Karl Yamashita, Temperance, Jimmy07. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | Format of this spreadsheet was inspired by BiggRanger’s JK Wrangler CAN Bus spreadsheet. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | VEHICLES ANALYZED: | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | Wrangler 1: | 2021 JLUR 2.0T, no eTorque, 8.4" uConnect, remote start, keyless entry, Sky One top, heated seats, aux switches, aftermarket "cargo" camera, aftermarket LED lights, secure gateway bypass | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | Wrangler 2: | 2020 JL 2.0T, no eTorque, 5" uConnect, heated seats, NO secure gateway bypass | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | Wrangler 3: | 2018 JLUR 3.6L, no eTorque, 7" uConnect, heated seats, aux switches, LED lights, engine block heater, secure gateway bypass | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | More vehicles are welcome. Please supply "candump -l" or similar logs from both CAN-C and CAN-IHS bus. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | ID INFO | CAN-IHS ID (use as can0) | CAN-C ID (use as can1) | PURPOSE | Needs running engine? | BYTES | UPDATE RATE | MODULE NAME | UNITS OF MEASURE | HEARTBEAT PATTERN | CHECKSUM USED | Powertrain | NOTES | 1ST BYTE TYPE | 1ST BYTE NAME | 1ST BYTE FORMULA | 2ND BYTE TYPE | 2ND BYTE NAME | 2ND BYTE FORMULA | 3RD BYTE TYPE | 3RD BYTE NAME | 3RD BYTE FORMULA | 4TH BYTE TYPE | 4TH BYTE NAME | 4TH BYTE FORMULA | 5TH BYTE TYPE | 5TH BYTE NAME | 5TH BYTE FORMULA | 6TH BYTE TYPE | 6TH BYTE NAME | 6TH BYTE FORMULA | 7TH BYTE TYPE | 7TH BYTE NAME | 7TH BYTE FORMULA | 8TH BYTE TYPE | 8TH BYTE NAME | 8TH BYTE FORMULA | ||||||||||||||||||||
13 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | 023 | STEERING WHEEL ANGLE $xxxx????0000 - steering wheel angle*0.5 Each increment or decrement represents 0.5 degrees. One complete turn of the wheel would be $2D0 (720) units of change. typical range of values: $14FF – extreme left $1000 – center $0AFF – extreme right $3FFF – offline (uninitialized) As a vehicle develops alignment issues, be aware that center may move away from $1000. STEERING WHEEL DRIVER TORQUE $????xxxx0000 – turning force by driver -- OR rate of turn A measurement of how much turning force is placed upon the steering wheel by the driver, either to turn the vehicle or to keep it moving in a straight line (like when fighting against wind). Redracer observation: xxxx - $1000 - turning the wheel slow results in small numbers + or - , turning the wheel fast results in large numbers + or - , Last two bytes are counter and checksum. | No | 8 | 0.01 seconds | STEERING | ??? | COUNTERS | Steering angle: a good strategy is to immediately subtract $1000, resulting in positive values for left and negative values for right. Be aware that $1000 is dead-center on a new vehicle. Alignment issues can cause a vehicle to drift from center, resulting at slightly higher or lower values for the dead center position. Alignment issues might be something you could report to the owner. Dividing the steering wheel angle by 15 will give you the angle of the front tires. If necessary for your code to more accurately determine a true center, it may be possible to compute a correction value. Consider using a long-term average of wheel position while: * The steering wheel is turned close to its center position. * The vehicle is running at significant speed * Little torque is being placed upon the wheel by the driver (torque is the second value after position) * The accelerometers present neutral values which make for a favorable sample window Steering torque: keep in mind that this does not measure the amount of pull caused by the environment, but the amount of pull (turning force, torque) applied to the wheel by the driver (either to keep the vehicle moving straight ahead, or to turn). When traveling down a straight road, even a small level of measurable torque is generated when the driver maintains a rested grip on the wheel. Little to no torque should be reported if the driver’s hands are not on the wheel. Could be to detect and alert on inattentive driving. Bytes five and six (normally $0000) once (and only once) saw $01B2 and $A800 while the vehicle was initializing. This is assumed to be old microcontroller data that was left in-memory before full initialization. | WORD | Steering wheel angle | WORD | The turning force (torque) applied to the wheel by the driver. | ||||||||||||||||||||||||||||||||||||||||||||
16 | 025 | ENGINE VARIABLES $xxxx???????? – mass air flow sensor? Unsigned word (values $0000-$1540) Typical idle value: $62A low at idle and while braking goes higher when accelerating $????xxxx???? – manifold air pressure? Signed word ($06FE-$0EAD) (zero at $07ff, most typical value is $0763) $????????xxxx – engine torque? Signed word (zero at $07ff, most typical value near $07ff) Increases with engine torque Numbers appear to be analog values which clearly respond while driving, but their purpose is unknown. The final two bytes contain a counter and checksum. | Yes | 8 | 0.01 seconds | ??? | All three values are signed integers. To turn these into useful values, subtract $7FF before using. | ||||||||||||||||||||||||||||||||||||||||||||||||||
17 | 026 | ENGINE / Readiness $xxxx???????? - Engine output power ? $?????x?????? - Ready to Drive State ? $???????x???? - Engine Status ? | Yes | 8 | .01 | COUNTERS | 4xe | This looks to be vehicle status / engine status / engine output power. Bytes 0,1 are enginen power produced Byte 3 looks to be a moving or driving status Byte 5 is the gas engine running status | |||||||||||||||||||||||||||||||||||||||||||||||||
18 | 027 | UNKNOWN VEHICLE PARAMETERS $xxxx????0000 – unknown Number centered around $8B7F $????xxxx0000 – unknown Signed word (zero at $07ff) Values seen: $0744 - $0910 Numbers appear to be analog values which clearly respond while driving, but their purpose is unknown. The final two bytes contain a counter and checksum. | Yes | 8 | 0.01 seconds | ??? | Be aware that both variables are words, and they are updated very rapidly (1/100th of a second). Note that these are signed integers. To turn these into useful values, subtract $8B7F (a guess) from the first value and subtract $7FF from the second number. | ||||||||||||||||||||||||||||||||||||||||||||||||||
19 | 028 | 0,1 unknown 2,3 unknown 4,5 unknown | Yes | 8 | 0.01 seconds | ??? | COUNTERS | 4xe | |||||||||||||||||||||||||||||||||||||||||||||||||
20 | special thanks to redracer for additional data | 02B | ROLL/PITCH/YAW $xxxx???????? – vehicle roll (tilt left/right) $????xxxx???? – vehicle pitch (nose up/down) $????????xxxx – vehicle yaw (rate of turn) See notes column (to the right) for usage information and experimental values. | Yes | 8 | 0.01 seconds | ??? | All three values are signed integers (they can be positive or negative numbers). For this to happen, you will need to subtract a number (given below) before working with their values. Be aware that these numbers may become less reliable with speed (and the vehicle will not normally show them on the dash or the radio after reaching 25MPH). Some experimentally derived roll / pitch / yaw values by redracer -- ROLL (tilting left/right): First, subtract 2048 (decimal), and you will be working with the result. As the vehicle leaned 2 degrees to the driver's side (left), this variable reported a value of -15 (decimal), As the vehicle leaned 5 degrees to the passenger's side (right), it reported a value of 50 (decimal) PITCH (nose up/down): First, subtract 2032 (decimal), and you will be working with the result. As the vehicle's nose points 5 degrees upward, this variable reported a value of 50 (decimal). YAW (turning rate): First, subtract 2048 (decimal), and you will be working with the result. Turning either direction while traveling forwards will result in large positive numbers. Turning either direction while travelling backwards will result in large negative numbers. Scale and units of measurement are unknown. | QUAD? | Forward/Back? | QUAD? | Left/Right? | |||||||||||||||||||||||||||||||||||||||||||||
21 | 02F | UNKNOWN VARIABLE (BRAKING?) $000000000xxx???? – value $000000000???xx?? – unknown $000000000?????xx – unknown The first variable might be a signed number with $11A representing a zero or neutral value. | Yes | 8 | 0.01 seconds | ??? | COUNTERS | The first variable seems associated with braking. | |||||||||||||||||||||||||||||||||||||||||||||||||
22 | 035 | AUTOMATIC TRANSMISSION $x??????????? -- transmission status bitmap $?xxx???????? – transmission speed 1 $????x??????? -- transmission status bitmap $?????xxx???? – transmission speed 2 $????????xxxx – transmission status bitmap Units of measurement are unknown. Subtract 2004 from both speeds values. The last two bytes contain a counter and checksum. | Yes | 8 | 0.01 seconds | ??? | These appear to be transmission turbine speeds? | WORD | WORD | UNUSED | BYTE? | BYTE | COUNTER | 13, 23, 33, … E3, F3, 03, repeat | BYTE | ???? SOME SORT OF CHECKSUM | ALL BYTES ADDED TOGETHER | ||||||||||||||||||||||||||||||||||||||||
23 | 037 | UNKNOWN $xxxx0000???? – unknown, word $????0000xxxx – unknown, word Both variables may be signed numbers where $1FFF represents zero. The last two bytes contain a counter and checksum. | Yes | 8 | 0.01 seconds | ??? | Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | WORD | Unknown bitmap | UNUSED? | UNUSED? | WORD | (a*256)+b | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | BYTE | ???? SOME SORT OF CHECKSUM | ALL BYTES ADDED TOGETHER | ||||||||||||||||||||||||||||||||||||||
24 | 071 | UNKNOWN $xxxx0000??00 – value, word $????0000xx00 – bitmap, byte The first variable has a zero point of $7D4. Last two bytes contain a counter and checksum. | No | 8 | 0.02 seconds | ??? | COUNTERS | ||||||||||||||||||||||||||||||||||||||||||||||||||
25 | 077 | VEHICLE IGNITION STATUS $xxxx – bitmap: ignition status This ID stores the current state of the vehicle’s ignition system, not to be confused with $122 which stores the command given by the (virtual) ignition switch. Location $22F also contains current vehicle state, stored in a different format which may be more usable. * this location is highly useful in many different applications * | No | 2 | 0.02 seconds | Custom | $0001 – ignition set to “off” $0002 -- vehicle going from engine shutdown to 'off' $0301 – shutting down the engine $0302 – shutting down the engine $0402 – vehicle started normally, transitioning to run mode $0422 – RUN MODE after driver authenticated remote-start with TIP button [common mode when driving] $0502 – vehicle going from run mode to accessory mode $1512 – vehicle was in run mode, now in accessory mode $1522 -- vehicle going from accessory mode to run mode $4401 – vehicle turned on with remote start, motor not running (or not YET fully running) $4421 – vehicle started normally, RUN MODE [common mode when driving] $4422 -- vehicle switching to normal "run" mode $4501 – remote start command received, not yet cranking motor $5D21 – remote start command received, starter motor is cranking | ||||||||||||||||||||||||||||||||||||||||||||||||||
26 | 079 | BRAKING SYSTEM $x???0??????? – Vehicle is stopped? bitmap $?xxx0??????? – Brake System pressure $????0xxx???? – Brake Pedal pressure $????0???xxxx – Vehicle speed (MPH x 200) Three values, and the last two bytes contain a counter and checksum. | No | 8 | 0.02 seconds | ??? | COUNTERS | The first nibble contains $8 when the vehicle is stopped. The next variable is a measurement of braking pressure. It often appears nearly identical to the next value, but this value changes about 1/10th of a second later than the other value. The exact meaning of this value is not known. Confirmed to be System Brake Pressure The next variable is a measurement of braking pressure that tracks reasonably well with the driver's brake pedal. As mentioned, when these values change, this value will typically see the update 1/10th of a second before the other value. Confirmed to be Brake Pedal Pressure The final value contains the vehicle’s speed. To convert it into a useful number, divide by 200 (decimal). This acts as a speedometer that’s good to two decimal places and is updated 50 times per second (0.02 second between updates). This is a raw speed value as computed by the vehicle (based on provided gear ratios and tire size) and has NOT been automatically adjusted by GPS measurements. | |||||||||||||||||||||||||||||||||||||||||||||||||
27 | 07B | GAS PEDAL / THROTTLE VALVE $xxx???0??? – gas pedal $???x??0??? – unknown, nibble $????xx0??? – unknown, byte $??????0xxx – throttle valve motor The first value contains the position of the driver’s gas pedal. The fourth value contains the position of the computer-controlled throttle valve motor. Before using the first value, subtract $c80. Before using the fourth value, subtract $800. | Yes | 7 | 0.02 seconds | ??? | Be aware that the Wrangler’s accelerator is a fly-by-wire system. Most of the time, the throttle valve motor will be set (by the ECU) to match the input from the gas pedal. Under certain circumstances (the driver maintains full throttle while the vehicle shifts, or the traction control system cuts acceleration), the throttle value position may deviate significantly from driver input. The range of values produced by the accelerator is subject to vary from vehicle-to-vehicle. A variable range of numbers (between no throttle and full throttle) is something the the vehicle has it's own internal calibration for. Also be aware that, once calibrated, suddenly dropping your foot from the accelerator may create a bounce-back with NEGATIVE throttle values! | ||||||||||||||||||||||||||||||||||||||||||||||||||
28 | 07C | 4xe electric power 0 - 8 bit driving power used 1 - driving status 2 - driving status 4,5 - 16 bit power used / charged | Yes | 0.02 seconds | ??? | COUNTERS | 4xe | 4xe power. bit 0 looks to be just motive power used, not counting regen bits 1 and 2 look to be binary status bits 4,5 looks to be a 12 or 16 bit power meter unsigned offset that includes regen | |||||||||||||||||||||||||||||||||||||||||||||||||
29 | 07D | UNKNOWN $xx????00???? – bitmap, byte $??xx??00???? – bitmap, byte $????xx00???? – unknown, byte $??????00xxxx – value, word The last value might have a zero-point at or near $02F8. | Yes | 6 | 0.02 seconds | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
30 | 07F | ROTATION OF INDIVIDUAL TIRES $xx?????? – front driver tire $??xx???? – front passenger tire $????xx?? – rear driver tire $??????xx – rear passenger tire Units of rotation are unknown. Each value will wrap-around upon hitting $ff. | No | 8 | 0.02 seconds | ??? | At speed, these values increase quite quickly. It may be necessary to monitor them at the same rate they are updated (1/50th of a second). This could be used to judge terrain (i)regularity, to evaluate potential alignment issues, or to judge each tire’s grip during turning, acceleration, and braking. When the vehicle is parked, small movement may indicate a force being placed upon the vehicle such as wind, or someone leaning on the vehicle. An abrupt large change might suggest something more severe, like a collision with another vehicle. | BYTE (UNSIGNED) | Wheel travel + or - | BYTE (UNSIGNED) | Wheel travel + or - | BYTE (UNSIGNED) | Wheel travel + or - | BYTE (UNSIGNED) | Wheel travel + or - | ||||||||||||||||||||||||||||||||||||||||||
31 | 081 | UNKNOWN VARIABLES $xxxx??62????00ff – bitmap, word $????xx62????00ff – value, byte $??????62xx??00ff – value, byte $??????62??xx00ff – value, byte guess: transmission torque? | Yes | 8 | 0.02 seconds | ??? | The purpose of the bitmap is unclear, but the next three variables appear to increase with engine torque (but might actually be transmission torque). throttle pedal or air or fueling | BYTE | Gas pedal position | A | |||||||||||||||||||||||||||||||||||||||||||||||
32 | 083 | UNKNOWN $xx0400?????? – unknown, byte $??0400xxxx?? – bitmap, word $??04000000xx – value, byte Last two bytes are counter and checksum. | No | 8 | 0.02 seconds | ??? | COUNTERS | The third variable appears to increase and decrease with vehicle speed. | |||||||||||||||||||||||||||||||||||||||||||||||||
33 | 085 | CURRENT GEAR / UNKNOWN VALUES [0] - Binary - Wet Clutch Status [1] - Gear 4 bit Command - Current [2] - Binary - Status? [3,4] - Torque ? [5,6] - Input RPM | Yes | 8 | 0.02 seconds | ??? | When the first variable contains certain numbers (including $20DD and $0066), then the fourth variable appears to show engine RPMs. Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch. Most likely a 2.0L Turbo parameter. Robert: this is alive when in 4xe electric drive mode. Input RPM should be primary electric motor RPM | ||||||||||||||||||||||||||||||||||||||||||||||||||
34 | 087 | UNKNOWN - NOT Braking - Gas Engine ONLY $xxxx00000??? – value, word $????00000x?? – unknown, nibble $????00000?xx – value, byte The last two bytes are a counter and a checksum. | No | 8 | 0.02 seconds | ??? | COUNTERS | The first variable increases while braking. | |||||||||||||||||||||||||||||||||||||||||||||||||
35 | 089 | UNKNOWN AIR/FUEL VALUES? $xxxx???????????? – commanded value $????xxxx???????? – complex bitmap $????????xxxx???? – commanded value $????????????xxxx -- unknown | No | 8 | 0.02 seconds | ??? | COUNTERS | All thee variables are signed words. Subtract -$7FFF from their values if your conversion tool does not handle signed numbers. The values appear to be air/fuel parameters that are commanded by the ECU (as opposed to being read from sensors). Their exact function is not know. | |||||||||||||||||||||||||||||||||||||||||||||||||
36 | 08B | INDIVIDUAL TIRE SPEED (MPH) $xxxx???????????? – Frnt Drvr tire $????xxxx???????? – Frnt Psgr tire $????????xxxx???? – Rear Drvr tire $????????????xxxx – Rear Psgr tir UNITS: 0.05 MPH, divide by (decimal) 20 to arrive at actual Miles Per Hour | No | 8 | 0.02 seconds | MPH | These values report the current speed of each individual time, 30 times a second, with a unit of MPH*20 (decimal). Be aware that these are signed integers which produce negative numbers when the vehicle moves in reverse. When comparing values, you might want to be aware of some of the everyday driving events temporarily create an imbalance between tire speeds. Right hand turns will measurably cause the driver’s side tires to move faster than the passenger side tires. You may also see a 2 wheel drive vehicle’s rear tires running faster than their front tires while accelerating. Also remember that imperfections on the road surface may read as a temporary increase or decrease in speed for one or multiple wheels at a time. There are a number of ways the data might be used. A notification could be sent to the driver when the combined speed of all tires regularly deviate from the vehicle’s speedometer. (The speedometer is based upon wheel speed, but auto-corrected used GPS determined values. The vehicle’s odometer is not.) There might also be an opportunity to inform the driver of potential tire or alignment issues (noticed when one tire regularly deviates from the rest, or when the driver’s side tires regularly deviates from the passenger side’s tires when the vehicle is not turning). | ||||||||||||||||||||||||||||||||||||||||||||||||||
37 | 08D | UNKNOWN CONSTANT Wrangler 1: $C6C0FFFFFFFFFFFF Wrangler 2: $C6C0FFFFFFFFFFFF Wrangler 3: $C6C0FFFFFFFFFFFF | Yes | 8 | 0.02 seconds | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
38 | 091 | UNKNOWN $0xxxxx?????? - bitmap $0?????xxxxxx – unclear format Last two bytes are counter and checksum. | Yes | 8 | 0.02 seconds | ??? | 10, 20, 30, … | YES | Marked as “unclear format”. Sometimes it appears to switch formats? | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | BYTE | CHECKSUM | ALL BYTES ADDED TOGETHER | ||||||||||||||||||||||||||||||||||||||||||
39 | 093 | Manual / Auto TRANSMISSION $xx????0000?? – bitmap, byte $??xx??0000?? – bitmap, byte $????xx0000?? – Gear Selection (see notes) | Yes | 8 | 0.02 seconds | ??? | 11, 21, 31, … | YES | Gear Selection values -- 0x31 = 1 0x32 = 2 0x33 = 3 0x34 = 4 0x35 = 5 0x36 = 6 0x37 = 7 0x38 = 8th 0x44 = D 0x4E = N 0x50 = P 0x52 = R (D=Drive, N=Neutral, P=Park, R=Reverse) | BITMAP | SPACING VALUE? | N/A | FC | BITMAP | BYTE | COUNTER | 11, 21, 3 1, … E1, F1, 01, repeat | BYTE | CHECKSUM | ALL BYTES ADDED TOGETHER | |||||||||||||||||||||||||||||||||||||
40 | 095 | ENGINE LOAD OR … ? $xxxx000000 - analog value, word Last two bytes contain a counter and checksum. | Yes | 7 | 0.02 seconds | ??? | 10, 20, 30, … | YES | Always reports 0 until the vehicle is put into gear. This acts like a measure of engine load, but I don’t know if that’s what this variable actually measures, or if it is something else. Could be a transmission variable. Highest value seen is $0342 (834 decimal). Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | WORD (0000 to 03FF?) | CONSTANT | N/A | 00 | CONSTANT | N/A | 00 | CONSTANT | N/A | 00 | CONSTANT | N/A | 00 | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | BYTE | CHECKSUM | ALL BYTES ADDED TOGETHER | |||||||||||||||||||||||||||||
41 | 09B | UNKNOWN $xx??????00??00FF – bitmap $??xx????00??00FF – value $????xx??00??00FF – bitmap $??????xx00??00FF – bitmap $????????00xx00FF – bitmap The third byte is a bitmap which occasionally changes to $04 for a while and then it goes back to it's original value of $00. | No | 8 | 0.02 seconds | ??? | Changes when stopped | ||||||||||||||||||||||||||||||||||||||||||||||||||
42 | 09D | UNKNOWN - Throttle position? $xx – analog value, byte | Yes | 8 | 0.02 seconds | ??? | 10, 20, 30, … | UNKNOWN METHOD | BYTE | Gas pedal position | A | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | BYTE | ???? SOME SORT OF CHECKSUM | ???? SOME SORT OF CHECKSUM | ||||||||||||||||||||||||||||||||||||||||
43 | 0A7 | UNKNOWN BRAKING VARIABLE $00000xxx4??? – analog value $00000???4xxx – analog value | No | 8 | 0.02 seconds | ??? | 10, 20, 30, … | YES | Values hold steady, but change only while the vehicle is braking. | BYTE | Unused | 0 | BYTE | Unused | 0 | ONE NIBBLE HIGH = 0 LOW= Part of value | (L*256)+A | NIBBLE | L(*256)+A | ONE NIBBLE HIGH = 4 LOW= Part of value | N/A | (L*256)+A | BYTE | (L*256)+A | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | BYTE | ???? SOME SORT OF CHECKSUM | ???? SOME SORT OF CHECKSUM | |||||||||||||||||||||||||||
44 | 0AB | AUTOMATIC TRANSMISSION GEAR $????xx?? -- previous gear $???????x -- current/active gear Assumed to be the internal state of a double-clutched automatic transmission. | Yes | 8 | 0.02 seconds | Custom | 10, 20, 30, … | UNKNOWN METHOD | The last value provides the current (active) gear of the vehicle, with hexadecimal values representing non-numeric selections such as Park, Reverse, and Neutral. For an automatic transmissions, this variable provides the actual gear (1-8) selected by the automatic transmission. The first two values provide what the previous gear selection was, up to two seconds ago. After two seconds, it will also represent the current gear. One could speculate that these values help an automatic transmission avoid shifting back into a gear that it just came from. It is not clear why two variables are needed to provide this same data. | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | |||||||||||||||||||||||||||||||||||||||||||||
45 | 0AD | UNKNOWN $xx – bitmap ($01,$02, or $04), byte | No | 5 | 0.02 seconds | ??? | COUNTERS | Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | BYTE or BITMAP | A | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | BYTE | ???? SOME SORT OF CHECKSUM | ???? SOME SORT OF CHECKSUM | |||||||||||||||||||||||||||||||||||||||||
46 | 0B1 | CRUISE CONTROL BUTTONS $xx=cruise control buttons (0=none pressed) value & 0x40 = center Cruise button value & 0x10 = right Resume button value & 0x08 = bottom Set- button value & 0x04 = top Set+ button value & 0x01 = left Cancel button The final two bytes are counter and checksum. | No | 3 | 0.02 seconds | CENTER | Custom | 10, 20, 30, … | UNKNOWN METHOD | BYTE | Button bitmap | Word? | Counter | Counter | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | ||||||||||||||||||||||||||||||||||||||||
47 | 0B3 | UNKNOWN $0000xxxx???? – analog val, word $0000????xxxx – bitmap, word | Yes | 8 | 0.02 seconds | ??? | 10, 20, 30, … | UNKNOWN METHOD | Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | BYTE | COUNTER | 10, 20, 30, … E0, F0, 00, repeat | |||||||||||||||||||||||||||||||||||||||||||||
48 | 0B5 | ENGINE RPMs $0000xxxx00000000 – engine RPMs, word | Yes | 8 | 0.02 seconds | RPMs | Appears to be the same RPM measurement as you get in location $322, except this one is updated 50 times per second. | ||||||||||||||||||||||||||||||||||||||||||||||||||
49 | 0DD | DISTANCE TRAVELLED PER AXLE $xxxx????00000000 – front axle distance? $????xxxx00000000 – rear axle distance? two variables, both words, when increase in near-unison as the vehicle moves. With each mile driven, their values become slightly more and more out-of-sync. | No | 0.05 seconds | ??? | This gives you very granular access to how much each axle has turned. This could be used to determine a few things: irregular road surfaces, loss of rear-wheel traction in 2-wheel drive, uneven braking. Or this could provide the very granular speed data that’s more useful when operating at low speeds with the transmission in 4-LOW. | |||||||||||||||||||||||||||||||||||||||||||||||||||
50 | 121 | UNKNOWN - Air / Fuel / Etc ? $xx00????00 – bitmap, byte $??00xx??00 – value,byte $??00??xx00 – bitmap?, byte | Yes | 5 | 0.10 seconds | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
51 | 122 | IGNITION SWITCH COMMANDS stored in the first word $00000000 – off $00010000 – off $03010000 – engine kill $03020000 – engine kill $05020000 – accessory on $15020000 – accessory on $44010000 – remote run (on) $44020000 – normal run (on) $45010000 – start command recv’d $5d010000 – starter is cranking There may be additional values yet to be discovered. It is not known why there are two “off” and “engine kill” values. * this location is highly useful in many different applications * | No | 4 | Typically 0.10sec | CENTER | Custom | This ID stores the ignition switch command current given to the vehicle, compared with id $077 which stores the current state of the vehicle’s ignition system. This variable may be an important event driver when writing code. In some cases, you may only want to monitor this variable for it’s current value. In other situations, you may be looking for a transition (off to run, run to off) to be used as an event trigger. | |||||||||||||||||||||||||||||||||||||||||||||||||
52 | 125 | UNKNOWN $00xx00 – unknown, byte - Temperature? | Yes | 3 | 0.10 seconds | ??? | Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | ||||||||||||||||||||||||||||||||||||||||||||||||||
53 | 127 | TEMPERATURES / OTHER $xx????00??????00 – Intake Air Temperature $??xx??00??????00 – Engine Coolant Temperature $????xx00??????00 – Barometric Pressure $??????00xx????00 – rapid rise to $Ex where it stays $??????00??xx??00 – likely bitmap, either $00 or $80 $80 causes next value to rise $00 causes next value to fall $??????00????xx00 – falls to starting value Rises as high as $a2 (162 decimal) | Yes | 0.10 seconds | ??? | All temperatures: use decimal math in formula to arrive at Celcius temperature: $value - 40 All temperatures, use decimal math in formula to arrive at Fahrenheit temperature: (($value - 40) * (9 / 5) + 32) All pressures : no conversion is needed, value is in absolute kPa 1st variable (byte): matched with OBD reported Air Intake Temperature 2nd variable (byte): matched interior dash display of Coolant Temperature 3rd variable (byte): matched OBD Barometric Pressure 4th variable (byte) : unknown 5th variable (bitmap): unknown 6th variable (byte): unknown | |||||||||||||||||||||||||||||||||||||||||||||||||||
54 | 128 | POWER STEERING PUMP $00xx???????????? – Fluid Temp in C $00??xx?????????? – Pressure? or... Flow Rate? Current? $00????xx???????? -- Unknown Variable 1 $00??????xxxx???? -- Unknown Variable 2 $00??????????xxxx -- Unknown Variable 3 | Yes | 0.10 seconds | ??? | For temperature, represented as Celcius (do not subtract 40). for Farenheit: ($value * (9/5) + 32) After the vehicle initializes, Unknown Variable 1 will hold a number from 0x64 to 0x6E. Only once in sixty drives was that number found to change to another number in that same range. Some sort of status or ID byte? Variables 2 and 3 range up/down during a drive. There are no fields for counter or checksum. | |||||||||||||||||||||||||||||||||||||||||||||||||||
55 | 129 | UNKNOWN $xx000000 – unknown bitmap, byte | No | 4 | 0.10 seconds | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
56 | ID REUSED | 12B | UNKNOWN $xx – bitmap, byte You can use this presence of this message (ID 12B with only 1 byte of data) to confirm that you’re reading data from the CAN-IHS bus. | No | 1 | Typically 0.10sec | ??? | Values seen: $00, $01, $03, $06 | |||||||||||||||||||||||||||||||||||||||||||||||||
57 | ID REUSED | 12B | UNKNOWN - $xx1???????ff?? – unknown $??1xxxxxxxff?? – unknown $??1???????ffxx – unknown, byte You can use this presence of this message (ID 12B with 8 bytes of data) to confirm that you’re reading data from the CAN-C bus. | No | 8 | 0.10 seconds | ??? | The data found here seems difficult to reverse-engineer. 12B# String 0 matches data of 3B2# string 2 could be temps. watching data after engine shutdown, and running radiator fan shows bytes slowly raising while others are falling. stabilizing after fan shutdown. | |||||||||||||||||||||||||||||||||||||||||||||||||
58 | 12D | UNKNOWN CONSTANT Wrangler 1: $000F000000FF0000 Wrangler 2: $000F000000FF0000 Wrangler 3: (none) | Yes | 0.10 seconds | ??? | Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | |||||||||||||||||||||||||||||||||||||||||||||||||||
59 | RARE | 131 | UNKNOWN – REMOTE START? A series of 10 values appearing only at the time of a remote start, lasts .1 seconds | No | 0.01 seconds | ??? | Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | ||||||||||||||||||||||||||||||||||||||||||||||||||
60 | 133 | REMOTE DOOR LOCK STATUS READ-ONLY (no writes) ????????xx?????? 00=last used to lock some/all doors 20=locking some/all doors NOW 40=last used to unlock driver door 50=unlocking driver door NOW 80=last used to unlock all doors 90=unlocking all doors NOW It shows if it is actively being used to lock/unlock doors. It also reports how this feature was last used (and not what the current door lock status actually is). | No | 0.10 seconds | Custom | Do not use this value to determine if the doors are locked or not. These values only report on the status of the electronic door locks, and only only for those commands which came through an automatic or remote lock/unlock feature (keyfob, uConnect app, auto-unlock when exiting vehicle, auto-lock after starting and driving your vehicle). This value only reports what is happening, if you write to it, it will not control the automatic locks. When there is an active lock/unlock signal, it is maintained for 0.6 seconds before switching to either $00 or $80 and remaining with that value. | |||||||||||||||||||||||||||||||||||||||||||||||||||
61 | 137 | UNKNOWN $xx?0000000?????? – unknown $??x0000000?????? – unknown $???0000000xxx??? – unknown $???0000000???xxx – unknown | Yes | 0.10 seconds | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||||
62 | 13B | 4xe Power & Modes 0 - Binary status 1 - unknown 2 - unknown 3 - unknown 4 - 8 bit power used with charging 5 - unknown | Yes | 0.10 | ??? | counters | 4xe | Electric modes and power | |||||||||||||||||||||||||||||||||||||||||||||||||
63 | 13D | Engine Oil Temp / Pressure / Unknown $xxxx???????????? – unknown $????xx?????????? – Oil Pressure (($value * 4) * 0.145038) to PSI $??????xx???????? – Oil Temperature ((($value - 40) * (9 / 5)) + 32) to F $????????xxxx???? – unknown $????????????xxxx – unknown | Yes | 0.10 seconds | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||||
64 | 13F | UNKNOWN - Battery / Charging / IBS ? $xxxx???????????? – unknown $????xxxx???????? – unknown $????????xxxx???? – unknown $????????????xxxx – unknown Interesting numbers, but I cannot place what they’re for. | No | 0.10 seconds | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||||
65 | 141 | 4xe Power / battery / Modes [0] - binary status [2] - binary 4xe modes [4] - 8 bit power used with charging and HVAC [5] - something decending, low res [6] - binary status [7] - unknown | Yes | .10 | ??? | 4xe | Electric modes and power [2] is 4xe drive mode. 0x08 = Electric , 0x00 = Hybrid , 0x40 = eSave | ||||||||||||||||||||||||||||||||||||||||||||||||||
66 | 143 | UNKNOWN CONSTANT Wrangler 1: $0000000000000000 Wrangler 2: $0000000000000000 Wrangler 3: $0000000000000000 | Yes | 0.10 seconds | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||||
67 | 14D | UNKNOWN $xx00??00??????00 – unkwn, byte $??00xx00??????00 – unkwn, byte $??00??00xxxxxx00 – unknown | Yes | 0.10 seconds | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||||
68 | 14E | UNKNOWN $xxxxxxxxxxxxxxxx – complex,data? | Yes | 8 | 0.10 seconds | ??? | Throttle position or Fueling Robert - 4xe motorpower or torque | ||||||||||||||||||||||||||||||||||||||||||||||||||
69 | 157 | UNKNOWN $a0000000x0000000 – nibble | Yes | 8 | 0.10 seconds | ??? | Typical value: $a000000050000000 The variable will temporarily change to other values, some changes lasting only 0.10 seconds. | ||||||||||||||||||||||||||||||||||||||||||||||||||
70 | 15B | UNKNOWN $0A0B0C0D0Fxxxxxx – runtime? | Yes | 8 | 0.10 seconds | ??? | Constantly increasing counter, likely running time, Robert -Agree. Engine run time. it pauses counting while in electric driving mode. | ||||||||||||||||||||||||||||||||||||||||||||||||||
71 | 1A1 | UNKNOWN CONSTANT Wrangler 1: (none) Wrangler 2: (none) Wrangler 3: $0000800000000000 | Found on RedRacer's car which has 3.6L v6, engine blocker heater, steel bumpers. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
72 | READ: CAN-IHS or CAN-C WRITE: CAN-C | 1C0 | 1C0 | REMOTE CONTROL COMMANDS $000000800000 – none (idle) $210000900000 – keyfob lock $230000900000 - 1st press fob unlock $240000900000 - 2nd press fob unlock $2E0000900000 – keyfob panic button $410000800000 – unknown $430000800000 – driver keyless entry $5B0000800000 – unknown $6A0000800000 – (any) cancel rem start $690000800000 – keyfob remote start $810000880000 – app lock doors $830000880000 – app unlock doors $830000880000 – app panic button can-c should be used to send vehicle commands. status can be monitored on can c or can-ihs. “keyfob remote start” by itself will not start the vehicle. Research needed. “app lock” refers to the uConnect app lock/unlock functions. incomplete – this function almost certainly has additional functions yet to be documented. | No | 6 | 0.2 seconds | Custom | This variable indicates when certain remote commands are given to the vehicle. Any value written to this ID will be treated as an authentic command and will be processed, except for the remote start commands. Remote start has additional requirements that needs to be satisfied before processing the command. It is possible the additional remote commands are available through additional command functions that have not been documented. There is some potential here to discover an interesting new feature. | ||||||||||||||||||||||||||||||||||||||||||||||||
73 | ID REUSED | 1C8 | UNKNOWN – KEYFOB RELATED Personal keyfob id? Keyless Entry / Remote Start | No | 0.5 seconds | ??? | BYTE | Remote Status | 00=Unlock 01=Lock 02=EngineOn – = EngineOff | ||||||||||||||||||||||||||||||||||||||||||||||||
74 | ID REUSED | 1C8 | UNKNOWN – KEYFOB RELATED Personal keyfob id? Keyless Entry / Remote Start | No | Typically 0.10sec | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
75 | 1CE | UNKNOWN $xx00 – variable, byte The last two bytes contain a counter and checksum values. | Yes | 4 | 0.05 seconds | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
76 | 1D0 | UNKNOWN $xxxxxxxx – apparent bitmap First byte toggles every second between $40 and $C2. The remaining bytes are typically stable, with occasional bit flips. | Yes | 1.0 seconds between 2 msgs | ??? | An identical second message is transmitted immediately after the first. Then there is a one second delay until the next pair of messages. | |||||||||||||||||||||||||||||||||||||||||||||||||||
77 | 1D5 | UNKNOWN CONSTANT Wrangler 1: $0000800000000000 Wrangler 2: $0000800000000000 Wrangler 3: (none) | Yes | 0.25 seconds | ??? | Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | |||||||||||||||||||||||||||||||||||||||||||||||||||
78 | 1F7 | UNKNOWN AND VEHICLE SPEED $ffffxxxx0080???? – variable, word $ffff????xx?????? [4] - 4xe battery? $ffff????0080xxxx – speed, word | No | 0.5 seconds | Custom | 1st variable – unknown 2nd variable – current GPS vehicle speed | |||||||||||||||||||||||||||||||||||||||||||||||||||
79 | 1F9 | 4xe battery / Power [0] - power , mid center [1] - power , mid center, combined loads [2] - power, mid center, Starter/Generator [3] - power, HVAC, 0 base [4] - Battery Percent [5] - power , mid center, low res [7] - power , 0 base, gas engine | 4xe | All percentages, Value 4 is battery capacity % Values 0, 1, 5, 7 appear to be power used in various forms 0, 1, 5 all appear similar but have differences 7 appears to be gas engine production | |||||||||||||||||||||||||||||||||||||||||||||||||||||
80 | VERY RARE | 204 | UNKNOWN The locations appear to team up, sending data once or twice per drive. Activates each time with a cluster of three to five messages which spans (or reuses) this group of IDs. | Triggered event | PROBABLY: Keyless entry. Possibly related to: 2.0 Turbo engine, remote-start, keyless entry, 8.4" premium radio, or sky one-touch | ||||||||||||||||||||||||||||||||||||||||||||||||||||
81 | VERY RARE | 205 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
82 | VERY RARE | 20C | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
83 | VERY RARE | 20E | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
87 | ID REUSED | 22D | STEERING WHEEL BUTTONS FOR AUDIO CONTROLS (unverified / incomplete) 00 00 00 01=right arrow 00 00 00 04=up arrow 00 00 10 00=left arrow 00 00 40 00=down arrow | No | 8 | Typically 1.00sec | CENTER | Custom | |||||||||||||||||||||||||||||||||||||||||||||||||
88 | ID REUSED | 22D | UNKNOWN VEHICLE STATUS $xx???????? – variable, byte $??xxxxxxxx – bitmap | No | 8 | ??? | |||||||||||||||||||||||||||||||||||||||||||||||||||
89 | 22F | VEHICLE STATUS (MAY REQUIRE REMOTE START) $xx – status byte | No | 1 | Typically 1.00sec | Custom | Value changes as vehicle starts up. $00, $05, $01, $03, $01, and finally $00. $00 – Vehicle initializing (1 second) $05 – Vehicle initializing (1 second) $01 – Remote-start command given (1 second) $03 – Engine cranking (as needed) $01 – Vehicle started (held for 5 seconds) $00 – Vehicle running normally (held) $03 – Vehicle shutting down | ||||||||||||||||||||||||||||||||||||||||||||||||||
90 | ID REUSED, CONTENT APPEARS IDENTICAL | 230 | HVAC CONTROLS (READ-ONLY) $xx??????00000000 – maintains and holds a single digit number, usually (decimal) 8 or 9. Will be 0 when vehicle first turns on. $??xx????00000000 – Unknown maintains and holds a single digit number, usually (decimal) 3 to 0. $????xx??00000000 – a value seen smoothly floating up and down in a range between (decimal) 46 and 131 $??????xx00000000 – a number typically centered around (decimal) 50 that makes an occasional jump up or down in a narrow range (usually but not always 49 to 57) and will hold each number for a period of time before moving on Values appear to change, hold anywhere from four to thirty seconds, and then it changes again. Another analysis: HVAC CONTROLS 00?????? – all off 01?????? – hvac off 03?????? -- hvac on 07?????? – defrost ???x???? – sense actual fanspeed | No | Custom | ||||||||||||||||||||||||||||||||||||||||||||||||||||
91 | special thanks to redracer ID REUSED? | 232 | 232 | AXLE DISTANCE TRAVELED UNKNOWN TEMPERATURE, $??xx???????? – unknown, temp? $????xxxx???? -- distance 1 $????????xxxx – distance 2 Similar values found at id $0DD | No | Typically 1.00sec | TCM? | ??? | The third word and fourth word contain values which increase as the vehicle moves. Appears to independently track distance traveled by each axle. The unknown temperature (assuming that’s what it is) is warmer than ambient air but cooler than the engine temperature. | Temperature | A | Fahrenheit | WORD | Distance (assumed 1/100th of a mile) | (a*256)+b | WORD | Distance (assumed 1/100th of a mile) | (a*256)+b | |||||||||||||||||||||||||||||||||||||||
92 | 243 | UNKNOWN CONSTANT Wrangler 1: $000000000000 Wrangler 2: (none) Wrangler 3: (none) | No | 6 | Typically 1.00sec | ??? | Possibly related to: remote-start, keyless entry, 8.4" premium radio, or sky one-touch | ||||||||||||||||||||||||||||||||||||||||||||||||||
93 | ID REUSED, CONTENT APPEARS IDENTICAL | 248 | 248 | UNKNOWN CONSTANT Wrangler 1: $0000FFFFFF03FFFF Wrangler 2: $0000FFFFFF03FFFF Wrangler 3: $0000FFFFFF03FFFF | No | 0.10 seconds | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||
94 | 24E | FRONT AXLE FORCE SENSORS? appears to be road feedback information for the front and rear axles. combines with data from $252. | No | 0.10 seconds | TCM? | ??? | This appears measure three dimensions of force applied to the vehicle from the front axle. While monitoring the data of a moving vehicle, any significant road irregularity can clearly be seen. The exact nature of each variable (and their units of measurement) are not yet known. This can be used (by itself or with other sensors to): Create undercarriage lights (rock lights) with a variable glow that reacts to terrain. Judge the performance of stock or replacement vehicle suspension kits. Map the severity of potholes and which tire(s) they impact Objectively judge or compare driver performance navigating off-road trails Objectively judge or compare difficulty between off-road trails | ANALOG ROAD DATA FOR FRONT AND REAR AXLE | |||||||||||||||||||||||||||||||||||||||||||||||||
95 | 252 | REAR AXLE FORCE SENSORS? appears to be road feedback information for the front and rear axles. combines with data from $24E | No | 0.10 seconds | TCM? | ??? | ANALOG ROAD DATA FOR FRONT AND REAR AXLE | ||||||||||||||||||||||||||||||||||||||||||||||||||
96 | 257 | UNKNOWN CONSTANT Wrangler 1: $FF0F003636360000 Wrangler 2: $FF0F003636360000 Wrangler 3: $FF0F003636360000 | Yes | 8 | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||||
97 | 259 | FRONT SEAT OCCUPANT SENSORS? $xxxx00000000 – bitmap, word Last two bytes contain counter and checksum values. | Yes | 8 | ??? | Values seen: $0100, $0101, $0300, $0301, $0F0F | |||||||||||||||||||||||||||||||||||||||||||||||||||
98 | special thanks to redracer for additional data | 25D | AUDIO STATUS / LOCKER REQUEST ??????xx???????? – 03=mute 00=normal additional functions possible | No | Typically 1.00sec | ??? | Value seen during a rear locker request: $23FC00007F7F7F7F Value seen during a front+rear locker request: $43FC00007F7F7F7F | ||||||||||||||||||||||||||||||||||||||||||||||||||
99 | 25F | UNKNOWN CONSTANT Wrangler 1: $000002000100003f Wrangler 2: $0000020000000000 Wrangler 3: $0000000100000246 | No | 8 | ??? | ||||||||||||||||||||||||||||||||||||||||||||||||||||
100 | 261 | UNKNOWN ENCODED TIME $xxxxxxxxxxxx00?? – unknown $????????????00xx – unknown Appears to count time (perhaps also date) in a slightly encoded (but decipherable) format. The value changes every other update (two seconds). | No | 1.00 seconds | ??? |