Page 1 of 1

OS 12598977 E40 2005 GTO XDF and bin files

Posted: Fri Sep 23, 2022 9:34 am
by Phoenix
I took a little time and put together and XDF for the 12598977 OS from an E40 ECM. It's mostly complete but I need help figuring out how the DTC section works.

So far I can tell that each DTC is 1 Byte long and this byte will represent a combination of if the MIL will be triggered and what gets reported. So there are in total 8 possible combinations:
0x0 = SES off No Error Reported
0x1 = SES off MIL on 1st Error
0x2 = SES off MIL on 2nd Error
0x3 = SES off No MIL Light
0x4 = SES on No Error Reported
0x5 = SES on MIL on 1st Error
0x6 = SES on MIL on 2nd Error
0x7 = SES on No MIL Light

The problem is that some DTCs will be like that, while others will have 0x0 = SES off No Error Reported be 0x08, 0x10, 0x18, 0x20, 0x28, 0x30 and 0x38. I really don't know how to translate these differences into something user friendly in TunerPro. I'm attaching a spreadsheet that shows what kind of hex string the DTC will use based on what the user wants it to do.

EDIT: This is a bad example (So for example P0101 has a value of 0x26. Looking up the DTC on the spreadsheet shows that it is the SES 1 MIL 2 column. This means that it will trip the MIL light after 2 consecutive errors. If we want to disable this code, we would want to look at the value in the SES 0 MIL 3 column. The value here is 0x23, so we would enter 23 in the table in TunerPro.)

I do realize that we don't have a way to read and write the E40, at least that I know of, but EFI Live does open bin files, so this could be helpful to someone that is using EFI and is missing some parameters that are only available in HPT.
Keep in mind that after you save the modified bin in TunerPro you will have to open it in Universal Patcher and save it again so the checksums will be correct.

Maybe it will inspire someone that knows more than I do to figure out how to read and write the E40.

I'm attaching two versions of the bin file. The smaller one is just the ECM while the larger one also includes information from the slave chip. EFI only opens the smaller bin file.

As always if I messed something up, or someone has a suggestion on how to improve the DTC process please let me know.

Re: OS 12598977 E40 2005 GTO XDF and bin files

Posted: Fri Sep 23, 2022 11:34 am
by ironduke
This info might apply to your work, it might not.. quick glance I think it'll help.
Below is what I came up with my own testing on E38 ecm's. Not promising it's right but it seems to match yours, kinda

B0000 = 0x00 MIL and not reported
B0001 = 0x01 type A/no mil
B0010 = 0x02 type B/no mil
B0011 = 0x03 type C/no mil
B0100 = 0x04 not reported/mil on
B0101 = 0x05 type A/mil on
B0110 = 0x06 type B/mil on
B0111 = 0x07 type c/mil on

It's slightly different than yours but I don't know how 0x01 is SES off MIL on 1st error?? Isn't the SES and MIL the same bulb?? I use type A,B, and C because that's how GM service information describes them.. A is 1 trip MIL, B is second trip MIL, and C never turns on the light.

bits 0 and 1 determine A, B or C DTC type. 00-reporting off, 01=type A, 02=Type B, and 03=Type C.
bit 2 = MIL on or off..

0x08, 0x10, 0x18, 0x20, 0x28, 0x30 and 0x38 all have no bits set for 0, 1, or 2.. as in the 3 rightmost bits are zeros for all those numbers so NO MIL and NO reporting.

Honestly not sure if tuner pro has the capability to only change certain bits depending on the dtc? I've always had a little bit of trouble working with tuner pro and DTC tables like this.
P101 = 0x26 = B00100110 which is type B(mil on 2nd error) with MIL On. To turn that code to no MIL and no reporting change the last 3 bits to zeros.. B00100110 &= B11111000 = 00100000 or 0x20. To me I would not set a DTC to 0x03 as it would still record it as a type C DTC

I've been messing with the E38's and they're all 0-7's only.. none of what you have though so I do not know what the extra bit is doing in your DTC table?

Re: OS 12598977 E40 2005 GTO XDF and bin files

