Newbie here. I'm working on an OBD II scanner and have made a hardware using STM32. It uses its inbuilt peripherals to communicate with the OBD bus (like CAN, K-Line, etc).

Question: Are there any projects where one has reverse engineered an OBD II scanner to know what it is sending over the bus. I need to know what it is doing during initialization and PID requests so that I can improve my self-made system.

Similar question asked in Motor Vehicle Maintenance and Repair: [Link] But there were no answers.


"OBD II" could mean a multitude of protocols. Can you be more specific with the ISO protocol you are using? For a lot of applications the material is available and that is always easier than reverse engineering which can then be focused. If manufacturer specific, please name the vehicle.

I have used a simple Y connector to snoop CAN bus comms. I have disassembled engine control unit code to understand and modify manufacturer specific comms.

  • Out of curiosity, how did you acquire the ECU code? Its hard for me to find ECU firmware via a web search – julian Jun 14 '17 at 22:18
  • 1
    @SYS_V There are a dozens of forums where flash images are available and a few where their disassembly is discussed. There is open source reflashing software available that can read and write flash in a vehicle through the OBD II port. I am not sure of the etiquette of links to forums on here, but if you have something specific in mind and links are allowed I can try to point in the right direction if it is a vehicle I know anything about. – John Banks Jun 14 '17 at 22:38
  • 1
    Not used to Markdown on here so deleted, in a hurry so just some names: openecu.org (but appears down but look for Ecuflash), nefmoto, RomRaider, forums.evolutionm.net Ecuflash forum. There are others for chip tuners. Sorry not on Twitter. If there is some way to contact otherwise, happy to help. – John Banks Jun 14 '17 at 22:49

Usually it's done through ELM327 device so most of OBD II scanners are not talking to the car directly but trought ELM327 device, which provide serial interface for the developer and does all hardware handshake itself. For example: http://www.obdtester.com/pyobd-download


What you need is an obd splitter cable, also called Y-cable (though I have a cable with 3 obd plugs). Then you need a tool which can monitor the traffic between the tester and the vehicle. The most widely used protocol is CAN bus, you can also have K-line in some modern cars. Depending on what you need exactly you can find lots of communication loggers, for example this one may be useful for you as it supports a lot of protocols: https://simplediag.ru/obdlogger/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.