Frequently Asked Questions
Welcome to the OBD Frequently Asked Questions page. Click on one of the questions in the list below to go straight to the answer.
- What software is included in the OBD Experts Protocol Stack?
- Can I modify/tailor the OBD II Protocol Stack once it has been purchased?
- What support comes with the OBD II Protocol Stack?
- How do I determine which OBD II protocol to use on a particular vehicle?
- Will OBD Experts modify their existing stack for specific vehicles?
- What additional hardware is required to communicate with a vehicle using OBD II?
- What processors are supported by your software?
- What support comes with your software, do you provide updates?
- Do you license your software on a per-unit basis?
- Do you support non-OBD II diagnostic protocols such as J1939 and J1708?
- What is the difference between OBD II and CANbus?
- Can I use your firmware to read the door lock status and unlock the car doors?
Don't see your question? E-mail us for an answer.
Q: What software is included in the OBD Experts Protocol Stack?
A: When you purchase the complete OBD II Protocol Stack you will receive the source code for all the OBD II protocols. The source files are written in C and organised with a layer of abstraction to the hardware specific code so that porting of the code to alternative hardware platforms is kept simple. Currently the design is built and tested using an STM32F103 high density ARM Cortex chip so all the actual calls to this chip and the STM32's library code are provided too. On top of the stack sits a simple API that attempts to connect to one of the protocols and if successful loops through a file requesting the desired modes and PIDs from the ECU(s). Watch a video introduction to the OBD Experts OBD II Protocol Stack here - Watch Video
Q: Can I modify/tailor the OBD II Protocol Stack once it has been purchased?
A: When you purchase the OBD II Protocol Stack you will be required to sign an agreement stating you will not sell it on to any 3rd party, however, you will be able to use it freely - including all modifications - in your company products.
Q: What support comes with the OBD II Protocol Stack?
A: You will not only receive the source code (written entirely in C) but you will also receive comprehensive documentation on how to get started with your development. You also get direct access to our engineers by phone and email as well as entry to our on-line support page.
Q: How do I determine which OBD II protocol to use on a particular vehicle?
A: OBD II specifies 5 different electrical protocols which can be used to access OBD II information. Automotive manufacturers are required to implement one of the mandated OBD II protocols. CAN is becoming the mandated OBD II protocol for all new vehicles. In the near future all vehicles will use this protocol to communicate.
At the moment, however, different manufacturers favour different protocols. Table 1, below, describes which OBD II protocol is favoured by which manufacturers. Please note that this list is not exhaustive and that there are always exceptions to these general rules.
|OBD Protocol||Vehicle Manufacturer|
|ISO 9141-2/KWP2000-4||Many Asian and European vehicles including Alfa Romeo, Audi, BMW, Citroen, Fiat, Honda, Hyundai, Jeep post-2004, Kia, Land Rover, Mazda, Mercedes, Mitsubishi, Nissan, Peugeot, Renault, Saab, Skoda, Subaru, Toyota, Vauxhall, Volkswagen post-2001, Volvo pre-2004.|
|J1850 PWM||Ford pre-2003. Jaguar pre-2003. Mazda pre-2004.|
|J1850 VPW||General Motors, Chrysler|
|ISO 15765-4 (CAN)||Ford, Mazda, Volvo since 2004.|
Table 1 - OBD II protocols by vehicle manufacturer
One way to tell which OBD II protocol is implemented by a vehicle is by examining the J1962 connector. This connector is often located under the steering wheel on the driver's side of the vehicle. A J1962 connector is shown in Figure 1, below.
Figure 1 - J1962 connector
The numbers in Figure 1 represent the 16 pins of the J1962 connector. The following J1962 connections are dependent on the protocol(s) in use by the vehicle:
- Pin 2 and pin 10 are used for both J1850 (PWM or VPW) protocols
- Pin 7 is used for ISO 9141-2 and ISO 14230 (KWP2000) communications. Pin 7 is also known as the K-Line. Pin 15 is also known as the L-Line (may or may not be present for these protocols).
- Pin 6 and pin 14 are present for CAN (ISO 15765-4) protocol.
Pin 16 is Battery Voltage and Pins 4 & 5 are Ground. By checking which pins are implemented in a vehicle it may be possible to determine which OBD II protocol is in use.
Q: Will OBD Experts modify their existing stack for specific vehicles?
A: Yes. As part of our consultancy service we can provide you with a tailor made stack that is not only fully OBD II compliant, but can also communicate 'physically' to specific ECU's.
Q: What additional hardware is required to communicate with a vehicle using OBD II?
A: You cannot connect microprocessor outputs directly to the J1962 connector on a vehicle. You will require some simple external circuitry including:
- a CAN transceiver
- a voltage boost to 12V for the ISO/KWP lines (this must be weakly pulled up to 12V by a 510 ohm resistor)
- a variable voltage boost for J1850+ (5V for PWM, 7.5V for VPW)
- a boost to 5V for J1850- (this line should also be pulled up to 5V)
Q: What processors does are supported by your software?
A: The OBD Experts OBD II Protocol Stack has been built and tested for the following microprocessors:
If you are using a different processor then the OBD II Protocol Stack can be adapted using the easy to follow instructions provided. As all of our software comes with a support package we are happy to help you port the OBD II Protocol Stack onto your chosen processor.
Q: What support comes with your software, do you provide updates?
A: All of our licences come with off-site support. This is phone and email support for any question that your engineers may have about how the software works, porting, or even general questions about OBD II. There is also a support page on our website that you may access using a password. During your support period you will be notified of bug-fixes if any operational bugs are reported in the software by any of our other clients.
Q: Do you license your software on a per-unit basis?
A: The OBD II protocol stack is usually licensed for an initial fee and an on-going fixed monthly payment. The licence includes off-site support. We can also provide per-unit licenses on the source code on a case by case basis. Contact us for more information.
Q: Do you support non-OBD II diagnostic protocols such as J1939 and J1708?
A: We currently support J1939 truck protocol and J1708 is currently in development - contact us for more information.
Q: What is the difference between OBD II and CANbus?
A: OBD II and CANbus are not the same thing. OBD II is a standard that must be supported on all modern cars in order to retrieve diagnostic information. CANbus is one of the five electrical protocols over which the OBD II standard can be used. All North American cars since 2008 must support OBD II over CAN, however, it is not enough to just have a CAN bus connection to communicate with these vehicles - one must also implement the OBD II standard.
Q: Can I use your firmware to read the door lock status and unlock the car doors?
A: It depends. The OBD II standard does not have access to parameters such as door lock status; however, it is possible that this information can be read using one of the five electrical protocols used for OBD II. In theory, this means with just a small change to the OBD II source code you can read door lock status. In practice, however, parameters such as door locks, odometer, seat belts etc are kept secret by car manufacturers so in order to access this data you need proprietary information. In addition the information (parameter address, scaling, key etc) required to read this data can (and often is) different for every vehicle. So, in short, you can use our firmware to read the door lock status and unlock the car doors, but only if you possess the proprietary information required to do so.