The next-generation, 'starshippy', feel to the Karma inspired me to think about what I could do to get the car connected to the internet and have both location and operational data streamed to the car's own monitoring software and web page.
The centre console provides the perfect little cache for the equipment in the vehicle. It's almost the ideal size to accommodate a small single-board computer, a LTE wifi bridge and any additional power or signal adapters that might be required. The console cubby is supplied with 12v, a USB port and the audio aux-in port. The cubby is lined with a soft material clearly designed to protect the equipment that you're supposed to connect to these interfaces (flash drives, iPods, iPhones etc.).
My basic plan is as follows:
- Obtain operational vehicle data via a small wireless OBD2 adapter (there are wifi and bluetooth versions of these things available).
- Obtain internet connectivity via an LTE/wifi bridge. Power this from the 12v outlet.
- Acquire a Raspberry Pi single board computer, running Linux. Power this from the 12v outlet or USB
- When the vehicle is on, collect a stream of interesting OBD2 telemetry, buffer and then send to a collector hosted on my home server.
- Read incoming SMS messages into the LTE/wifi bridge and apply text-to-speech into the audio-aux.
- Read traffic news/info and announce this in the car via speech synthesis when the car is started
- Track GPS from the OBD2 (if available) or the LTE/wifi bridge (though I doubt it can fix satellites in the console cubby). Send this to the home server.
- Accept messages from the home server and read them out in the car
- On the home server, implement a web site (I want to learn the Yesod framework for Haskell, so that's a useful intersection) that shows vehicle location and stats and allows messages to be queued for sending to the car.
- If the charging station produces interesting data, integrate that with the vehicle data.