Open source OBD-II Adapter

Automotive diagnostics have come a long way since the “idiot lights” of the 1980s. The current version of the on-board diagnostics (OBD) protocol provides real time data as well as fault diagnostics, thanks to the numerous sensors connected to the data network in the modern vehicle. While the hardware interface is fairly standardized now, manufacturers use one of several different standards to encode the data. [Alex Sidorenko] has built an open source OBD-II Adapter which provides a serial interface using the ELM327 command set and supports all OBD-II standards.

The hardware is built around the LPC1517 Cortex-M3 microprocessor and can accept a couple of different versions. Here’s the PDF schematic, and a set of Gerber files (ZIP archive) for the PCB layout, if you’d like to dig in to it’s internals. The MC33660 ISO K Line Serial Link Interface device is used to provide bi-directional half-duplex communication interface with the micro-controller. Also included is the TJF1051, a high-speed CAN transceiver that provides an interface between the micro controller and the physical two-wire CAN lines on the ODB-II connector. The serial output from the adapter board is connected to a computer using a serial to USB adapter.

The software is written in C++ for the LPCXpresso IDE – a GNU tool chain for ARM Cortex-M processors, but can also be compiled using a couple of other toolchains. He’s got instructions if you’d like to build the firmware from source, or if you’d like to program the adapter via Flash Magic.

We featured [Alex]’s inexpensive PIC based ODB-II interface way back in 2007, so he’s been working on this for a while and has a good grip on what he’s doing.

