The Raspberry Pi is a very small but complete Linux system, so I’d like to see how I can use it in my car for functions such as diagnostics, navigation, dashcam and reverse cam, entertainment system, and more.
https://lists.gt.net/gentoo/user/286532 (BTctl cmds)
https://www.raspberrypi.org/forums/viewtopic.php?p=947185#p947185 (SP profile)
Raspberry Pi (any model will do, though you can only easily attach one USB device to the Zero/Zero W)
16 GB SD card (enough to hold lots of log data)
ELM327 USB OBD-II interface (such as a ScanTool OBDLink SX)
Mobile USB charger
Pi TFT display (* if you want to see OBD-II stats without a mobile/tablet/computer)
PiNoir camera module
Goliton Bluetooth OBD-II interface (* can replace USB interface)
USB backup battery with pass-through charging
USB GPS, such as the u-Blox
Build notes: Reading and displaying On-Board Diagnostics (OBD-II)
Cars generate a lot of sensor and diagnostic data across their internal “Controller Area Network” (CANBUS), but the end user only sees a few of these such as speed, RPM, coolant temperature, fuel level, usually in analog format and sometimes just as a single colored light. Further, diagnostics are distilled down to a single Malfunction Indicator Lamp or “MIL” that usually reads “Check Engine” or just shows an engine icon. There’s a lot more going on in there though!
We can use the OBDLink to poll the car’s sensors and use a Python script to output the readings to a file. The GitHub page below hosts the Python script as well as a service that can auto-start the script when the Pi starts:
The Python script reads all available sensors and outputs this as a JSON record with timestamp. You can then pull in the JSON into an analytic engine like Vertica to profile and analyze the sensor readings.