Technical 6F/16F Cinque/Sei ECU Reader Project

Currently reading:
Technical 6F/16F Cinque/Sei ECU Reader Project

Thanks peteu,
When you say "varying a bit" do you mean that the voltage just drops a little until the fuel pump stops running or does it drop down to say 6-7v for a second or two and then stabilise at 10-11v?
 
It was fluctuating around 10.5v but not dropping any lower than 10. I didn't measure for long enough for the pump to stop i dont think.
 
I have an update on my progress with the reader. Last night I decided to remove the ECU from the car and bench test it. I took it out and connected it to a battery and 10MHz oscilloscope, and what do you know I got a signal out on the K line when power was applied. :eek:

The last time I had it out I didn't have access to an oscilloscope and the time I tested it in the car the electrical noise from the fuel pump etc made the signal impossible to see. But last night with a clean DC supply and no noisy motors on the same line I could see the signal very clearly.

I still had my PIC circuit I talked about earlier hooked up to a MAX232 to interface it with my PC. So I made a 12V to 5V level shifter from a N Channel MOSFET so that I could connect one of the input pins on the pic to the K line.

I then used the pic to read the K line continuously @ 1200 baud and output the results at 56k baud to the PC. This is all overkill I know I could've just connected the level shifter to an input pin on the MAX232 and set the PC comm port to 1200, but I want to use the PIC circuit as a stand alone reader later.

When I turned on the ECU, I got the ISO code displayed on screen (through a little app I wrote to display binary comm port data) exactly as described in the spec.

I can now confirm a few things from the 16F technical spec:
  1. The line voltages are 0-12V (approximately)
  2. The K line idles high @ 12V through an internal pullup resistor
  3. The K line seems to be an open drain output.
  4. The ISO code is output at 1200 baud, 1 start bit, 8 data bits and 1 stop bit.
  5. The K line is positive logic, i.e. 12V is logic state one, 0V is logic state zero.
  6. The 16F ECU (at least my one, late 1997) does not use the Fiat 9141 protocol.
I know it says all of this in the document but I can now say that it's correct. Thanks arse!

That's all I managed to do last night, but it's very encouraging as it proves that the hardware is working and the ECU is not fried.

I now hope to reprogram the PIC with code to setup communication with the ECU and start reading data.

I'll keep you all informed on how it goes.
 
Last edited:
Ok folks, I have good news.

After some initial problems communicating with the ECU in the car (mainly with the software), I think I have cracked it.

I have got the ISO code out on Key ON, sent the init sequence and talked to the ECU through a PIC at 7812.5 baud.

I read the battery voltage, throttle position, non-validated errors, validated errors, entered active diagnostics mode, run the fuel pump as part of AD mode, and cleared the error memory.

I've tried a few cycles of this and it all works consistently. (y)

At the minute I am running it through a pretty basic interface, that outputs hexadecimal data and allows me to request data from the ecu by typing in the hex code for the data I want. So it's not exactly very elegant, but it works for testing.

I now want to knock up a GUI interface for the laptop that will be a bit more streamlined.

A basic overview of what I've done is attached below.

Is anyone still interested in developing the ECU reader, I would like to get some input on features, etc?
 

Attachments

  • CinqDiagOverview.jpg
    CinqDiagOverview.jpg
    23.8 KB · Views: 478
Excellent Stuff Cinqsporting97! :)

I'm still very interested in this idea.

In terms of features, what i'd really like is a unit similar to barnacle's "widget" for the coupe, something with a display that could be used portably or installed in-car, to display the most revelant information (i guess this may be different for different people?) but that could also be connected to a laptop for error code removal and diagnostics.

I did start looking into how to do this, but my knowledge is very limited and as such, i'm still at the reading and trying to comprehend stage!

Keep up the good work!

cheers
Pete
 
Good to hear someone is having a go at construction!. I did read somewhere that further instructions are available after sending 16h, but dont know anymore than that, though there must be extra stuff because you can send the emergency start procedure via the interface, and there's probably much more.
 
My dad got an OBD2 lead (does PWM and ISO) for his Ford Transit (before it got written off!) from www . obd-2.com , it uses Vehicle Exporer and can show diagnostic codes and real time data (TPS, lambda sensor, etc etc).
Something like this for my 1999 Seicento would be great! My dad has access to scopes and other diagnostic kit and his mate is a programmer so I might be able to slip something across them if needed (eg "getting a scope across the K line") just let me know.
Can you show me where the diagnostic connector is and which pins do what??
Keep up the good work!!
Thanks,
Ben
 
