Hello,
I'm trying to add custom OBD BMW enhanced PIDs to RaceChronoPro but having no success, even though apps like Bimmerlink can read this data fine. For example using transmission fluid temperature as an example, I've found two different sources with conflicting information:
Source 1 says:
- Signal: ATF Temperature
- UDS 0x22 Service request.
- DID: DA12
- ECU Address: 18 (HEX)
- Formula: (raw - 48) °C
All permutations I tried failed with various different headers, 0x6F1, 0x7F1 and various PID’s like 0x 22 DA 12 or 0x DA 12 and so on.
Source 2 says: Use BMW Enhanced PID format with extended addressing:
- Header: 0x6F1 (which is 0x600 + Source Address 0xF1)
- Payload should include:
- 0x12 = Destination Address (DME)
- 0x03 = Bytes to follow
- 0x22 = Service 0x22 request
- 0x4650 = 16-bit PID for transmission temp
- Full payload example: 0x12 0x03 0x22 0x46 0x50
- Formula: (raw × 0.75) - 48
What I've also tried:
- Header: 0x6F1, PID: 0x22 46 50, equation: (A × 0.75) - 48
- Header: 0x6F1, PID: 0x12 03 22 46 50, equation: (A × 0.75) - 48
- Various protocol settings (e.g. Auto, ISO 15765-4 11-bit 500k)
- Standard OBD-II PIDs work fine
Questions:
One interesting observation source 2 says that the protocol should be ISO 15765-2 but we don’t have that as an option in Race Chrono. Is that the issue?
Has anyone successfully used BMW Service 0x22 enhanced PIDs in RaceChronoPro?
What format should the PID be in - with or without the destination address and length bytes?
Which byte offset contains the actual data in the response?
Any help appreciated