Every car has an OBD-II port, an interface into which a cabled (typically with a USB connector) or wireless (Bluetooth) device can be plugged. Once connected you’ll be able to interrogate your car’s onboard computer, check errors, monitor performance, and perform diagnostics. You might even be able to tune the engine, with the right skills and know-how.
Using OBD-II is something that is usually limited to mechanics and ECU technicians, but in the past few years these connectors have become more widely available, along with the software to use them. You might have used your PC, or even an Android phone or tablet to investigate the workings of your car. So where does the Raspberry Pi come in?
Well, thanks to the creator of the video above, Pi users can take advantage of some open source Python-based OBD-II software to take a closer look at what is going on inside their cars. Available from GitHub, the software to date only works with the ECU of a BMW Mini (thanks to PID (Parameter ID) codes determined from a BMW Mini Cooper S R53), which means that a bit of work is still needed to get everything working with other vehicles. It’s worth noting too that codes may be erroneous due to errors in the translation of data from other sources.
In the video, you’ll notice that the Pi is mounted as a tablet device, but any portable solution you can get your hands on (such as a NoodlePi) should do the trick. The project is made available under GNU GPL, and the developer seems keen for it to be picked up and used for as many vehicles as possible. Updating and adding to the existing code appears straightforward; as noted: “To add support for a PID code, add the PID code to the EML327 class using existing PID source code as a guide. And check the formatting of the data in the PID text file definitions.”
Fancy building your ECU-interrogating Raspberry Pi? OBD-II cables and Bluetooth units are inexpensive, but remember that they should be removed before you hit the road. While attached to the CAN BUS, an OBD-II device can impact the reliable running of your vehicle, and potentially damage the engine.