





I built my own OBD2 Scanner
My wife's car had the check engine light and abs light come on, my scanners could only touch the PCM DTCs and I wondered, how hard would it be to make something that can pull DTCs from other modules?
I found out it's practically impossible due to those modules being locked behind manufacture specific commands that aren't public, but I decided to keep going to learn about how CANBUS works.
I used an STM32F103C8T6 chip on a blue pill board. I used the Arduino IDE to program it, which was amazing. I also used a SN65HVD230 CAN transceiver, a little SSD1306 I2C display, a rotary encoder, and a buck converter to take the vehicle's 12v down to 3.3v. All soldered onto an electro cookie bread board. The STM32 has a built in CAN peripheral, but it's normal logic level signals, the SN65HVD230 is used to turn those signals into the differential signal that CANBUS runs on. It can read DTCs, clear DTCs, read live vehicle data, and check the emissions monitors. I had to implement ISO-TP for the DTC scan in case the PCM has more than 3 DTCs, which wouldn't fit in a single CAN frame.
It looks goofy in this case I made for it, and I destroyed a couple boards making it happen, but it was a genuinely fun project to work on!
Finally got the github up!