Drive Accord Honda Forums banner
1 - 6 of 6 Posts

· Registered
Joined
·
247 Posts
DIY: Honda Odometer Reprogramming

Here’s how to reprogram your odometer after an instrument cluster swap. The vehicle this was demonstrated on is a 2004 Honda Accord.

YouTube Video: DIY Honda Odometer Reprogramming


Disclaimer:
1. The information provided should only be used to correct mileage information. While it is not illegal to change your odometer reading, it is illegal to falsify or misrepresent the actual mileage of the vehicle.
2. The odometer display can be easily changed by swapping clusters to one of a lower mileage.
3. This procedure requires disassembly of the cluster, and de-soldering of SMD components. Use care and caution when dealing with delicate components, and practice first on a spare cluster.

Introduction

Let’s say you swapped an instrument cluster from a coupe to a sedan to change the look or color of the needles, or you’re replacing a defective cluster. The mileage on most (Japanese) cars is stored on the instrument cluster itself, and not in the ECU. Therefore the mileage of the original vehicle that the cluster was from will be displayed on the dash.

Odometer information is stored on a small EEPROM chip on the circuit board. The chip can be read and written to using a serial programmer. The information is coded in HEX characters.

The odometer information can be copied over from the old cluster to the new cluster using Honda HDS, assuming the original cluster is operable. What follows is a hack-around to using HDS, by programming the mileage directly to the chip. You can also opt to merely swap the chips, or copy and paste the program, rather than decode.

Tools and Parts Required:
• Screwdrivers
• Soldering iron, solder and a de-soldering pump
• Computer with Windows XP and serial port
o Wire strippers
• Serial programmer
- Breadboard
- Hookup wire
- Female serial port header (optional)
- 5V from computer power supply
- 4.7K ohm resistors
- 5V Zener diodes

• Serial programming software (PonyProg freeware)
• A spare instrument cluster in case you screw up

Original Instrument Cluster from my LX sedan, 314,622 km:



Here’s my new cluster. It’s from an EX-L sedan with 211,150 km:



Disassembly

Once the cluster is out of the vehicle, pull up on a few tabs to remove the front plastic cover and fascia.





The needles will need to come off next. Pull up on them carefully and they’ll come out. Take a photo of their home position before taking this apart so you know where to realign it upon reassembly. Use gloves and don’t touch the black face of the gauges, it’s a fingerprint magnet.



Once the gauge face is removed, remove the white backing plate revealing the circuit board, with the L56 EEPROM chip:





According to the datasheet, pins 1, 2, 3, 4, 5 and 8 will need to be connected for programming. To read the information off the chip, while it’s still in the cluster, we need to solder some hookup wires to the leads. If you use a multimeter you can trace the leads to the pads on the other side of the circuit board:



And then solder some hookup wire:






Now before you can properly read from the chip, on board, you have to short the crystal, located to the top left of the EEPROM chip:



Hardware Setup

This is the EEPROM programmer I built to connect the chip to my desktop computer. It interfaces through the RS232 serial port. All it is are three 5V zener diodes ($1) and three 4.7K ohm resistors ($1). The rest is some 22 AWG hookup wire and a breadboard ($5). That’s it!



And here’s my programmer connected to the PC:



And the breadboard with the resistors and diodes:



Now here’s where it got tricky. Using the PonyProg software, I was able to read and save the information from the odometer chip. But I wasn’t able to write to the chip. The EEPROM must be removed from the board if you want to write to it, as it can’t be programmed in circuit.

So off we went trying to desolder an SMD chip…



And SNAP!!! The leads broke off the chip. This is why you should use a hot air station so it heats all the pads evenly and you can just pick the chip off the board instead of prying it.



Luckily, I had saved the EEPROM information I downloaded earlier. I found another replacement chip, the Microwire 93C56 chip from a car’s ECU I had laying around. The 93C56 chip is identical electronically to the L56 chip.



