Jump to content
CameraLoops will go offline shortly for a few hours due to server update. Sorry for the inconvenience. ×

Welcome To Cameraloops

Take a moment to join and become a member

    How to correct checksum after editing GM's calibration files

    In this tutorial I will explain in steps, for how to correct the checksum after editing a GM module calibration file.

    This process illustrates correcting the checksum for the first four bytes.

     

    It's beneficial to read up on these other tutorial to familiarise yourself with GM's calibration files concept if you're new. 

     

     

    Tools you will need.

    hex-editor-neo-low.svg Hex Editor Neo

     

    Step 1.

    Open the calibration file in Neo and edit your file.

    Set Predefined Layouts as Expert User Layout.

    Screenshot 2021-08-01 at 11.43.56 am copy.png

     

    Step 2.

    Select all the codes in the calibration file except the first four bytes/code.

    How to correct checksum after editing GM's calibration files

     

    Step 3.

    At the bottom of Neo click Checksum.

    Screenshot 2021-08-01 at 3.33.41 pm copy.png

     

    Step 4.

    In Neo's checksum window, change the option: Whole document to Selection only.

    Screenshot 2021-08-01 at 3.40.24 pm copy.png

     

    Step 5.

    Select Sum of Big-Endian 16-bit value 

    Screenshot 2021-08-01 at 6.56.16 pm copy.png

     

    Step 6.

    Click the  Refresh button.

    Screenshot 2021-08-01 at 7.01.14 pm copy.png

     

    Step 7.

    Copy the last 4 digits, which is: 9730 

    Screenshot 2021-08-01 at 7.01.14 pm copy.png

     

    Step 8.

    Convert 9730 into Binary code, then copy paste the binary code in a text editor.

    Screenshot 2021-08-01 at 7.14.03 pm copy.png

     

    Step 9.

    Now you need to create a reverse copy of the binary code: 1001011100110000see the example below.

    Screenshot 2021-08-01 at 7.23.31 pm.png

     

    Step 10.

    Convert the reverse binary code 0110100011001111 into hexadecimal code, which equals to 68cf 

    Screenshot 2021-08-02 at 12.03.51 am copy.png

     

    Step 11.

    Now you need to add 1 to the hexadecimal code, which looks like this 68cf+1=

    Use this online calculator to do the calculation.

    68cf+1=68d0

    Screenshot 2021-08-02 at 12.25.20 am copy.png

     

    Step 12.

    Now you have 68d0

    Replace the first four unselected bytes/code in the calibration file with 68d0.

    Screenshot 2021-08-02 at 12.34.20 am copy.png

     

    Step 13.

    The checksum has been corrected.

    Save the calibration file and program your calibration package to the module using GM DPS.

     

     


    Share This Article



    Troy

    About The Author

    Troy is a professional Artist, Photographer, Videographer, Musician and Creator with a love for arts, electronics, coding, hacking stuff, traveling, taking photos and creating internet content. He is also the founder of CameraLoops.com


    • I Vote Up 1
    • Thanks 4

    User Feedback

    Recommended Comments

    2 hours ago, danial said:

    Step 9 

    Can you explain how I reversed it? 

    Check and decipher the attached before and after photo.

    Link to comment
    Share on other sites

    1 hour ago, Shavkat said:

    Hi I can't figure out how to do this in Step 9

     

     

    Yep, correcting the checksum can be a bit confusing.

     

    In step 9 reverse the binary code.

    Example: 

    The binary code that needs to be reversed is: 1001011100110000

     

    To reverse it.

    Paste the code in a text editor like this, then type the opposite number underneath the original code 

    1001011100110000

     

    Change the 0 into 1 and the 1 into 0, in the same order as the original binary code.

    Example the original binary code begins with 1001 the reverse code will begin with 0110

    1001011100110000 Original code

    011010011001111 reversed code

     

    Spot the difference in the example photo below. 

    In the reverse code, all the digits 1 was converted into the digit 0, and all the digits 0, was converted into the digit 1

    Screenshot 2021-08-01 at 7.23.31 pm.png

     

    If you still don't get it, let me know.

     

    • Like 1
    Link to comment
    Share on other sites

    16 minutes ago, Troy said:

     

     

    Yep, correcting the checksum can be a bit confusing.

     

    In step 9 reverse the binary code.

    Example: 

    The binary code that needs to be reversed is: 1001011100110000

     

    To reverse it.

    Paste the code in a text editor like this, then type the opposite number underneath the original code 

    1001011100110000

     

    Then change the 0 into 1 and the 1 into 0, in the same order as the original binary code.

    Example the original binary code begins with 1001 the reverse code will begin with 0110

    1001011100110000 Original code

    011010011001111 reversed code

     

    Spot the difference in the example photo below. 

    In the reverse code, all the digits, 1 was converted into the digit 0, and all the digits 0 was converted into the digit 1

    Screenshot 2021-08-01 at 7.23.31 pm.png

     

    If you still don't get it, let me know.

     

    Thanks now I understand

    • Like 1
    Link to comment
    Share on other sites

    I know this is a little off this topic. But in DPS get controller info. It asks for a ECU Aderess/ID$ ?  I found that 11 is the ECM But I was trying to find others like Bcm, FPCM, ABS

    Link to comment
    Share on other sites

    15 hours ago, WWEILER said:

    I know this is a little off this topic. But in DPS get controller info. It asks for a ECU Aderess/ID$ ?  I found that 11 is the ECM But I was trying to find others like Bcm, FPCM, ABS

    You can use gds2 to find out the ecu ID for any given module. In gds2, select the module and select ‘module identification’, the ecu ID will display on that page. 
     

    ECU address ID Diagnostic pin

    HMI: 8F, PIN: 6 and 14

    IPC: 60, PIN 1

    BCM: 40, PIN: 6 and 14

    Radio: 80, PIN: 1

    ECU: 11, PIN: 6 and 14

     

    From insignia. 

    High Speed HS-CAN Bus 

    >> Base Mapping Matrix:

    >> ECU 0x11 on HS-CAN (ReqCANId: 0x000007E0, RspCANId: 0x000007E8) ECM

    >> ECU 0x8F on HS-CAN (ReqCANId: 0x00000252, RspCANId: 0x00000652) HMI

    >> ECU 0x18 on HS-CAN (ReqCANId: 0x000007E2, RspCANId: 0x000007EA)

    >> ECU 0x2B on HS-CAN (ReqCANId: 0x00000254, RspCANId: 0x00000654)

    >> ECU 0x28 on HS-CAN (ReqCANId: 0x00000243, RspCANId: 0x00000643) Electronic Brake Control Module 

    >> ECU 0x72 on HS-CAN (ReqCANId: 0x00000249, RspCANId: 0x00000649) K26 Headlamp Control Module

    >> ECU 0x31 on HS-CAN (ReqCANId: 0x00000242, RspCANId: 0x00000642) K43 Power Steering Control Module 

    >> ECU 0x40 on HS-CAN (ReqCANId: 0x00000241, RspCANId: 0x00000641) BCM

     

     

    Low Speed LS-CAN Bus 

    >> Base Mapping Matrix:

    >> ECU 0x60 on LS-CAN (ReqCANId: 0x0000024C, RspCANId: 0x0000064C) IPC

    >> ECU 0x66 on LS-CAN (ReqCANId: 0x00000246, RspCANId: 0x00000646)  A22 Radio Controls 

    >> ECU 0xAF on LS-CAN (ReqCANId: 0x00000242, RspCANId: 0x00000642)

    >> ECU 0x80 on LS-CAN (ReqCANId: 0x00000244, RspCANId: 0x00000644) RADIO

    >> ECU 0x58 on LS-CAN (ReqCANId: 0x00000247, RspCANId: 0x00000647)

    >> ECU 0x68 on LS-CAN (ReqCANId: 0x00000248, RspCANId: 0x00000648) A26 HVAC CONTROLS 

    >> ECU 0xA4 on LS-CAN (ReqCANId: 0x0000024F, RspCANId: 0x0000064F) K39 Liftgate control module

    >> ECU 0x99 on LS-CAN (ReqCANId: 0x00000251, RspCANId: 0x00000651) maybe hvac

    >> ECU 0x8D on LS-CAN (ReqCANId: 0x00000252, RspCANId: 0x00000652)

    >> ECU 0x75 on LS-CAN (ReqCANId: 0x00000253, RspCANId: 0x00000653) K101 Trailer Interface Control Module 

    >> ECU 0xBB on LS-CAN (ReqCANId: 0x00000259, RspCANId: 0x00000659) K182 Parking Assist Control Module

    >> ECU 0xC2 on LS-CAN (ReqCANId: 0x0000025C, RspCANId: 0x0000065C) K60 Steering Column Lock Control Module

    >> ECU 0xA8 on LS-CAN (ReqCANId: 0x0000025D, RspCANId: 0x0000065D) Front seat Heating/venting/cooling/memory/ control module

    >> ECU 0x73 on LS-CAN (ReqCANId: 0x0000025F, RspCANId: 0x0000065F) K82 Automatic Headlamp High Beam control Module 

    >> ECU 0x40 on LS-CAN (ReqCANId: 0x00000241, RspCANId: 0x00000641)  BCM

    B219 Steering Wheel angle sensor address 34

    B9 obstacle 

     

     

     

    Link to comment
    Share on other sites

    Hello Troy. 

    I crosschecked your calculations towards some of my saved cache files. I could be mistaken but all steps except 11 are necessary. When adding the one the checksum becomes wrong. Am I mistaken or is there a risk that the checksum calculation is differing between our versions?

    Link to comment
    Share on other sites

    8 minutes ago, Anders Johansson said:

    Hello Troy. 

    I crosschecked your calculations towards some of my saved cache files. I could be mistaken but all steps except 11 are necessary. When adding the one the checksum becomes wrong. Am I mistaken or is there a risk that the checksum calculation is differing between our versions?

    Not sure. I’ll have to cross check it later. 

    • Like 1
    Link to comment
    Share on other sites

    Here is an easier way to do steps 8 through 11.  The checksum in the GM calibration files is the 2s complement of the 16-bit sum.  You can use a 2s complement calculator like this: 

    1s-2s-complement-calculator.png
    NCALCULATORS.COM

    1's & 2's complement calculator is an online digital computation tool to find the one's & two's...

     

     

    Set input type to hex.   Using the example from step 7, enter 9730.   Click the big blue Convert button on the right.

     

    2s Complement Binary will be 110100011010000.   Convert that binary back to hex using your favorite tool. 

     

    110100011010000 = 68D0

     

     

    • Thanks 1
    Link to comment
    Share on other sites

    On 8/18/2021 at 1:33 AM, HMI_Guy said:

    Here is an easier way to do steps 8 through 11.  The checksum in the GM calibration files is the 2s complement of the 16-bit sum.  You can use a 2s complement calculator like this: 

    1s-2s-complement-calculator.png
    NCALCULATORS.COM

    1's & 2's complement calculator is an online digital computation tool to find the one's & two's...

     

     

    Set input type to hex.   Using the example from step 7, enter 9730.   Click the big blue Convert button on the right.

     

    2s Complement Binary will be 110100011010000.   Convert that binary back to hex using your favorite tool. 

     

    110100011010000 = 68D0

     

     

    Great info, thanks 

    Link to comment
    Share on other sites

    • Contributors

    First, many many thanks, but this did not work on any of the files i tried on
    2008 IPC system file

    2019 BCM Automatic lighting file

    also 2013 BCM System calibration file

    when i check the original value of the file to test the calculation, some files it is close to your calculation, some are not near the calculated value

     

    btw non of the above files have been solved yet

    Link to comment
    Share on other sites

    Hi Troy, you have some unnecessary steps there. Why are you switching from Hex to Binary?

    On 8/6/2021 at 2:57 PM, Troy said:

    Change the 0 into 1 and the 1 into 0, in the same order as the original binary code.

    Example the original binary code begins with 1001 the reverse code will begin with 0110

    1001011100110000 Original code

    011010011001111 reversed code

     

    68cf  XOR FFFF = 9730 

     

    XOR function is probably built into your calc and its also built into windows calculator when in programmer mode

     

    Not the best contribution but sharing what I have

     

    Link to comment
    Share on other sites



    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Add a comment...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Images

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.