We have built an OBD-II scan tool using an STM32 microcontroller and it works for most vehicles. But occasionally our device fails to detect the OBD protocol, whereas the OBD scanner (ELM) will detect it. We are following international standard documentation provided by ISO and so the logic is theoretically correct, also this setup works for most vehicles.
Are there any open source implementations of an OBD scanner using a microcontroller instead of ICs/firmware like ELM327? Basically, I need to know how an OBD II scanner sends its frames into the CAN/K-Line bus.