So I soldered wires to the “new” chip, and was able to connect it to the programmer directly, without having the board hamper the write function. The additional advantage is I could now quickly disconnect and reconnect my chip to the odometer board, and then test my new program out on the car as I decoded the odometer program.



Programming

I used PonyProg software, which is a free serial device programmer. It reads and writes to the COM port, which in my case is directly to the chip. If you don’t have a serial port on your computer, you can purchase an EEPROM programmer that connects via USB and emulates a serial port.
First thing, head over to the setup menu under options:



Make sure its set to read from the serial port, COM1, and SI Prog I/O. You can then Probe the port to make sure it detects your serial programmer.


Next head over to the device menu and select Microwire 93C56, which is compatible with the L56 EEPROM chip.


Then click Device –> Read to read from the chip. The information from the chip will be downloaded in HEX format in a 16 by 16 bit array.



Decoding the Odometer Dump

At this point you can merely save the odometer dump, and write it to your new cluster. Or if the engineer inside you is itching to make sense of 256 HEX characters, you can attempt to decode it.

Here’s a look at the HEX dump. Through a lot of trial and error, back and forth in the vehicle, and a few hours of hair pulling, calculating and note-taking, I was able to come up with a rough idea of how the odometer program works:



The odometer has a major value in addition to a minor value that increments. Trip A and B are also stored in the EEPROM. The major value is what I’ll be focusing on, since that controls the thousands of kilometers which is more important.



Knowing this, if we focus on the last few lines in the EEPROM dump, you’ll notice the characters 33 85 CC 7A repeated 8 times. This is the major odometer value in HEX. The numbers are actually the HEX invert of each other, and act like a checksum. A HEX lookup table, which is 0-F and F-0 backward is used to determine the inverse of each character.

For example, a “3” will be inverted as “C”, and 8” inverted as “7” and “5” inverted as “A”.



Therefore the only characters that store actual information are the first two HEX digits, 33 and 85.

To decode, simply convert the number to decimal using a hex to decimal converter, and then multiply by 16 to give you the odometer reading in kilometers.



Now I know it’s not exactly accurate but close enough, because there is a minor incremental value that I haven’t decoded. I made an excel sheet to help me convert the numbers:



Using this method of calculation, I need the new cluster to read 314K, so I can divide it by 16 and convert it to HEX to give me the base value in the odometer dump. This value, 4C CF will then have a checksum of B3 30, which I will write to the chip.



Writing information to the chip


Now that we’ve got the corrected mileage value, head back to the PonyProg software and click Edit – Edit Buffer Enabled to enable writing to the HEX bits.



Click on the bit you want to edit and type in the new value. In my case I replaced all “33 85 CC 7A” with “4C CF B3 30”.



Here’s what my modified odometer dump looks like with the bottom two rows edited for 314K:



Then click write to the device to copy your new modified program to the EEPROM chip:





And that’s it, you can now disconnect the EEPROM from the programmer and hook it up to the odometer board to test it out.

Prototyping

Since I still had the hookup wire attached to the original odometer board, I use it to temporarily connect the EEPROM chip with the 314K program on it and test it in the car to see if it works.



I used alligator clips to connect the six hookup wires to the EEPROM. It looks ghetto, but this is only a test before re-soldering the chip!



And start it up and it reads 314,543km, which is close enough to what I had on the old cluster:



I’ve also gained the outside temperature display option on the EX-L cluster:



Closing everything back up

Next, we can transfer the new programmed chip back onto the odometer board. In my case it was already soldered onto an ECU board, and it needed to be de-soldered. A hot air station is highly recommend here, as we broke more pins taking this one off too!

Then solder the new chip back onto the board:



When removing the original chip, a few of the pads got damaged. Thus a patch wire was soldered in to compensate for the lack of conductivity with the board beneath the lead.



Reassembly

Now its time to reassemble the instrument cluster:



Reinstall the needles, in the position that they originally came off in. They have a stopper that has to be adjusted.



Finished

Once everything is back together, connect it to the vehicle and start it up!



Now of course you can program anything you want. Just for fun I programmed 999,999km. The odometer dump for that looks like this:



