Page 1 of 2 12 LastLast
Results 1 to 25 of 37

Thread: USB ADS Interface Working!

  1. #1
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i

    Cool Solution for USB and 64-BIT ADS Interface

    Hi,
    I figured out two ways to make ADS interfaces work on modern machines:

    1. USB Solution with EdiabasLib
    EdiabasLib (Link) is a from scratch reimplementation for EDIABAS. I has a wrapper for the api32.dll, so it can simply be replaced. I have tested this with the a free-ADS interface, an RS232 to USB FTDI Serial adapter with INPA on an E36 cluster and it works as it should. It does not work on an E34 cluster however, use Solution #2 if your ecu does not work with this method either.

    How to install:
    • Click on the link and go to releases on the top, download the binaries zip
    • Go into C:/EDIABAS/bin and create a backup of the api32.dll
    • Go into the EdiabasLibConfigTool and copy the contents of the API32 folder into the bin folder
    • Open the EdiasbasLib.config file
    • Uncomment (Remove <!-- and -->) the first block
    • Change the interface to <add key="Interface" value="ADS"/>
    • Change <add key="AdsComPort" value="yourCOMPort"/> to whatever port your adapter uses
    • Done!

    The new dll does not use any of the default EDIABAS config files. To go back, simply rename the new api32.dll and use the old backup dll.

    I have tested this with Tool32 and INPA successfully. I have tried to code it with NCSExpert 4.0.1 but it throws an error that the VIN is incorrect. I have found that for E36 clusters, I have to remove the CAN cluster from E36SGFAM.DAT to make it work. No idea why this is necessary, but I can recode the cluster successfully.

    The disadvantage with this method is that while E36 clusters are accessible (which arent with OBD) I cannot connect to an E34 cluster with this method. I think this has to do with timing problems, the ADS driver is driving the pins directly (like an Arduino), which is why the DirectNT driver is necessary to allow this. So while some ecus dont seem to care, some others do.

    Software Installation: EDIABAS 7.3.0 and INPA 5.06 on Win 10 64-Bit.

    2. 64-Bit Solution
    This solution still requires a real RS232 port, but it allows to use an ADS interface on a 64-Bit machine! I have recompiled the driver for 64-Bit to make this work, the original driver source was actually created in 1997 by the german computer magazine ct. The source code can still be found on the internet. I used a 64-Bit alternative called GiveIO to recompile a working 64-Bit kernel driver.
    The original ads code is fixed to COM1 and a specific hardware address. Jarda has published a utility in a blog post (Link) to change them, which is often required on modern systems. The source and binaries (Release tab) for the 64 Bit driver are on GitHub: Link. I also included Jarda's utility in the download.
    There is still a problem however: EDIABAS 7.3.0 does not support ADS. Older Ediabas versions like 6.4.3 do, but the included INPA version 3.01 does not run on 64-Bit systems. So you need to mix EDIABAS 6.4.3 with INPA 5.06. Another hurdle is that windows requires drivers to be signed, which you need certificates for. Since I dont have these, you will have to tell Windows to ignore it.

    How to install:

    • Install the old BMW toolset with EDIABAS 6.4.3 first. Make a copy (rename) of the EDIABAS installation folder and then delete the rest.
    • Install the new BMW toolset with EDIABAS 7.3.0
    • Delete the new EDIABAS folder and use the old EDIABAS version
    • Click on the link and go to releases on the top, download the binaries zip
    • Paste the DirectNT.sys driver in Windows/System32/drivers
    • Open your RS232 port in the device manager and look under resouces. Note down the E/A region start, mine was EFC8 for example.
    • Open Jarda's utility (included in the github download) and patch the ADS driver with the new E/A region (and COM port if you like)
    • Tell Windows to ignore unsigned drivers: Open a cmd with admin privileges and enter bcdedit.exe /set nointegritychecks on
    • Reboot. It should work now! You can open a cmd and type sc query directnt to see if its running. You should see the two black dots and be able to connect.


    If somebody knows how to sign the driver please let me know. I dont have much experience with kernel driver programming, use at your own risk! The only known issue I have found is that INPA sometimes freezes when you tab out and in again, but I can live with it.
    Last edited by 2JZ E36; 01-30-2022 at 01:27 PM.

  2. #2
    Join Date
    Jun 2010
    Location
    United Kingdom
    Posts
    145
    My Cars
    E87 120d M-Sport
    Quote Originally Posted by GeneralLeex View Post
    ...even though I select only one ECU to code, it tries to get the ZCS from all ecus.
    NCS doesn't try and read the ZCS from every ECU, just a select few. If you open the file E36ZST.000 with Notepad++ (or something similar), you'll see a list of the ECUs and either a 0 or a 1 next to them. Anything marked with a 1, holds the ZCS in its memory.

  3. #3
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Quote Originally Posted by FAL View Post
    NCS doesn't try and read the ZCS from every ECU, just a select few. If you open the file E36ZST.000 with Notepad++ (or something similar), you'll see a list of the ECUs and either a 0 or a 1 next to them. Anything marked with a 1, holds the ZCS in its memory.
    You are correct, what I meant is that it tries to get the ZCS from every ECU on that list, even though you only chose one. I have experimented more with this and it doesnt seem to be related to the replaced dll at all. I have tried the new dll on an old XP installation with NCS 3.x and it works perfectly fine. So the error is only related to NCS 4.1, not the new dll. After I typed in the ZCS by hand in NCS 4.1 it works just like it should. This is only a problem on older C25 clusters (and probably older ECUs in general), on newer Can Bus clusters it works on 4.1. On the older cluster NCS 4.1 complains that the VIN is incorrect, so there seems to be some differences in how NCS 4.1 validates the VIN compared to NCS 3.x ...?

    You can see how it tried to pull the ZCS from the EWS and CAN KMB unit, even though I selected the standard KMB only:
    Last edited by 2JZ E36; 12-13-2019 at 11:32 AM.

  4. #4
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Okay, I found a workaround: I removed the CAN Cluster from E36SGFAM.DAT and now the older clusters work too! The only small error that comes up now is that NCS throws an error after coding when the ecu resets that it cant connect (duh). But the coding works and sticks. So everything works now! USB ADS on Win10 64-Bit

  5. #5
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    That is pretty amazing.

    For years I have tried different things, now I finally have an ultraportable MicroPC with serial port, and now there is a USB solution. Lol.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  6. #6
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    Haven't tried on the car yet, but starting INPA, does not start Ediabas anymore. Is hat corretc?

    And would this work with a usb-to-obd-to-20pin cabe?
    Last edited by MParallel; 12-20-2019 at 04:11 PM.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  7. #7
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Quote Originally Posted by MParallel View Post
    Haven't tried on the car yet, but starting INPA, does not start Ediabas anymore. Is hat corretc?
    Yes, thats correct. The VBATT and IGN dots dont work anymore, but you should be able to connect.

    Quote Originally Posted by MParallel View Post
    And would this work with a usb-to-obd-to-20pin cabe?
    I dont think such a cable will work for ADS, but you can try

  8. #8
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    So what cable do you use if it’s not a serial ads cable?
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  9. #9
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    I use an FTDI USB to RS232 cable to the free ADS Interface. With obd cable you mean the k line cables with an obd port right? I have tried a chinese one without success...

  10. #10
    Join Date
    Mar 2019
    Location
    Adelaide
    Posts
    14
    My Cars
    1997 328i vert
    Quote Originally Posted by GeneralLeex View Post
    I use an FTDI USB to RS232 cable to the free ADS Interface. With obd cable you mean the k line cables with an obd port right? I have tried a chinese one without success...
    Are you talking about the Chinese one from InnovOBD Technology (their online shop is called one-stop or something)?

  11. #11
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    Quote Originally Posted by GeneralLeex View Post
    I use an FTDI USB to RS232 cable to the free ADS Interface. With obd cable you mean the k line cables with an obd port right? I have tried a chinese one without success...
    Ah got it.

    Waiting for my TinyADS interface as we speak.

    Still hoping to get the serial working, as the whole point is no extra adapter cables.

    I must be close as some ads only modules do communicate.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  12. #12
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Quote Originally Posted by pumpkin eater View Post
    Are you talking about the Chinese one from InnovOBD Technology (their online shop is called one-stop or something)?
    I dont know the brand sorry. Got it off eBay years ago, but its not the one you mentioned.

    Quote Originally Posted by MParallel View Post
    Ah got it.

    Waiting for my TinyADS interface as we speak.

    Still hoping to get the serial working, as the whole point is no extra adapter cables.

    I must be close as some ads only modules do communicate.
    What cable are you using? Some modules or all modules?

  13. #13
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    Using Gert’s ADS cable, switchable to OBD and service reset. Loaned from a friend.

    Should read all modules in ADS mode, which it does on the native installed 32 bit OS, but running it in VM WinXP SP3 (because my other laptop is uefi64 and can’t install a native 32bit OS (or I don’t know, bios has a Legacy boot option, but doesn’t see my bootable usb/sd cars).

    So on both, running Win XP in VM, ADS, two black dots in Inpa. Can read remote controle module, can read gauge cluster (both ads only) but on the DME or ZKE it can’t communicate.

    So something with the serial port connection to the VM is acting funny.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  14. #14
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Quote Originally Posted by MParallel View Post
    Using Gert’s ADS cable, switchable to OBD and service reset. Loaned from a friend.

    Should read all modules in ADS mode, which it does on the native installed 32 bit OS, but running it in VM WinXP SP3 (because my other laptop is uefi64 and can’t install a native 32bit OS (or I don’t know, bios has a Legacy boot option, but doesn’t see my bootable usb/sd cars).

    So on both, running Win XP in VM, ADS, two black dots in Inpa. Can read remote controle module, can read gauge cluster (both ads only) but on the DME or ZKE it can’t communicate.

    So something with the serial port connection to the VM is acting funny.
    Does this cable work with the new library I linked?

  15. #15
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    Haven’t had the time/opportunity to test it yet.

    Still hope to get the original setup working though.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  16. #16
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    If somebody else has gotten this working it might be useful to start a list with proven to be working setups/cables

  17. #17
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    Not tested yet. But still confused why you think my usb to obd to 20-pin wouldn’t work, but your usb to rs232 to 20-pin would. And then in config file you use ads not usb, which is the connector you start with?

    I’m also wondering, I once bought a usb-to-20 pin Do It Auto, which they no longer sell. Advertized as ads compatible, which I doubted, but had to test. Also came with a modified ads32.dll. Well long story short: didn’t work, worse yet, not communicating with any module.

    Would be funny if it would with this ediabaslib variant.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  18. #18
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Quote Originally Posted by MParallel View Post
    Not tested yet. But still confused why you think my usb to obd to 20-pin wouldn’t work, but your usb to rs232 to 20-pin would. And then in config file you use ads not usb, which is the connector you start with?

    I’m also wondering, I once bought a usb-to-20 pin Do It Auto, which they no longer sell. Advertized as ads compatible, which I doubted, but had to test. Also came with a modified ads32.dll. Well long story short: didn’t work, worse yet, not communicating with any module.

    Would be funny if it would with this ediabaslib variant.
    The reason is works is because the RS232 USB cable has a driver that makes it seem like a normal serial port. To the program there is no difference if you use an RS232 cable or an actual serial port (for the most part). The reason why this doesnt work with the original .dll is because BMW adresses the serial chip directly (around the driver pretty much), which doesnt work because its actually USB. I suspect it wont work with an obd cable because it expects an RS232 interface, but you never know until you try it

    If the creator of the tinyADS interface wanted to, he could put an RS232 to USB converter chip on his board. Then it would be a true USB interface without an adapter cable...

    Edit: I have heard about the Do-it-Auto Interface, but it seems like you werent the only one having troubles with it...
    Last edited by 2JZ E36; 01-12-2020 at 05:33 AM.

  19. #19
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    You mean the FTDI chip?

    My usb to obd uses that chipset and drivers. So usb to obd (to 20 pin) should be no different than usb to rs232 to obd/20 pin.

    But yes, just need to test all variations, including the USB lines of the config file.

    Unless my tinyads will work with the true setup. Still a mystery why through a VM data seems to get lost or interrupted through the serial port.
    Last edited by MParallel; 01-12-2020 at 02:18 PM.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  20. #20
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    Quote Originally Posted by GeneralLeex View Post
    ...The reason why this doesnt work with the original .dll is because BMW adresses the serial chip directly (around the driver pretty much), which doesnt work because its actually USB. I suspect it wont work with an obd cable because it expects an RS232 interface, but you never know until you try it ...
    Still trying to understand this. I thought this new method was to make it work without an RS232 interface, as that is the main problem with ADS. But you say it still expects an RS232 interface. Unless I am misunderstanding you.

    I finally received my ADS interface (OpenLab). So if I copy your ssetup, I will need a USB-to-RS232 adapter. Too funny as there is an RS232 port on the pc I am using (but can't connect to most modules, as I need a VM 32-bit OS. Can connect to some ADS only modules, but not for example, the DME, which is really weird). I have VM setup to directly access the host's serial port.

    There are many different USB-to-serial interfaces. Not sure if they all come wit the FTDI chipset.


    I did some quick testing with my USB-OBD-20pin interface. Editting the config files did give different reesults. With ADS set as the interface and com-port set to the one of the USB port, I did get two black dots in INPA, but could not connect with any module.

    Maybe it doesn't work with all version of EDIABAS. I was testing with 6.4.7.
    Last edited by MParallel; 01-26-2020 at 05:57 PM.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



  21. #21
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Quote Originally Posted by MParallel View Post
    Still trying to understand this. I thought this new method was to make it work without an RS232 interface, as that is the main problem with ADS. But you say it still expects an RS232 interface. Unless I am misunderstanding you.
    It thinks it is talking to a real RS232 interface, when in reality it is talking to an adapter. I dont know if that explanation is actually accurate, but thats how I explain it to myself A real RS232 interface is NOT needed.

    Quote Originally Posted by MParallel View Post
    There are many different USB-to-serial interfaces. Not sure if they all come wit the FTDI chipset.
    It doesnt mean that other chipsets dont work, I just used an FTDI chip and it works correctly.


    Quote Originally Posted by MParallel View Post
    I did some quick testing with my USB-OBD-20pin interface. Editting the config files did give different reesults. With ADS set as the interface and com-port set to the one of the USB port, I did get two black dots in INPA, but could not connect with any module.

    Maybe it doesn't work with all version of EDIABAS. I was testing with 6.4.7.
    Did you try the OpenLab ADS Interface? Or are you still missing the RS232 adapter?

    Personally I dont really care if an adapter is needed as long as it works. My main problem was that I had to carry a superold heavy laptop around just for the serial port on it. Now I can just use my daily ultrabook for the ADS stuff.

  22. #22
    Join Date
    Sep 2017
    Location
    Hungary
    Posts
    100
    My Cars
    1997 BMW E36 320i
    hi there!

    I've some quick questions for this setup...

    so i built my own ADS interface about a 1.5 year ago, and it's working fine. i wondering, i'll like to convert this to USB because my laptop doesn't have a real serial port, just USB.

    so what now? which cable do i need to convert serial to usb for my laptop?

    i built this interface:

    https://www.bimmerforums.com/forum/s...terface/page21

    Post #508.

    Thanks a lot!

  23. #23
    Join Date
    Feb 2007
    Location
    British Columbia, Canada
    Posts
    6
    My Cars
    1995 325i
    @2JZ E36, Thanks for sharing this. Are you able to also share EDIABAS/INPA installer you used. My current installation files, doesn't seem to be working following your instruction. Also using Win10 64bit. Regards.

  24. #24
    Join Date
    May 2017
    Location
    Germany
    Posts
    148
    My Cars
    1995 E36 328i
    Quote Originally Posted by maxwatt View Post
    @2JZ E36, Thanks for sharing this. Are you able to also share EDIABAS/INPA installer you used. My current installation files, doesn't seem to be working following your instruction. Also using Win10 64bit. Regards.
    I use EDIABAS 7.3.0 und INPA 5.06, which should work if you follow the instructions closely. If it doesnt work you also have to make sure you have NET Framework installed.

  25. #25
    Join Date
    May 2006
    Location
    The Netherlands
    Posts
    16,449
    My Cars
    DE-spec E36 328i/M3 cab
    I have to get back to this project as I haven't had the time nor need for working ADS. But still would be cool.

    I did put lots of time in getting my ADS working with an ADS interface AND native RS232 port, which works fine on my old big heavy laptop, but not on my Win10 64-bit host computer, with Win XP/Win7 32-bit guest OS. Serial port is configured correctly and I am able to acces two ADS-only module, but none of the others. I tried every baud speed and the other 10 million config settings, but none seem to work. I did notice in my EFI (bios) checking the port settings, it reverts back to Baud 11500 whereas normally 9600 is used. I wonder if under water it uses 11500 while 9600 is needed and this cause timing problems in the data transfering, that only two modules don't have a problem with.
    Just sucks. Normally I would have simply ditched the 64-bit OS and just install a 32-bit OS, but the fact that the bios is of the (U)EFI variant, this prevents installing anything but 64-bit OS's. Even though it has a setting for legacy Bios in its config screens, setting it to this doesn't make it recognise any bootable 32-bit OS's.


    Also after triple reading everything above, the whole USB interface doesn't make any sense. So it works with USB as tested by you (2JZ E36) but are still using an ADS interface, but with a USB-ADS adapter in between. That seems like it still needs the ADS hardware on the ADS side of the adapter.
    If this Github setup works with USB, a direct USB-to-20 pin connector or USB-ODB -> OBD->20-pin connector cable should work too. You would think.

    Now it sounds like a hybrid solution. You still need an actual ADS cable, but instead of using it directly on an RS232 port, it uses an USB port, with adapter cable in between.
    ‘98 BMW M3 3.2 SMG Cabrio • Alpinweiß III auf Schwarz • Deutschland-ausführung
    IG:
    https://www.instagram.com/iflok/



Page 1 of 2 12 LastLast

Similar Threads

  1. Will K+DCAN USB Interface Work on An Audi A5 Vagcom
    By nightbreaker in forum Diagnostic Software
    Replies: 5
    Last Post: 01-21-2017, 01:11 AM
  2. USB Serial adapter ADS interface
    By fahdyehia628 in forum Diagnostic Software
    Replies: 3
    Last Post: 08-25-2013, 02:32 AM
  3. Will this ADS interface work with DIS?
    By flyfishvt in forum Diagnostic Software
    Replies: 2
    Last Post: 07-05-2012, 10:15 PM
  4. Confirmation that EDIABAS DOES work with USB - Serial Interface
    By flipstar in forum Diagnostic Software
    Replies: 17
    Last Post: 01-25-2011, 03:58 PM
  5. ADS interface partially working??
    By toyotahachiroku in forum Diagnostic Software
    Replies: 3
    Last Post: 11-16-2010, 10:11 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •