Industry Standard
OBD II Source Code


OBD II data like VIN, Speed, RPM, and Fuel Level can make your Telematics product stand out from the crowd.


The Fuel Level can be a very lucrative parameter for car rental companies. It can also be used for tracking fleets and smart-phone based applications. Fuel level is supported on 52% of cars in North America manufactured after 1996 (86% of cars since 2010).


The Vehicle Identification Number (VIN) is a unique number assigned to every car. The VIN can be decoded to determine vehicle make, model, year, engine size, and more. VIN is supported on 91% of cars in North America manufactured after 1996 (99% of cars since 2010).

Vehicle Speed

Vehicle speed is one of the most fundamental pieces of OBD II data for most telematics suppliers. It can be used to monitor driving and create a running odometer. Speed is supported on all cars in North America manufactured after 1996.

Engine RPM

The Engine revolutions per minute can be used to determine if the car is running and to monitor driving behavior. When combined with the vehicle speed, RPM can detect if a vehicle has been left idling. RPM is supported on all cars in North America manufactured after 1996.


The Malfunction Indicator Lamp (MIL) is illuminated upon detection of a problem with the engine. If the MIL is illuminated this means that there is an error number, called a Diagnostic Trouble Code, stored in the on-board engine computer. Use OBD II to read the DTC code and diagnose the problem. MIL status and DTCs are supported on all cars in North America manufactured after 1996.

Engine Coolant Temperature

This is one of many useful OBD II parameters when it comes to monitoring the health of your car or fleet. Engine Coolant Temperature is supported on all cars in North America manufactured after 1996.

Telematics Software for license
  • Skip years of development
  • Adaptable – Hardware and Software
  • Expert Support
  • Ongoing Updates
  • In all your products on all platforms – Forever
  • For Linux, RTOS and non-RTOS environments
OBD II Software Stack
  • ISO 9141-2
  • KWP 2000-4
  • SAE J1850 PWM (Ford SCP)
  • SAE J1850 VPW (GM Class 2)
  • ISO 15765-4 (CAN 11-bit & 29-bit)
  • All New OBD protocol J1979-2 (UDS over CAN and Ethernet)
OBD Software for STM32F0, STM32F1, STM32F2, STM32F3, STM32F4 and PIC32 series
  • STM32F0 series
  • STM32F1 series
  • STM32F2 series
  • STM32F3 series
  • STM32F4 series
  • STM32H7 series
  • Don’t see your chip? Contact us to add it!

Frequently Asked Questions

Still have questions?

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 organized with a layer of abstraction to the hardware-specific code so that porting of the code to alternative hardware platforms is kept simple.

When you purchase the OBD II Protocol Stack you will be required to sign an agreement stating you will not sell it to any 3rd party, however, you will be able to use it freely – including all modifications – in your company products.

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).

All 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.

The OBD II protocol stack is licensed for a one-off perpetuity fee. A full licence includes one year off-site support. Contact us for more information.

Our software is undergoing constant testing and not just by us, but also due to the fact it is in daily use by our customers on hundreds of thousands of vehicles. Every week we test approximately 30 vehicles. We try to cover all Year/Make/Model/Engine combinations. With new model years coming all the time this is a continuous task. As the software is coded to the official J1979 standard it does not change much. If we ever add a new feature then a comprehensive verification and validation process is performed. We first test our code on the bench with a selection of OBD II simulators  and then on a range of actual vehicles. We value customer satisfaction and the only time we have seen a communication problem is when there has been a fault on the vehicle. This is why OBD Experts are the industry leaders in OBD II firmware.

The answer is all OBD II compliant cars. OBD II (J1979) is a standard that all manufacturers of vehicles with emissions have to comply with. OBD Experts software works on all vehicles since 1996 in North America and in Europe then it’s all petrol cars since 2001 and all diesel cars since 2004. So is works on GM, Ford, Honda, Chrysler, Toyota, RAM, Jeep, Subaru, Kia, Hyundai, Mitsubishi, Mercedes, Jaguar, Landrover, Volvo, Fiat, Peugeot, Renault, Citroen, Ferrari, BMW, VW etc. etc. Only cars with no emissions i.e. fully electric cars do not need to comply with the J1979 standard and so sometimes do not support OBD II.

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. In 2008, CAN 15765  became the mandated OBD II protocol for all new vehicles in the US. From 2018, all new vehicles world-wide use the CAN 15765 protocol. Table 1, below, describes which OBD II protocol is favoured by which manufacturers pre-2008. Please note that this list is not exhaustive and that there are always exceptions to these general rules.

ISO 9141-2/KWP2000-4Many 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 PWMFord pre-2003. Jaguar pre-2003. Mazda pre-2004.
J1850 VPWGeneral Motors, Chrysler

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 below

The numbers in the figure above 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 the J1850 PWM protocol.
  • Pin 2 only is used for the GM J1850 VPW protocol.
  • 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.

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)

Please click to our Odomatic page to see if this feature is available with the Odomatic library. 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 OBD II firmware to read the door lock status and unlock the car doors, but only if you possess the proprietary information required to do so.

Safe & Secure

Our telematics software is currently deployed in thousands of devices in the USA, Europe and Asia. It is the most reliable solution on the market today.

Fast Delivery

You can be up and running in a matter of days with our well documented and easily adaptable telematics software.

24/7 Support

OBD Experts’ software is fully supported by your own dedicated expert engineer who is available for you anytime you need a hand.