I had a chance to connect my 16F ECU to an oscilloscope at the weekend and I can confirm that there is
nothing coming out of either the K line or L line on "Key ON", just a steadyish (fuel pump noise, etc) 10-11v.
So the ISO code is not being transmitted as the 16F specification says.
I can see two different explanations of this:
- either the diagnostic lines are fried and just will never output anything ever again, or
- The ECU is using a different protocol.
I have done a little bit of research into this and it seems that around 1997 Fiat started to implement it's own proprietary protocol based on ISO9141 through the 3 pin connector.
My cinq was one of the last run sold in 1997, before they started selling the Seicento.
And it seems that the early Puntos with 16F ECUs did use the Fiat 9141 protocol.
So things are stacking up in favour of the 9141 protocol, the car was made in 97 when the protocol change seems to have occurred, the ECU is capable of doing it as the same box in the Punto uses 9141 and most importantly 9141 does not output an ISO code on Key ON.
In the Fiat 9141 protocol the ECU must be "woken up" by sending an initialization sequence a 5 (yes five) baud. At which point the ECU then sends out the ISO code.
The tester then has to manipulate this ISO code in some way and send it back to the ECU for it to enter diagnostic mode.
There are a few problems in testing this theory, the main one being that the wake up sequence is different for different ECUs and I'm not sure what it should be for the cinq.
Its usually just a 7bit number sent at 5 baud with odd parity, 1 start bit and 1 stop bit. So that leaves me with a maximum of 127 codes to try. All I need to do now is write the software and hope the ECU doesn't lock me out after three attempts.
Does anyone have any thoughts?
Have you ever interfaced to a 16F in a Punto using the Fiat 9141 protocol?
Peteu, how did you get on measuring your K line voltage?