(for a design that has a few more features but isn't quite as easy to build, see Tiny ADS Interface)
If you have a serial connector, a handful of transistors, an assortment of resistors, and a breadboard/perfboard to place them on, then you can build this ADS interface for use with INPA and whatnot. You should be able to buy the parts at a place like radio shack or sparkfun for a few dollars if you don't already have them.Originally Posted by benemorius
I found that this suited my needs and budget much better than any of the premade options. I imagine others might benefit from it as well, so I'm posting the schematic. I don't expect I'll be doing a full writeup on it, but I do hope some other enthusiastic soul out there takes it and does so. If you can work on your car I think you can build one of these.
To anyone who does try it out, I'd be much obliged to hear about your results. I've been using this interface for a while now, but there may be an error in the schematic I don't know about or improvements that should be made.
Here's a list of the parts:
8x 2n3904 NPN switching transistor
1x 2n3906 PNP switching transistor
7x 2.2 kOhm resistor
2x 4.7 kOhm resistor
1x 47 kOhm resistor
2x 10 kOhm resistor
1x 20 kOhm resistor
1x 22 kOhm resistor
3x 1 kOhm resistor
Q1 2n3906
Q2 2n3904
Q3 2n3904
Q4 2n3904
Q5 2n3904
Q6 2n3904
Q7 2n3904
Q8 2n3904
Q9 2n3904
R1 2k2
R2 4k7
R3 47k
R4 10k
R5 20k
R6 22k
R7 2k2
R8 1k
R9 2k2
R10 2k2
R11 1k
R12 2k2
R13 2k2
R14 2k2
R15 1k
R16 10k
R17 4k7
Last edited by benemorius; 03-04-2013 at 05:33 PM.
That's pretty awesome. Did you design this? What BJTs did you use to build it?
This was one of the byproducts of the openOBC project. I designed it because we needed to snoop on the diagnostic communications to reverse engineer the protocols. I found all the existing interfaces to be needlessly complicated and expensive as they all seem to be based on BMW's ancient original design.
I used 2n3904/6, but any common switching transistors will do. I believe across the pond the common choices are bc548 and 558.
Very cool, man. I'll breadboard this up probably tonight or tomorrow and let you know how it goes. I went to Fry's earlier to pick up some transistors and their selection is ok but they only have like 1-2 of everything in the transistor section and I didn't feel like mail ordering. Probably going to end up with a mix of TO-220 TO-18 and TO-92 packages lol.
Blam. Just haven't wired the 20 pin up yet.
Well, I hooked it up today and it doesn't seem to work. My 20 pin doesn't have pin 17 connected, so I left that off. When I open up INPA neither the battery or ignition lights get lit and in DIS everything says it couldn't reach the control module. At first it would say that communication with modic was interrupted before I could even get to try a test, but after checking connections that seemed to go away. Do I need some certain settings on the serial port maybe? I already have an ADS interface that works but I wanted to mess with this one for fun.
I'm sorry to hear that. Something must be rather wrong if the battery and ignition indicators don't come on in inpa. All you have to do to get them on is apply battery voltage to RI on the serial port, and this should be accomplished by a wire on your board going straight from RI to +12v. None of the actual guts of the circuit even come in to play for that. Both indicators come on when you apply power to RI, and the ignition one goes off if you also power DSR.
If you didn't already have inpa working I'd say it isn't set up properly. If it is, then something must be amiss with the circuit. I wasn't highly surprised at the first report being less than positive, but to hear that the indicators don't come on is very strange indeed. Is there any chance that your power connection is flaky or that the serial port ground is not common with the vehicle ground? I've checked the schematic (again and again, of course) and I don't see any problems - certainly nothing of this magnitude. If inpa works with any other ads interface, then it should work with this.
Pin 17 is only present on some vehicles. I don't have one either.
Haha I think I figured it out. I tried my other ADS interface and it didn't work either. Turns out I accidentally put back in a generic serial port header instead of the stupid proprietary one for my motherboard. Instead of going 1-2-3-4-5-6-7-8-9 it went 1-6-2-7-3-8-4-9-5 haha. Now it finds battery and ignition correctly, but when I try to read modules with it I get strange results. When I try to read the DME with DIS, it actually pulls up the information screen now, but it fills it with weird numbers. Chassis# populates with 820W820W820W82 repeating, and programming control # and type application # both fill with 32780. All the other fields start out starred and eventually just go blank. After like 10 seconds, Chassis# and a few other eventually all turn to 0s. Anything in particular you can think to check? I'll probably rebuild it tomorrow just to make sure, but I've checked a bunch of times and never found anything wrong on the breadboard at least.
Well that's much better then. It must be mostly working I think or else the error checking would throw you back out long before it tried to display anything. I can't say I've seen that happen in my experience, but I'd wager it must be trouble in the receive (top half of the schematic) portion. Q2 and Q3 form a schmitt trigger for receiving data from the vehicle bus. If there is any part of the circuit that's sensitive to part variation, this would be it. Probably you should use a pair of identical transistors here, as well as the exact resistor values shown. All the other resistors can be varied a little or a lot, but the ones around Q2 and Q3 are all interdependent and can't vary much.
Yep, I ended up finding 8 of the same BJTs for the NPNs, and even the PNP is supposed to be complementary despite being in a different package. I also used the same resistor values even with some nice .5W 2% resistors lol. I will double check the section you mentioned though. What serial port settings are you using? I just want to make sure that's not doing something weird. Thanks for all the help.
Ahhh how embarassing. I accidentally had the collector on Q7 hooked up to the collector of Q6 instead of its base. Everything else seemed to be good though. I'm guessing this is probably what is wrong. I'll try hooking it up again tomorrow and hopefully send some real data through it!
Last edited by Lowclock; 05-15-2011 at 02:17 AM.
My serial port settings match these. I've never actually had to touch them.
I rebuilt it again today, testing each connection and component as I went, and I ended up with the same weird results again. Tomorrow when I'm at school I'll try it with some different transistors and a better breadboard because it obviously doesn't like me the way it is now!
I replaced the transistors with some more reasonably sized ones and it works great now!
For those of us who don't have an electrical engineering background, could we get a parts list? =)
Last edited by Smitherines; 05-19-2011 at 08:01 PM.
2001 BMW 750iL Black on Black fully loaded
1997 BMW M3/4/6 - Awaiting turbo
2001 Audi S4 - VR6 turbo swap in progress
2016 ZX14R
1993 R32 GTR V-Spec
Your parts list says 1n3906, should start with 2 I think. Be careful if you go to get these at RadioShack. There are a ton of mislabeled bags of NPN transistors which are supposed to contain 5 each of 3 different NPNs, but they are full of PNPs instead, so make sure you check what you're buying. They're cheap enough to just buy two bags to get 8 2n3904s, but you could probably use the 2222s or 4401s instead just as well.
I purchased 1/4 watt 5% resistor, did I need 1/2 watts?
2001 BMW 750iL Black on Black fully loaded
1997 BMW M3/4/6 - Awaiting turbo
2001 Audi S4 - VR6 turbo swap in progress
2016 ZX14R
1993 R32 GTR V-Spec
Hy can i use this interface for synchronization EWS-DME ?
I''m going to build that interfeace but I would like to know opinion how it works with cars using ADS and without ADS.
So request to people who did it to share information about that simple ADS
Regards
That's pretty cool! Would this work for an OBDII based car? (Substituting the appropriate OBDII pins if the 20-pin isn't present?)
Bookmarks