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.

2 Answers 2


"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, 2017 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, 2017 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, 2017 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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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