Very cool project, Brien. I'll give your project talk a view later. What made you want to dig into the CAN bus? Did the OBD-II interface not give you access to something you wanted?
Yeah, for me it was primarily about the much more expansive and detailed data and control that was available via the CAN bus. Direct wired into the CAN bus, I can also write my own packets back into the network as well. With this extra access I can do things like:
1) have an event driven system: I have full visibility into basically every single thing that happens in the car. AC kicks in, gas peddle is pressed 30% of the way down, window is rolling down, fuel gets to 20%, horn just honked, button 3 on the steering wheel was pressed, transmission goes into reverse, GPS coordinates are near X,Y, any ECM data, etc. The sky is the limit, as basically everything that happens in the vehicle broadcasts a status or command on this network.
2) push packets back into the system: I can overwrite parts of the dashboard displays. I can trigger things to happen - lock/unlock doors, honk horn, etc. I can also enable/disable things like ABS and such (not sure why I would ever want to, but i COULD, since i'm connected into the low level network)
3) intercept/replay messages: by detecting messages, then sending my own messages immediately following, i can effectively "intercept" events and make my own events happen instead. if button 3 on my steering wheel is supposed to show me the outside temperature of the vehicle via my dashboard display, but I want it to momentarily show me the internal temperature of my fridge first, i could do that - assuming my RPi has access to the temperature data of my fridge.
It's really a huge rabbit hole of functionality, all depends on how deep into the rabbit hole you want to fall. I'm a tinkerer and maker, and i really like just exploring the technical limitations of just about everything I own, so for me a big part of this was just to see how far i could dive into hacking the vehicle - mostly just for the heck of it.