Difference between revisions of "Chevrolet (03-06) Instrument Cluster EEPROM info"

From wiki.N4VX.net
Jump to navigation Jump to search
(Created page with "=lorem ipsum= Rough draft status.... Instrument cluster EEPROM is a SOIC8 AT25020A (GM P/N: 56585 for 03-04) *Datasheet: Atmel AT25020 {| class="w...")
 
Line 19: Line 19:
 
==Mileage Notes==
 
==Mileage Notes==
 
The mileage is a bit tricky, as it’s encoded in HEX, and it’s written in three places for data integrity. If you bought a used cluster off eBay, or went to the local Pick N Pull, but you have your original cluster still you can just use the SPI programmer to dump the contents of the EEPROM on your original cluster, and then program this into the chip on the new cluster and away you go – this will copy the mileage and the VIN over as well as your trip meter, engine hour meter, and settings from the old cluster. Since I didn’t have access to the old cluster, but I did know what the truck’s correct was I had to program it myself. The mileage is stored down to the tenth of a mile but the odometer doesn’t display the tenth. In my example photo above, the mileage is recorded as 15 EC 3D which converted to decimal is 1,436,733 or 143,673.3 miles. Convert the correct mileage to hexadecimal and write these back to the EEPROM to correct the mileage. For example, if the correct mileage is 150,000 you would convert 1,500,000 to hexadecimal and write this back to the chip. Remember the last two bytes are written sequentially over a range of addresses for wear leveling so the last two are not necessarily going to be next to the first four bytes, and you need to change all three copies.
 
The mileage is a bit tricky, as it’s encoded in HEX, and it’s written in three places for data integrity. If you bought a used cluster off eBay, or went to the local Pick N Pull, but you have your original cluster still you can just use the SPI programmer to dump the contents of the EEPROM on your original cluster, and then program this into the chip on the new cluster and away you go – this will copy the mileage and the VIN over as well as your trip meter, engine hour meter, and settings from the old cluster. Since I didn’t have access to the old cluster, but I did know what the truck’s correct was I had to program it myself. The mileage is stored down to the tenth of a mile but the odometer doesn’t display the tenth. In my example photo above, the mileage is recorded as 15 EC 3D which converted to decimal is 1,436,733 or 143,673.3 miles. Convert the correct mileage to hexadecimal and write these back to the EEPROM to correct the mileage. For example, if the correct mileage is 150,000 you would convert 1,500,000 to hexadecimal and write this back to the chip. Remember the last two bytes are written sequentially over a range of addresses for wear leveling so the last two are not necessarily going to be next to the first four bytes, and you need to change all three copies.
 +
 +
==Misc.==
 +
The VIN is stored as plain text, that is, the characters are encoded in ASCII and written as hex.
 +
Last 4 characters from label bar code stored as plain text, serial number maybe?
 +
GM 8 digit Part Number for cluster is stored in hex format MSB→LSB
 +
Cluster model ID is 4 large characters from the label. Also stored as ASCII plain text.
 +
Trip meter value is in speedometer pulses, e.g. miles = value/4000, it is stored LSB→MSB. Took me a while to figure out how they were encoding this, but it means that your trip meter is accurate to about 15 inches!. It’s probably only updated in volatile memory and stored periodically or at shutdown, otherwise it would wear out the memory location pretty quickly.
 +
 +
Not stored in cluster:
 +
Vehicle settings menu, except language (1) and units (2)
 +
Timer
 +
Fuel used

Revision as of 20:03, 5 June 2022

lorem ipsum

Rough draft status....

Instrument cluster EEPROM is a SOIC8 AT25020A (GM P/N: 56585 for 03-04)

Data Locations
Data Location Notes
Mileage xnnnn-nnnnh
Hours 0x0504-0505h
Temp Gauge 0x000059h 0 – Yes 1 – No

Mileage Notes

The mileage is a bit tricky, as it’s encoded in HEX, and it’s written in three places for data integrity. If you bought a used cluster off eBay, or went to the local Pick N Pull, but you have your original cluster still you can just use the SPI programmer to dump the contents of the EEPROM on your original cluster, and then program this into the chip on the new cluster and away you go – this will copy the mileage and the VIN over as well as your trip meter, engine hour meter, and settings from the old cluster. Since I didn’t have access to the old cluster, but I did know what the truck’s correct was I had to program it myself. The mileage is stored down to the tenth of a mile but the odometer doesn’t display the tenth. In my example photo above, the mileage is recorded as 15 EC 3D which converted to decimal is 1,436,733 or 143,673.3 miles. Convert the correct mileage to hexadecimal and write these back to the EEPROM to correct the mileage. For example, if the correct mileage is 150,000 you would convert 1,500,000 to hexadecimal and write this back to the chip. Remember the last two bytes are written sequentially over a range of addresses for wear leveling so the last two are not necessarily going to be next to the first four bytes, and you need to change all three copies.

Misc.

The VIN is stored as plain text, that is, the characters are encoded in ASCII and written as hex. Last 4 characters from label bar code stored as plain text, serial number maybe? GM 8 digit Part Number for cluster is stored in hex format MSB→LSB Cluster model ID is 4 large characters from the label. Also stored as ASCII plain text. Trip meter value is in speedometer pulses, e.g. miles = value/4000, it is stored LSB→MSB. Took me a while to figure out how they were encoding this, but it means that your trip meter is accurate to about 15 inches!. It’s probably only updated in volatile memory and stored periodically or at shutdown, otherwise it would wear out the memory location pretty quickly.

Not stored in cluster: Vehicle settings menu, except language (1) and units (2) Timer Fuel used