For Jeep Wrangler JK owners looking to fine-tune their vehicle’s computer system after modifications like tire upgrades, the prospect of professional reprogramming can be daunting and costly. However, a resourceful approach using readily available tools opens up a world of DIY possibilities. This article delves into the method of programming tire size and potentially pressure settings in Jeep JK Electronic Control Units (ECUs) via the OBDII port, utilizing an affordable ELM327 OBD2 interface. This guide is based on experimental findings and provides a technical overview for informational purposes.
Understanding OBDII and CAN Bus Communication
Modern vehicles, including the Jeep JK, employ an On-Board Diagnostics II (OBDII) system for monitoring and diagnostics. This system communicates through a standardized port, typically located under the driver’s side dashboard. The communication protocol at the heart of many automotive systems is the Controller Area Network (CAN) bus. In the Jeep JK, the communication operates on the ISO 15765-4 CAN protocol, characterized by an 11-bit identifier and a 500 kbaud rate.
Building upon this foundation, a protocol layer similar to Keyword Protocol 2000 (ISO 14230-3) is utilized for more specific communication with vehicle modules. This layered approach allows for targeted commands to different ECUs within the Jeep JK’s network.
Accessing and Modifying ECU Parameters
The key to reprogramming tire size lies in accessing specific modules within the Jeep JK’s architecture, primarily the TIPM (Totally Integrated Power Module) and the TCM (Transmission Control Module). These modules store crucial parameters that affect vehicle behavior, including speedometer calibration based on tire size.
Locating Target Parameters:
Research indicates that the speedometer ratio, directly linked to tire size, is stored in the following “local identifiers”:
- TIPM: Local identifier
0x0c
- TCM: Local identifier
0xb1
Furthermore, there are additional, less understood values in the same locations that may also play a role in the tire size calibration process.
Command Stream for Tire Size Programming:
The process involves sending a specific sequence of commands via the OBDII interface to write the new tire size parameters. Below is a breakdown of the command stream, as observed in experimental settings:
01C 3E 02 // to unkn2, tester present
7DF 3E 02 // to general, tester present
620 10 92 // to tipm, diagnostic session control
// to tipm, write local ID 0x0c
620 3B 0C 0E 92 03 E8 0F A0 p1 p2 FF FF 00 03 11 1B A0 01 00 01 02
01C 3E 02 // to unkn2, tester present
7DF 3E 02 // to general, tester present
620 10 92 // to tipm, diagnostic session control
7E1 10 92 // to tcm, diagnostic session control
// write tcm local ID 0xb1
7E1 3B B1 6A 64 34 72 05 01 00 0A 02 00 05 10 27 27 01 06 02 02 0C 00 00 01 00 02 00 02 00 00 4F 01 92 0E E8 03 A0 0F p2 p1 23 00 qq rr 41 56 43 2D
784 11 82 // to unkn4, reset
620 11 82 // to tipm, reset
784 11 82 // to unkn4, reset
7E0 11 82 // to ecm, reset
Decoding the Command Structure:
- CID (Controller Identifier): The first three-digit hexadecimal number in each line specifies the target module (e.g.,
620
for TIPM,7E1
for TCM,7E0
for ECM). - SID (Service Identifier): The second number indicates the service being requested (e.g.,
3E
for tester present,10
for diagnostic session control,3B
for write local ID,11
for reset). - PID (Parameter Identifier): The third number (or subsequent numbers before data bytes in write commands) specifies the parameter being accessed or modified (e.g.,
0C
andB1
are local identifiers). - Data Bytes: Following the PID in write commands are the data bytes containing the new parameter values.
Calculating Tire Diameter Parameters (p1, p2):
The variable parameters p1
and p2
within the command stream are directly related to the tire diameter. They represent the most significant byte (p1
) and least significant byte (p2
) of a calculated value ‘pp’. The formula for ‘pp’ is:
pp = diameter (in inches) * 80 - 8
Example: For a 32.75-inch tire diameter:
pp = 32.75 * 80 - 8 = 2612
Converting 2612 to hexadecimal yields 0x0a34
. Therefore:
p1 = 0x0a
(most significant byte)p2 = 0x34
(least significant byte)
Important Note: Use the rolling diameter of the tire, not the unloaded diameter. A tire labeled as 34 inches might have a rolling diameter of approximately 32.75 inches under vehicle load.
Understanding qq and rr Values:
The parameters qq
and rr
are less understood. It’s speculated that qq
might be a signed analog value, and rr
could represent flags. Currently, a definitive formula for these values is not available. However, experimental observations have provided a lookup table of qq
and rr
values for different tire diameters:
Diameter (inches) | qq (hex) | rr (hex) |
---|---|---|
31.2875 | 35 | 29 |
32.0 | 21 | 9d |
32.25 | e3 | ad |
32.5 | eb | 3d |
32.75 | ee | cd |
33.0 | f7 | 5d |
34.0 | cf | 9d |
35.0 | d5 | 5d |
Tools and Interfaces: ELM327 and Beyond
This DIY programming method has been successfully tested using budget-friendly, widely available OBDII interfaces, including:
- Bafx: Utilizes a clone of the ELM327 chip.
- OBDLink SX USB: Employs the STN1110 chip.
Both interfaces, despite some limitations, proved functional for this purpose. A noted challenge is that neither ELM327 nor STN1110 chips natively handle multi-frame writes perfectly. The STN1110 is observed to perform slightly better in this regard. Workarounds, such as toggling Auto Format (caf0/caf1
) and Response (r0/r1
) modes, were employed to overcome these limitations.
For a more robust and streamlined solution, a Raspberry Pi with a CAN bus interface could be implemented to create a cleaner and more reliable interface. However, for basic DIY programming, ELM327-based interfaces can be sufficient.
Important Considerations and Disclaimer
This information is presented for educational and informational purposes only. Reprogramming vehicle ECUs is a complex procedure and should be approached with caution. Incorrect parameters or procedures can lead to vehicle malfunction or damage.
Key Cautions:
- Accuracy is crucial: Double-check all values and commands before writing them to the ECU.
- Understand the risks: Incorrect programming can have unintended consequences.
- Proceed at your own risk: The author and website are not responsible for any damage resulting from attempting this procedure.
- Professional Assistance: If you are not comfortable with these technical procedures, seek assistance from a qualified automotive technician.
This DIY approach offers Jeep JK owners a pathway to adjust tire size settings and potentially explore other programmable parameters using affordable tools. However, it requires a solid understanding of OBDII communication, hexadecimal values, and the inherent risks involved in ECU programming. Always prioritize safety and proceed with caution.