|
|
|
|
|
|
|
|
#1
|
|||
|
|||
|
Automated Code Reader for pre-'96 Diagnostics
I have a circuit that automates reading and erasing codes on '95 and older cars. It interfaces to the diagnostic connector of the car in the same manner as Mercedes' pulse code reader or the home-made LED reader does.
The reader has these functions: read a single code, erase a single code, read all codes, and erase all codes. These work with one system at a time. With read all codes by briefly pressing a button only once the circuit automatically reads all the the stored codes, and when finished it continuously scrolls through them on the LED display. A picture of the circuit on a "bread board" and the schematic are attached. Parts include 2 integrated circuits, 3 transistors, and 10 resistors. Cost of these is about $5 plus shipping from www.mouser.com. A circuit board to mount and connect the components, banana connectors, and buttons for the erase and read functions are additional. If someone is interested in building this send me an email or PM for a parts list and further details. One of the integrated circuits is a microcontroller that needs to have a program loaded. If I am mailed the microcontroller I will do this for free and mail it back, or a programmer can be purchased for about $40 from Mouser. Last edited by bobterry99; 08-23-2008 at 06:13 AM. Reason: Change resistor values of schematic |
|
#2
|
|||
|
|||
|
How do you clear the Memory ? That is where you still need the standard
Led/sw.
__________________
A Dalton |
|
#3
|
|||
|
|||
|
Hi Arthur. You clear the memory with the single erase or erase all functions.
Here is a detailed explanation of how you would read and erase a single code and what the circuit is doing. You momentarily press the circuit's read button causing it to ground the diagnostic socket for 3 seconds. The circuit then senses the pulses that are output at the socket and counts them. As the count increments it is shown on the LED display. When it is finished counting you may then press the erase button momentarily which causes the circuit to ground the diagnostic socket for 7 seconds. The erase all function works the same as the above, only the automation is carried a step further. After just once momentarily pressing the read and erase buttons simultaneously the circuit automatically reads and erases all the codes one at a time by grounding the socket for 3 seconds, counting the pulses for the code, grounding the socket for 7 seconds, and repeating. I first tried to do something like this 5 years ago using only electronic hardware. I remember posting somewhere about this and hearing from you back then. That design had limited success because electrically the pulses are not the same for all systems, and that circuit could work with some but not others. This new design with the microcontroller solves that problem, and because the functionality is implemented in software it's simple to have additional features like read or erase all codes. |
|
#4
|
||||
|
||||
|
Nice gadget! Love stuff like this.
The biggest problem probably is remembering the needed codes (button "pushes" and how many "pushes") that are needed to do the 'important' things. Of course, you could put a "menu" label on the "enclosure" and that would solve that problem nicely. |
|
#5
|
|||
|
|||
|
I remember talking to you about it it.
I like it in the sense that it is auto scan, but the point I make is there is there also an Adaptation Memory Reset feature that you can do with the manul tool to Reset the Memory [ Adaptation ] . That is a feature that is needed when you change a part to get the ECU back to Zero Mean. That would require going back with an a 6 sec initiation AFTER all codes are clear and a Single Flash has verified codes are clear. You can not reset Adaptation Memory until After all codes are clear.
__________________
A Dalton |
|
#6
|
|||
|
|||
|
Quote:
I presently have it programmed like this. Once the read button is pressed a 2-second timer starts in the program. If the button is released before the 2 seconds elapse, then a "read 1" is executed. If the erase button is also pressed during the interval an "erase all" is executed. If the read button is not released and the 2 seconds elapse, then a "read all" is executed. Quote:
|
|
#7
|
|||
|
|||
|
<>
Possibly, but I doubt it. I have done many. Resets will not work except for the earlier '93 HFM. Anything later has a definate different time hold for initiation between clear and reset. Key cycling is also different . That would be nice and make the tool worth the added electronics, but not really needed. Good Job.
__________________
A Dalton |
|
#8
|
|||
|
|||
|
That being the case, then a program modification will do the trick. The erase button can be made to act exactly as the button of the "homebrew" tool. If the erase is held for longer than 1 second, then the 7-second pulse is canceled and the button gives manual control of the diagnostic socket to the user. In this case the diagnostic socket is grounded for as long as the erase button is pressed.
|
|
#9
|
|||
|
|||
|
Looks good! I think you might want to raise the current limit resistors a bit. I think you might be exceeding the total port current spec of 90mA or the total device current spec of 95mA. That might be why the "0" appears dimmer than the "1".
__________________
1998 C230 330,000 miles (currently dead of second failed EIS, yours will fail too, turning you into the dealer's personal human cash machine) 1988 F150 144,000 miles (leaks all the colors of the rainbow) Previous stars: 1981 Brava 210,000 miles, 1978 128 150,000 miles, 1977 B200 Van 175,000 miles, 1972 Vega (great, if rusty, car), 1972 Celica, 1986.5 Supra |
|
#10
|
||||
|
||||
|
The 150 ohm resistors rated at Logic "1" (> 2.2V) or Logic "0" (< 0.8) is 25 ma max sink or source, so the resistors appear ok.
The only interface to the outside world is the FET and it can take the current/voltage. Last edited by JimF; 08-22-2008 at 09:12 PM. |
|
#11
|
|||
|
|||
|
It is dimmer! Though somehow the camera exaggerated it. I think the reason for this is that the current for the right-digit is switched by an N-type MOSFET with a drain to source voltage of .1 volts, while the left-digit is switched by a P-type with a d-s voltage of over 2 volts, so the segments of the right digit are receiving considerably more current. The P device could be replaced with an N device so that the digits would both have the same brightness. This would require an additional transistor and resistor to invert the signal driving the replacement N.
|
|
#12
|
|||
|
|||
|
OK. I never saw a p-ch used as a sinking device. So it is seeing a gate voltage of something like -2.8, and is not turning on all the way so you're getting the excessive drop across it. Too bad you are out of IO pins. You could combine the two switches onto one analog pin and free up a pin. Then use 2 n-ch. But the blinking light is what most people will want!
__________________
1998 C230 330,000 miles (currently dead of second failed EIS, yours will fail too, turning you into the dealer's personal human cash machine) 1988 F150 144,000 miles (leaks all the colors of the rainbow) Previous stars: 1981 Brava 210,000 miles, 1978 128 150,000 miles, 1977 B200 Van 175,000 miles, 1972 Vega (great, if rusty, car), 1972 Celica, 1986.5 Supra |
|
#13
|
|||
|
|||
|
Quote:
The other day I connected the circuit to my 300SL to read codes from the top controller. It was nice to be able to short an input, walk away, and return several minutes later to find all the codes read. In this case it found 11, 20, and two others above 20. It was nice to be relieved of the tedium of counting all of those pulses. And of course erasing them all was equally simple -- short two inputs and walk away. That's when I concluded this circuit was worth building and offering to the forum. |
|
#14
|
|||
|
|||
|
That technique is actually used in cars quite a bit. It is used for steering wheel switches so only one wire is needed for 3 switches for example. They make a multi tap divider out of 4 resistor so each switch sends a different voltage. The rear window switch in the door of my C230 uses this system to detect rev, off, 1/2 fwd and fwd using only 1 wire to the window controller.
__________________
1998 C230 330,000 miles (currently dead of second failed EIS, yours will fail too, turning you into the dealer's personal human cash machine) 1988 F150 144,000 miles (leaks all the colors of the rainbow) Previous stars: 1981 Brava 210,000 miles, 1978 128 150,000 miles, 1977 B200 Van 175,000 miles, 1972 Vega (great, if rusty, car), 1972 Celica, 1986.5 Supra |
|
#15
|
|||
|
|||
|
I just realized I can't wire both buttons to a single pin. I would have 10 outputs and 2 analog inputs, but one pin of the 16F684 has to be a digital input (I'm need an analog input to sense the pulses). But I've decided to increase the current limiting resistors as suggested and have set them to 220 ohms.
|
![]() |
| Bookmarks |
|
|