Reset Mileage |
This article will discuss on how to reset the mileage of a KOSO digital speedometer. It is not actually very easy to do, since there will be decoding progress to which address of the EEPROM (electronically erasable programmable read-only memory). Then you will have to unsolder and remove the lcd from the board to access the chip. The EEPROM is where a MCU stored everything like settings, trip meter data, backlight data and the mileage . When the unit is powered down. The last display you saw on the LCD will display it the same as you power the unit on again. Without the eeprom. The new data will not be restored and you will lose all your setting and gets to default on what the firmware of the MCU was configured originally.
The photo above was the reset value. In a KOSO speedometer for Mio Sporty. The only settings you can reset by external switches are the TRIP A as shown, the TRIP B, the OIL change counter, and the MAX stored data of the reading that will stay there as long as you doesn't follow the Hold button for a brief seconds to reset them. Again you can all reset them by an external switch by holding that switch for 2 seconds on each as you select them on that button.
Now how about the ODOMETER MILEAGE counter. You simply cannot do it without accessing the data being written and stored on an EEPROM. This was the original VALUE prior to do the decoding of the eeprom data and it was not easy . There are a lot of things changing on the data on the HEXADECIMAL configuration. Process of soldering, and desoldering that EEPROM to read using an EEPROM programmers available to find what particular address those trip a, trip b, oil counter and even the settings of the entire unit.
Now how about the ODOMETER MILEAGE counter. You simply cannot do it without accessing the data being written and stored on an EEPROM. This was the original VALUE prior to do the decoding of the eeprom data and it was not easy . There are a lot of things changing on the data on the HEXADECIMAL configuration. Process of soldering, and desoldering that EEPROM to read using an EEPROM programmers available to find what particular address those trip a, trip b, oil counter and even the settings of the entire unit.
But how to find the external EEPROM of the MCU.
Normally, almost all digital speedometers that changes data as you are using it has an EEPROM. and not all MCU or microcontroller has a dedicated internal EEPROM to rear and write to it. Other's are fixed firmware. To know what are the examples of EEPROM. Use GOOGLE and search for any information about such.
So in the case of this KOSO speedometer. The EEPROM used was the 24xxxx series. 24LC02B.
So in the case of this KOSO speedometer. The EEPROM used was the 24xxxx series. 24LC02B.
And after removing it on the board. Wait!!!
You might be asking where it was located..It is placed on the top layer of the koso board which is been covered by LCD. So to gain access to it..YOU HAVE TO DESOLDER the LCD on the board which is the hardest thing to do at first. Patience and a lot of soldering skill is needed. and a word of CAUTION!!!..do not pull out the LCD if the connecting pins aren't the loose, or you will strip all copper foil path since the koso board is a double layer printed circuit board. So always bear that in mind when dealing with double layer PCB's. Both top and bottom layer have SOLDER in it. Patience is your KEY to unlock something. And after removing the LCD . You gain access that was hidden underneath as shown. The MCU is the main heart of the unit. The firmware is written. Beside it as always is your EEPROM. It is an SOIC8. with part number 24LC02B. tagged U1 you cannot read it if it is still connected on the board. It is not an ISP(in serial programming)..It must be desoldered and remove.
With your EEPROM programmer..READ the data by selecting the right device on your software. Connect the hardware to the chip, hit the read button. Then save. And you will have some written data on HEXADECIMAL form. Very intriguing right. and a pain in the brain. I myself do not know each. And decoding it is time consuming. After all we only need the location of the specific sata that is allocated for the ODOMETER MILEAGE COUNTER..On my part..my data read and shown. That is the actual data. Now the trick here is find what address is changing when you reset something like the TRIP A data from the actual..to ZERO value..and when I did try reset the TRIP A Value of 517.5km to ZERO and read again the data back. By comparing the ORIGINAL data.( NO RESET) The difference is noticeable. This is the side by side data of the NON reset and the TRIP A reset only.. Those underlined values are no longer the same. Hence on that part of the data. You will LEARN and KNOW where the TRIP A meter data is being access and written, But not all. There is a specific address that keeps on changing as the data is being modified. Once there is a new incoming data. There is also a specific counter for it. located on ADDRESS 0000B0 and 0000C0..Just pay attention to other data posted.
I know, it is difficult. That is why I made this article. For at least we can learn something from it.
So as I continue with it..we want to know the next location of another data which is the TRIP B now. solder the chip again back to the board. Turn on the KOSO and perform the TRIP B reset..Here I also have the 517.5km value same as TRIP A..But in the ORIGINAL DATA that was read. There is no same address that has the same VALUE...Weird!!!..but after the reset and reading the EEPROM again. Here is what it turns out..By comparing the TRIP A reset only to trip a and B reset data. The TRIP A address didn'change and another address changes value. Thus the next TRIP B addresses was known. And the data counter address 0000B0 and 0000C0 also changes. All underlined values is the possible data location for the TRIP B..
So what if now I reset the OIL CHANGE COUNTER..This counter is a down counter..It means it reads from the stored OIL CHANGE in KILOMETER and when it reaches Zero..a warning light will be visible on the speedometer. meaning the motorcycle is due for oil change based on the OIL MILEAGE DATA that has been set on the menu.
In my display said it was 1483km form the original 2000km that was set. It means I need 1,483 kilometers more to have a change oil. That is the function of the Display.
Now reading the data again after resetting it and goes to 2000..by comparing both trip a and b reset to trip a-b and oil counter. Another address was change. No changes on the reset TRIP A and B..hence another location of data. Once again the counter 0000B0 and 0000C0 changes..
Thus from all of this reset and reading data of the eeprom. The Address location of TRIP A, TRIP B and OIL CHANGE COUNTER was known but not the ODOMETER MILEAGE COUNTER. But by understanding the original FIRST DATA READ..We can understand fully enough the location of an address that didn't changes with the whole reset thing of other parameters.
But in the first part of the article I mentioned that also the settings of the MENU on this speedometer is also written on the EEPROM..Those preset data always written on the first address of any EEPROM. thus Address 000000 and 000010 must be the same and all other Address must be 00..except the 0000B0 and 0000C0..on this particular unit...
By rewriting all zero on the buffers starting from address 000030 all the way down to 0000A0. The Mileage data will also be reverted back to ALL ZERO. like what I did. Note that the all not zero was rewritten automatically by the MCU..since I tested the odometer if it is running and counting that is why i have 00001.0km on the display. with all menu settings unchanged.
You might be asking where it was located..It is placed on the top layer of the koso board which is been covered by LCD. So to gain access to it..YOU HAVE TO DESOLDER the LCD on the board which is the hardest thing to do at first. Patience and a lot of soldering skill is needed. and a word of CAUTION!!!..do not pull out the LCD if the connecting pins aren't the loose, or you will strip all copper foil path since the koso board is a double layer printed circuit board. So always bear that in mind when dealing with double layer PCB's. Both top and bottom layer have SOLDER in it. Patience is your KEY to unlock something. And after removing the LCD . You gain access that was hidden underneath as shown. The MCU is the main heart of the unit. The firmware is written. Beside it as always is your EEPROM. It is an SOIC8. with part number 24LC02B. tagged U1 you cannot read it if it is still connected on the board. It is not an ISP(in serial programming)..It must be desoldered and remove.
With your EEPROM programmer..READ the data by selecting the right device on your software. Connect the hardware to the chip, hit the read button. Then save. And you will have some written data on HEXADECIMAL form. Very intriguing right. and a pain in the brain. I myself do not know each. And decoding it is time consuming. After all we only need the location of the specific sata that is allocated for the ODOMETER MILEAGE COUNTER..On my part..my data read and shown. That is the actual data. Now the trick here is find what address is changing when you reset something like the TRIP A data from the actual..to ZERO value..and when I did try reset the TRIP A Value of 517.5km to ZERO and read again the data back. By comparing the ORIGINAL data.( NO RESET) The difference is noticeable. This is the side by side data of the NON reset and the TRIP A reset only.. Those underlined values are no longer the same. Hence on that part of the data. You will LEARN and KNOW where the TRIP A meter data is being access and written, But not all. There is a specific address that keeps on changing as the data is being modified. Once there is a new incoming data. There is also a specific counter for it. located on ADDRESS 0000B0 and 0000C0..Just pay attention to other data posted.
I know, it is difficult. That is why I made this article. For at least we can learn something from it.
So as I continue with it..we want to know the next location of another data which is the TRIP B now. solder the chip again back to the board. Turn on the KOSO and perform the TRIP B reset..Here I also have the 517.5km value same as TRIP A..But in the ORIGINAL DATA that was read. There is no same address that has the same VALUE...Weird!!!..but after the reset and reading the EEPROM again. Here is what it turns out..By comparing the TRIP A reset only to trip a and B reset data. The TRIP A address didn'change and another address changes value. Thus the next TRIP B addresses was known. And the data counter address 0000B0 and 0000C0 also changes. All underlined values is the possible data location for the TRIP B..
So what if now I reset the OIL CHANGE COUNTER..This counter is a down counter..It means it reads from the stored OIL CHANGE in KILOMETER and when it reaches Zero..a warning light will be visible on the speedometer. meaning the motorcycle is due for oil change based on the OIL MILEAGE DATA that has been set on the menu.
In my display said it was 1483km form the original 2000km that was set. It means I need 1,483 kilometers more to have a change oil. That is the function of the Display.
Now reading the data again after resetting it and goes to 2000..by comparing both trip a and b reset to trip a-b and oil counter. Another address was change. No changes on the reset TRIP A and B..hence another location of data. Once again the counter 0000B0 and 0000C0 changes..
Thus from all of this reset and reading data of the eeprom. The Address location of TRIP A, TRIP B and OIL CHANGE COUNTER was known but not the ODOMETER MILEAGE COUNTER. But by understanding the original FIRST DATA READ..We can understand fully enough the location of an address that didn't changes with the whole reset thing of other parameters.
But in the first part of the article I mentioned that also the settings of the MENU on this speedometer is also written on the EEPROM..Those preset data always written on the first address of any EEPROM. thus Address 000000 and 000010 must be the same and all other Address must be 00..except the 0000B0 and 0000C0..on this particular unit...
By rewriting all zero on the buffers starting from address 000030 all the way down to 0000A0. The Mileage data will also be reverted back to ALL ZERO. like what I did. Note that the all not zero was rewritten automatically by the MCU..since I tested the odometer if it is running and counting that is why i have 00001.0km on the display. with all menu settings unchanged.
The mileage is now RESET.
Disclaimer: Tampering your original mileage for the purpose or intention of selling the unit to gain profit is illegal globally. I will not be held responsible for your action. The unit being reset here was a defective unit and to be able to sell only the speedometer as it should be. I have to reset it to zero. That is the only purpose.
Thank you for this article. i'll try to reset my koso.
ReplyDeleteHi....is it possible to do this with other digital speedometers? I'm planning to modify my digital speedometer so it wont start at 0.0, but instead at around 53,353km, which is the actual odometer reading on my mechanical speedometer
ReplyDelete