Since 2003 most car models come equipped with a CAN bus to let all of the on-board sensors and actuators talk to each other and/or a centralized computer. This data is continuously being sent back and forth as you drive. The data on a vehicle’s CAN bus includes things like engine RPM, current speed, lock/unlock commands for car doors, steering wheel angle, windows up/down, GPS position, battery voltage, brake pedal % pressed, fuel usage, and myriad more packets. Just think of all the cool things you can do with that information! First, you need a way to connect your computer to the CAN bus.
CANable is an open source USB-CAN adapter made by Protofusion. The CANable adapter shows up on a computer as a virtual serial port meaning it’ll work with all the major operating systems. Some great CAN tools that are mentioned in the CANable documentation section. First is the cantact-app which lets you sniff messages on the bus and send messages (Windows and Mac only). Linux users can interface with a CAN bus using the can-utils package. For those wanting to write programs to automatically read/write the CAN bus, there is the canard library for Python which lets you quickly and easily start interfacing with CAN.