45 thoughts on “Open source OBD-II Adapter

      1. You might want to look at what’s available there. Most of them are just fit into the OBD-II connector nowadays (and only cost something like $5-10) with Bluetooth connectivity.
        Of course, a lot of those use counterfeit chips, so there’s that.

    1. The cheap ebay scanners don’t work on pre-ODB II cars or imports. Some either don’t support ODB-II or have much better support using proprietary protocols. Old Subarus use SSM, Volkwagon used VAG protocol. An open source adapter and application allows you to add support for whatever is needed.

    2. Build it your self so that you know for sure it’s not going to fry your ECU because it’s badly built? (although if I built it, it probably would)
      Many horror stories on youTube showing all sorts of bad stuff coming out of china.

  1. I’m confused… Is this better than the ELM327? The ELM327 has been around for a very long time now and the price for an ELM based scanner was down to about 10 bucks last I checked…

  2. the problem is fake elm 327 and the good ones, when you check HW revisions it doesnt match the official ELM products
    I had a elm327 copy and it worked badly a certain baud rates, bought an original chip from elm, and problems solved, you have to be careful on Ex: Ebay Aliexpress etc …

    1. There seems to be a lot of bad elm 327’s. I bought one from a (from an automotive webshop, not ebay) that just gave me endless problems. Bought a ODBLink later, works flawlessly, but cost $80 instead of $15.

  3. Quick question for the pros – are ABS brakes diagnostics/exercising (activating the ABS system to purge trapped air) part of the OBD-II protocol or is it manufacturer specific (ie top secret unless you cozy up to Ford/Chevy/etc with a check)?

    1. ABS is not covered under the compulsory information that vehicle manufacturers have to provide by law so the answer to that is no.

      It has been an uphill struggle with manufacturers to force them to release the engine diagnostics and real time data information and, for now, that is where it stops.

      An open source OBD will allow people that are brave enough to extract more and hopefully that will all be collected somewhere so that eventually there will be something equivalent to the X431 Launch that does a reasonable job on most cars. A perfect job on all cars is about as likely as viable cold fusion.

      1. I think this is an important point that ties back in with the others about this vs an elm, even an ebay elm. I think the most common problem you come up against is how compatible it is with your car, ie how much is proprietary and how much is part of standards, which this tool itself wont help you with. But if you have or can work out the non standard protocol data then this tool would be good.

        Id be interested to know what the appx. parts cost of this would be, if anyone has calculated it ?

      2. This is a good point, its more about how compatible your software is with your car than your adapter, with most problem ive had being related to proprietary protocols rather than if my elm adapter is genuine or not… This adapter itself wont help with that, but it would if you had the details or could work it out.

        Id be interested to know what the parts cost of this is if anyone has/does work it out ?

      3. Ford has the OpenXC platform ( http://openxcplatform.com/ ) for reading stuff, but it also is really limited. The point being that you could put the codes from any vehicle on the reader, but even the Ford data is limited.

        I happen to have couple of Chipkits with the network (includes 2 CAN interfaces) shield, so i was thinking of trying it, but since it’s for Fords only currently (no other car manufacturer or anyone else have contributed any codes) and i don’t have a Ford, it’s kind of useless to me.

        I do wish it would take off.

    2. Someone just needs to snoop the command sequence that the expensive tools use to do this. The bus isn’t authenticated, to my knowledge.

      There exists at least one site which collects information on mfg-specific OBD-II commands.

      1. yes thats right and what i want to do, as i have a knock off factory citroen adapter which works fine and does everything but it is reliant on a windows box and its software (Lexia) , so this stop me from accessing the data and doing what with it i want.

        1. Is it using the serial interface (even bluetooth/usb-serial like pretty much everyone)?
          I just sniffed the serial communications with “Free Serial Port Monitor” Request view when building drive computer for my OBD-I car.

          And as it is just serial data, I used virtualbox to run windows XP IE6 test image from MS with the serial adapter on linux host.

          1. No i dont believe it is, its an Actia device, i have sniffed the usb, and did get a basic helo working with a between a due in host mode and the device, but it was going to be a long haul to do anything with it.

  4. I second what @Alan Hightower says.

    The next rev should have the ability to repurpose any pin that isn’t 4, 5 and 16 (grounds and +VE) to any method of communication. That to me would be a true open source OBD-II adapter that I would “do a Fry” and yell “Shut up and take my money!”

    Soooo many manufacturers have used alternative pins for obscurity over the years and some even use the same pin. Take Pin 1 for example, GM use this for all their 33 kbit (and occasionally 83 kbit) single wire CAN data and is a common place for security negotiation to occur, whereas Mitsubishi have used it for MUT-II / MUT-III diagnostics and ECU reflashing.

    Alex Sidorenko, if you ever happen to read this, please 1-UP this for Mk2 and make it truly something special by implementing any pin / any bus / any protocol. I’m confident you could achieve this with a couple of MCP2515 IC’s, a couple of NCV7356 IC’s and a handful of MUX8532 IC’s to deal with the switching.

    I realise this may not be the cheapest solution, but there are so few products out there that offer this versatility that I think you could be onto a winner.

  5. Nice build, I can see this being useful when combined in other projects. The biggest problem I have found with this interface is the car companies not releasing all their fault codes. But that’s a software issue.

  6. Elm327 costs less than 10.00 on Amazon, and an app called Torque( Android) is free or 5.95 for the deluxe version.
    Torque when paired with the ELM will give you every bit of data tour car puts out including fault codes. In addition you can reset the red fault code light. You can also use it (your smart phone) as a head up display.

    1. Plus the datarate is shite for anything more than an a cool thing to show your friends and quality is questionable.

      Stop boasting those crap ELM tools, people. CAN networks offer a lot more than most think, but you can’t access those extra things with a dongle.
      Apart from standardized messages (rpm, speed, faults) there is a ton of traffic that is manf/model specific and requires special tools and custom code.

  7. I’ve always wondered why there seems to be such a lack of car hacking projects. OBD-II has been around for 20 years, and this is the first open-source alternative to the ELM327 I remember seeing. Even commercial OBD-II tools are expensive and limited.

    Is it lack of interest? Are hackers afraid of bankrupting themselves by potentially damaging their overpriced car electronics? The latter reason is probably the main reason I haven’t tried it myself.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s