Features automatic Checksum updating.  No checksum modules to buy. 

The Pro2DMEeditor supports the following types of Checksum Correction. The stored checksum value is corrected as the edited files is saved to disk. This is fully automatic.

 Checksum Correction Types
  1. Basic
  2. Multiple Ranges
  3. 16-Bit Complimentary 
  4. 32-Bit Complimentary (OBDII)

Definition

"checksum correction" also known as "checksum verification" or just "checksum"..... Checksum Verification was introduced to BOSCH Motronic ECUs to error check of the EPROMs stored data. When an error in the EPROM's stored data is detected, the system enters an error mode and responds with reduced performance and/or a check engine light.

Why is this important?

Tuners change maps and other data to enhance performance. They save these changes to an EPROM or Flash it to an ECU. These changes are detected as "faulty data" by the Motronic system and it responds with reduces performance. This is not what the tuners had in mind.... So any changes to stored data requires correcting the EPROM's stored checksum's value. This is done automatically for you with the Pro2DMEeditor.

Basic Checksum Correction 

The checksum for a partial section of EPROM memory is calculated and compared against a stored value on the EPROM itself. 

32k EPROM (27256 or 27C256) 64k EPROM ( 27C512)
Checksum Range - 0000h to 7EFFh
Checksum Location - 7F00h     [uses two address bytes]
Checksum Range - 0000h to FEFFh
Checksum Location - FF00h     [uses two address bytes]

n the example on the left, the dark blue range is the part of the checksum range.  I calculated checksum to be 2053h shown on the lower left in the blue rectangle. It exactly matches the stored checksum shown in the green rectangle.  Only the lowest 16 bits of the checksum are used. 

Multiple Ranges - Checksum Correction  This is similar to the Basic Checksum Correction Type except that multiple checksum ranges are involved.

A good example of a Compound Checksum would be the BMW 325i - ECU 0261200173

Checksum Range 1 - 0000h to 1EFFh
Checksum Range 2 - 2000h to 7FFFh
Checksum Location - 1F00h  
Checksum Offset * - B51Fh

Checksum Offset * - In this example, the Checksum Offset is the checksum of internal 8052 ROM. It is needed so that the Pro2DMEeditor can calculate the corrections to the checksum before saving the new value to 1F00h of the EPROM.

 

Complimentary 16-Bit - Checksum Correction   

The checksum is store in four memory addresses. The 16-bit checksum is stored in the first two memory addresses (green).  The 16-bit checksums compliment is stored in the second two memory addresses (blue).  The compliment is derived as follows:

"checksums compliment" = FFFFh - "checksum"
or as in this example      F93Ch = FFFFh - 06C3h

Since the sum of the checksum and its compliment equals FFFFh, a constant value, the checksum can be included within the checksums range. Not so with other types of checksum Correction.  Our example for the Complimentary 16-Bit Checksum is a VW Polo 1.4L MP9.0 ECU 0261204959. The checksum range is the entire chip, address  0000h through FFFFh. 


Complimentary 32-Bit - Checksum Correction  

The 32-Bit Complimentary - Checksum Correction is the as described for the 16-Bit Complimentary Checksum except the "checksum" and "checksums compliment" are twice as big.