A while ago there was a big discussion on how to fit a P7 style ZX6 speedo onto an older model bike (typically the 05/06 C1H model).
The main reason for doing this was to have the nice white dial easily readable clocks instead of the quite trick but less clear LCD type.
Well the long and short of it was that you could replace the speedo (indeed the mounting bolts are exactly the same for both models) so long as you made up an adapter (because the speedo used a different connector on the new model). However you had to put up with an annoying flashing warning light caused by no ECU communication to the clocks. The only solution at the time was to tape over the light, but then you wouldn't have the benefit of any real warnings.
At long last I've got around to reverse engineering the communication signal between a P7 ECU and a P7 speedo. The idea is we fit a little micro chip circuit to fool the new speedo and make it all work perfectly on an 05 ZX636. In fact, not only does the warning light behave, but we can also make the gear indicator work properly (ie make a TRE type gadget) too.
I don't expect this to be much use to most folks, but I wanted to put the info into the public domain as its apparently not known. You would need to be an electronics engineer to make use of this stuff.
OK, here we go with part1. The signals:
The speedo ECU comms line has a built in pull-up resistor to 10v so to inject a signal we need an open collector drive.
The comms line is normally HI (9.8v or so)
Data is sent in three packets at 10ms period between the start of each data byte.
The data signal is repeated at a period of 80ms (or roughly 60ms from the end of one packet to the start of the next).
If the data is interrupted, then after a few seconds the speedo will report a FI error and do the flashy red light (LED) thing, so we need to keep the data packets going continuously.
The data starts only when the ignition is turned on.
The three packets of data are all serial 8 bits plus one start bit (lo). The period of each bit is 64us.
(The following data is written as if it were a timing diagram)
So for 1st gear, if we monitor the speedo to ECU signal line (on a P7 speedo to P7 ECU of course) then we see the signal go to 0v for 64us then 9.8v for 64us then 0v for 448us then back to 9.8v
There is then a gap of 10ms (less 576us) to the middle packet which is a null frame: 0v for 576us
After another gap of 10ms (less 576us) the first data byte is repeated.
The data line is then inactive (still at 9.8v) for around 60ms until the whole thing is repeated.
(In the data sequence shown, dots represent where the data line is at a steady 9.8v level)
The speedo uses these data packets to continually verify the comms to the ECU, but of course these also represent what gear we are in.
So long as any of these 3 byte data packets are being sent then the FI/red LED will not be activated due to comms fail.
If the bike is in neutral then no gear is shown on the LCD part of the speedo.
If the bike is in gear then the LCD segment shows gear 1-6 depending on what data packets are being sent on the ECU comms line.
We are now in a position to make our own automatic gear indicator using engine RPM and wheel tacho signal. This is done by dividing the engine RPM count by the wheel tacho count. Both these signals already go to the speedo for displaying speed and revs.
OK, so I'll follow this up with a part2: cheap hardware to do all the signal controls.
Finally part3: this will be the software to program into a PIC micro.
Last edited by Extr400; 03-08-2012 at 02:49 PM.
If it's of any help, Gipro makes a product that extracts gear information from the 03-06 ecu trough diagnostic socket. They state it's a ecu calculated information (the ecu does know the gear) but then again diagnostic socket might only feed tacho and speed signals through.
If you come up for a circuit your planning at least I'm glad. Kit ecus don't have gear information, so all your hard work would be unuseful for at least me...
sweet, but being i run the kit ecu as well...OOPS
dont mind the little F1, being mine is taped over, as long as the tach works and with the speedohealer speed and water tmep thats all i really need anyways.
Location: Wilmington, Nc.. building fantastical shit
Extr400, you really need to post MORE OFTEN.
good info man.
i had read of some guys yanking the speedo sensor and getting a fault. did a lil research and saw it DOES log that, flag the bit, store in the fualt bit registry and dispatch a FI light code.
i was unaware it's a 10V pullup. thought it was 5V or 12.. lol
i had read from someone else ( an embedded electronics engineer) that theres a way to fake the ECU on the 12-R to "bypass" the speed limiter. it utilized the pulse count off the tach to drive the ECU's input and satisfy the bit detection. i think he ran it thru some NPNs or an op amp for some voltage changes. can't remember if maybe one signal was TTL and the other wasn't?
hafta look it up.
good shit. reps.
►Sept09 B.O.T.M. winner◄
Originally Posted by RacinJason44
Never lick a hooker in the coin purse.
Originally Posted by nizzmister
Bike pulls real hard and smooth, kinda like Supra's mom, but without the regret
So been busy with a micro development kit all weekend and have now completed the first part of the software to quench the FI light and get the gear info working in the P7 clocks.
At the moment have a little test program running to prove my kid-on ECU communication to the speedo. It cycles through all the gear codes so the display can be verified.
Good news is everything working good. No FI error or red LED. Gear selection readout is stable and glitch free. Have posted a picture here. This is such a super trick upgrade
Have to write some more code next to use the revs and speed to calculate the gear. Also need to rescale the speed pulse as the gearbox ratios are different for the new clocks.
Have based the electronics on a cheap Microchip development kit / programmer, but I think it will be possible to use a home made programmer (like Pony Prog) which only costs $10 to build.