My 2006 (European) 8th gen. Honda Civic had some VSS (Vehicle speed sensor) troubles. The VSS sends a pulse signal to the ECU. The pulse signal is generated by a Hal sensor that reeds a magnet on the output shaft of the gearbox. I replaced the VSS with a GPS and Arduino generating a simulated pulse signal based on GPS speed:
This worked great, but eventually I solved the VSS problem (otherwise ECU didn’t receive a speed signal in tunnels and the cruise control wasn’t as spot on compared to the original VSS signal) . Which made my gps solution useless.
One problem that I have, is that the car’s speedometer is way off (deliberately, because if I read the speed from the OBDII port the speed is more accurate). About up to +6 km/h when driving 100km/h. Now I want to use the GPS / Arduino just to alter the (digital) speedometer in the dashboard. The speedometer combined with turn signal rev meter, eco meter and a malfunction light is a single unit on the dashboard. I thought this unit received a similar speed pulse signal, but I was apparently wrong. The left and right turn signals are separate wires, but it seems that the rev meter, eco meter, malfunction light and the speedometer is controlled by a single data wire… I want to read this signal with the Arduino, if there’s a good GPS fix I want to alter the speed signal with accurate speed, and pass through all other data to control the other lights.
So how can I reverse engineer this data stream? I hope someone over here can point me in the right direction, or maybe has some insight information about it.
I’ve hooked up an oscilloscope to make the data visible:
The voltage of the data pulses are 10V… seems a bit height. Need a voltage divider to receive this signal into the Arduino. And need some kind of transistor schematic to output this to the dashboard.
Looks like a single bit is about 100 microseconds
Looks like every data package starts (or ends) with about 5 milliseconds high. And the duration of a complete data package is 20mS.
Is anyone recognize this kind of signal based on my scope screenshots?