Posted: Sat Sep 24, 2022 8:02 am
by Phoenix
ironduke wrote:This info might apply to your work, it might not.. quick glance I think it'll help.
Below is what I came up with my own testing on E38 ecm's. Not promising it's right but it seems to match yours, kinda

B0000 = 0x00 MIL and not reported
B0001 = 0x01 type A/no mil
B0010 = 0x02 type B/no mil
B0011 = 0x03 type C/no mil
B0100 = 0x04 not reported/mil on
B0101 = 0x05 type A/mil on
B0110 = 0x06 type B/mil on
B0111 = 0x07 type c/mil on

It's slightly different than yours but I don't know how 0x01 is SES off MIL on 1st error?? Isn't the SES and MIL the same bulb?? I use type A,B, and C because that's how GM service information describes them.. A is 1 trip MIL, B is second trip MIL, and C never turns on the light.

bits 0 and 1 determine A, B or C DTC type. 00-reporting off, 01=type A, 02=Type B, and 03=Type C.
bit 2 = MIL on or off..

0x08, 0x10, 0x18, 0x20, 0x28, 0x30 and 0x38 all have no bits set for 0, 1, or 2.. as in the 3 rightmost bits are zeros for all those numbers so NO MIL and NO reporting.

Honestly not sure if tuner pro has the capability to only change certain bits depending on the dtc? I've always had a little bit of trouble working with tuner pro and DTC tables like this.
P101 = 0x26 = B00100110 which is type B(mil on 2nd error) with MIL On. To turn that code to no MIL and no reporting change the last 3 bits to zeros.. B00100110 &= B11111000 = 00100000 or 0x20. To me I would not set a DTC to 0x03 as it would still record it as a type C DTC

I've been messing with the E38's and they're all 0-7's only.. none of what you have though so I do not know what the extra bit is doing in your DTC table?
I think we are talking about the same thing, but with different nomenclatures. I used SES as that is what HPT calls it, but I believe they appear to be set up the same way.

I edited my post as the example I did was not correct.

I don't think TunerPro can just change certain bits, but I believe it is a feature on the developer's radar.

Re: OS 12598977 E40 2005 GTO XDF and bin files

Posted: Sat Sep 24, 2022 12:06 pm
by antus
It can do bits a a flag. We've been doing that since 2009 for option bits on the older systems. And you can document where more than 1 bit is required in the name. Examples:

Re: OS 12598977 E40 2005 GTO XDF and bin files

Posted: Sat Sep 24, 2022 3:48 pm
by kur4o
The file you posted don`t seem to have that problem. Is it modified. Here is the dtc list with status byte location I came up with.

Re: OS 12598977 E40 2005 GTO XDF and bin files

Posted: Sat Oct 01, 2022 4:10 am
by 04colyZQ8
This is the log of an E40 programming event the first two flashes failed I had the segments in correct

Re: OS 12598977 E40 2005 GTO XDF and bin files

Posted: Sat Oct 01, 2022 4:20 am
by 04colyZQ8
Some more info..

Request Method Standard
ECU Address/ID $ 11
VIN ($90) 1GNET13H762323650
Software Module Identifier
DID Module ID DLS
C1 12606494 AB
C2 12604873 AB
C3 12602109 AB
C4 12588921 AU
C5 12620203 AB
C6 12606497 AC
C9 12597760 AA
CA 12588626 AV
Security Table $ 00
Security Algorithm $
Seed Key
$0718
System Name or Engine Type ($97)
System Supplier Id ($92)
Base Model Number ($CC) 12596003
End Model Number ($CB) 12603390
Broadcast Code ($B5)
Supplier SW Version Number ($95)
Diagnostic Data Identifier ($9A)
Repair Shop Code or SN ($98) 0000052912
Programming Date ($99) 2022-09-30
Manufacturers Enable Counter ($A0) 0
Programming Status 00 : fully programmed
Partial VIN ($28)
History: RSCOSN ($9F)
Engine Serial Number
Secure Programming Data
Desc Data
Mfg Traceability Chars ($B4) 86YMMYM0523030EC