Some other notes

Gauges can be calibrated by hand when the cluster is turned off. Use an OBDII scanner to determine vehicle and engine speed and coolant temperature. Calibrate the gas gauge when the gas light turns on.
The odometer does not roll over to 1 million kilometers. But the trip computer still works, as you can see here, I drove just over a kilometer to see what would happen:



Once all the gauges are closed up, it’s interesting that Honda left a hole in the back of the cluster exactly behind where the EEPROM sits, where we soldered the hookup wire.


Remember though, even if you were able to solder hookup wire without taking apart the circuit board, you wouldn’t be able to write to the chip in circuit, just read from it.

Fin.
 

· Bob's your UNCLE ...
Joined
·
2,286 Posts
@speedkar9 - I will never question your savvy again sir ... well played ...
 

· Texas Ground Pounder
Joined
·
1,376 Posts
VERY nicely done. I've often wondered about getting the numbers to match if you had to swap the gauge cluster. Now I know.

I've removed many of those chips in the past. Gotta say, using the solder sucker to remove the old solder was the downfall of removing the chip. Those things never remove ALL the solder and the pins are still connected to the board. So when you go to pull on the pins, they either break or pull the board pads. Plus, the chips are usually held on to the board with a hard glue. What I've done in the past is either heat each pin and carefully pull up each pin one by one with an Exacto knife until they are all separated. Then pop the chip off the board. The other method I would do for such a small chip is heat all four pins on one side at the same time with the iron (leaving the solder on them) and then try to lift the chip on one side with the knife. Again, the glue that holds them to the board is the tricky part.

In any case, nice write up.
 

· Registered
Joined
·
247 Posts
I should do this with the spare cluster I have out in the garage, put 999,999 miles on it, then send Honda pic and see if they want to buy my car and put it in their museum.
Haha, yes that was the little joke I put at the end of the video. I wouldn't mind taking my car with the 999,999 cluster to the dealer to see what they're reaction would be. But I don't want them to record that mileage against my car's record and things could turn messy.

Easy peasy. :eek:
Yes it is, if you know a bit of soldering and programming.

@speedkar9 - I will never question your savvy again sir ... well played ...
Thanks :) I've actually got some experience working with EEPROMs when I hacked my Lexus cluster to work in my Toyota, and my Toyota's ECU to erase all the keys:



VERY nicely done. I've often wondered about getting the numbers to match if you had to swap the gauge cluster. Now I know.

I've removed many of those chips in the past. Gotta say, using the solder sucker to remove the old solder was the downfall of removing the chip. Those things never remove ALL the solder and the pins are still connected to the board. So when you go to pull on the pins, they either break or pull the board pads. Plus, the chips are usually held on to the board with a hard glue. What I've done in the past is either heat each pin and carefully pull up each pin one by one with an Exacto knife until they are all separated. Then pop the chip off the board. The other method I would do for such a small chip is heat all four pins on one side at the same time with the iron (leaving the solder on them) and then try to lift the chip on one side with the knife. Again, the glue that holds them to the board is the tricky part.

In any case, nice write up.
Thanks. Yes the numbers should match (close enough if you decoded it my way) once you reprogram. You can also opt to swap the chips if your clusters are of the same vintage and programming format. Some clusters from other cars (I know personally for example, within the 2nd Gen Toyota Sienna clusters) use different chips, and you'd have to decode and reprogram. It might be a similar story for those swapping in TSX/TL clusters in their Accord.

I think lifting each pin off the board would be quite risky for an SMD chip. The pins break very easy. And yes we found out the hard way that there was glue underneath the chip. The best method would be to use a hot air station, or at least a heat gun and aluminum foil to protect the components around it, and use a tweezer to lift the chip up and off.

There's also another method that I don't recommend and we didn't get a chance to test here: to cut the traces on the board leading to the chip. This will isolate the chip from the board electronically, while still leaving your soldering points intact. You'd then solder in patch wires after information is written to the chip and your done.
 
1 - 6 of 6 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top