CinqSporting97, looks like you have a pic interface sorted and are getting comms. for a software interface, might I suggest a Java GUI ? - free and near enough open source. there is a serial port interface package called RXTX for java which i was experimenting with a while ago, and there is also suns javacomm for serial ports which is a bit unsupported now. Or use VB6, but not that horrible dotnet :eek:

Along the lines of a display gadget, I think something with a 2 line 20 character LCD display and a few buttons to scroll through items would be all thats needed. I am currently working on a VFD display dash for a boost gauge and the other analogue gauges. And will probably interface to the ECU (on a JTD engine) to display other values. using a PIC16F877 and a serial VFD display. work in progress though, working on methods of calibration at the moment..

Owen.
 
Bentoonbull, I'm not sure about the 1999 seicento, but if it's similar to the cinqecento (which it probably is) the diagnostic connector is under the bonnet, attached to the ECU wiring harness. It's a three pin amphenol superseal female connector as kritip says and it usually has a small plastic cover on it to keep the water out. If you have the connector with the locking tab facing up (toward the sky) the L line is the pin on the left, GND is the middle one and the K line is the one on the right. See attached.

The L line is used to send data to the ECU and the K line is used to read data from the ecu.

If you can confirm if your ECU is a 16F (check the numbers printed on the label on top) we can help determine if this interface will work.


Stylers,

Thanks for the suggestion to develop in Java, I was wondering what would be the best option to allow everyone to run it. I looked into RXTX and it certainly looks feasible.

Does anyone have any thoughts on using C# targeted for mono, so that the software will run on windows and linux? It's also quite good in that it includes serial port access libraries as standard.

I will try to knock up something stand alone, with a LCD display as soon as I can.
 

Attachments

  • Fiat Diag Plug.jpg
    Fiat Diag Plug.jpg
    6.8 KB · Views: 1,303
CinqSporting97, yes, it has that connector, with a cover over it and the number on the ECU contains 16F so it looks like it is the same. Thanks, will keep a close eye on developements! Good luck with it! :)
 
I suppose C# and mono would be a good way to go if you are already into C# (I have no experience of them), but there might be additional overhead getting it set up for those on linux. but then again, if a useful project were to be made of it, most people will probably be using a windoze laptop. as an argument for java, I have the sun jre and jdk working on ubuntu no problem, and it wasnt a ball-ache to get working either.

btw, here are some pics of the dash display unit i'm working on.. currently displaying a voltage from a pot.. wish i had more time for this craic :(

http://homepage.eircom.net/~digitalreilly/stuff/DSC00584.JPG

http://homepage.eircom.net/~digitalreilly/stuff/DSC00589.JPG


Owen.
 
Is this project still ongoing? I hope so because I could do with a code reader for my punto as she is too sick to get to a garage to have the fault codes read.
 
Hi Spentona,
It sure is. Currently my reader uses a PIC microcontroller to handle the communications with the car and I have some basic software to read the codes from a laptop. However I intend to develop a circuit that should be simpler to build and connect directly to the serial port on the computer.

Does your Punto have a 16F ECU? What year and engine is it?

Hope we can help solve your problem.
 
Its a mk1 1.2 fire engine with SPI on a T reg (99). Im at work at the moment but from memory it is a 16F but will have to check later tonight when I get home.
 
Sorry for the late reply for this but yes its a 16f.

Hi Spentona,
Would you feel up to building a simple electronic circuit to allow you to read the codes off onto a computer?

Do you have a laptop with a serial port? If so I am working on a very simple circuit that would allow you to attach a laptop to the ECU and read off the codes using some software I am writing.

It's still in the development stages, but I'm not that far away. What kind of time scale have you got?

If you don't feel confident with the electronics I could maybe build you a unit for a small charge.
 
Wouldnt mind building the circuit its getting the components that may be a problem i would probably have to get them of e-bay buying 10 of everything. It would probably be as cheap to get a ready built one from you. Im not in any hurry for one as I have to take the head off as it is getting low compression on the 4th cylinder and i believe this is whats causing the problem.

I could soon get hold of a laptop with serial port on it. Does the program run from windows or dos and what do you think is the minimum spec?
 
Back
Top