Вы находитесь на странице: 1из 32

DIY: Honda Odometer Reprogramming

Heres how to reprogram your odometer after an instrument cluster swap. The vehicle this was
demonstrated on is a 2004 Honda Accord.
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.
YouTube Video: DIY Honda Odometer Reprogramming:
https://www.youtube.com/watch?v=TztvjckDA7E
Introduction
Lets say you swapped an instrument cluster from a coupe to a sedan to change the look or color of the
needles, or youre 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
8 pin DIP socket
Serial programmer
- Breadboard
- Hookup wire
- Female serial port header
- 5V from computer power supply
- 4.7K ohm resistors
- 5V Zener diodes
o Wire strippers

Serial programming software (PonyProg freeware)


A spare instrument cluster in case you screw up
Original Instrument Cluster from my LX sedan, 314,622 km:

Heres my new cluster. Its 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 theyll 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 dont touch the black face of the gauges, its 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 its 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). Thats it!

And heres my programmer connected to the PC:

And the breadboard with the resistors and diodes:

Now heres where it got tricky. Using the PonyProg software, I was able to read and save the
information from the odometer chip. But I wasnt able to write to the chip. The EEPROM must be
removed from the board if you want to write to it, as it cant 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 cars 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 dont 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.
Heres 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 Ill 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, youll 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 its not exactly accurate but close enough, because there is a minor incremental value that I
havent 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 weve 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.

Heres 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 thats 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:

Ive 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, its interesting that Honda left a hole in the back of the cluster exactly
behind where the EEPROM sits, where we soldered the hookup wire.

Heres a closer look. Remember though, even if you were able to solder hookup wire without taking
apart the circuit board, you wouldnt be able to write to the chip in circuit, just read from it.

Fin.

Вам также может понравиться