[Pete Mills] recently bought the all-new Ford Fiesta, which offers impressive fuel economy over that of his Jeep. He soon figured out that he has real time access to a wealth of engine and chassis data through Ford’s OpenXC platform and used it to build blueShift, a neopixel tachometer. The car already has a tach, but this one is more visual, can be seen in periphery, and is just plain fun.
In case you hadn’t heard, the OpenXC platform is Ford’s consumer key to the kingdom of OBD2 treasures. It unlocks the magic through its Vehicle Interface, which plugs into the OBD2 port and translates the CAN bus messages to OpenXC format. These messages are packaged into JSON format and can be sent over Bluetooth or Ethernet/Wi-Fi to an Android, Python, or iOS device.
[Pete] went with Bluetooth and used a BlueSMiRF with an Arduino Pro Mini. He derives power from the car’s on-board USB port, but has future plans to use the OpenXC VI port. blueShift reads the RPM data and displays a green trail as the engine revs up. At the peak revolution, it shows a red LED. This one is sticky and will persist for the lesser of three seconds or the time elapsed to a new positive RPM. [Pete] is also reading the headlight status of the car. As soon as they come on, the RGB LEDs dim to avoid blinding him at night.
[Pete] wanted to make an enclosure more finished-looking than a Tupperware box. He nearly detoured into 3D-printer design, but ended up putting together a Prusa i3v and came up with this RAM mount-compatible enclosure. His fantastic write-up and code are on his blog, but you can make the jump to see a short demo and a full explanation video. You can also make smart brake lights or even create art with OpenXC.
Demo video of blueShift:
Full explanation:
Instead of using bluetooth, use a standard ODB-II interface you get power and the data in rs232 form from the ODB-II port.
The serial ODB adapters seem to cost a bit more than the bluetooth ones and not look as neat and tidy in my experience.
This just made me think of how awesome a dekatron would be for displaying this kind of thing
Depending on Vehicle it would be very cool to have a small back lit LCD mounted in the center of your RGB LED ring to show Vehicle speed, Brake Status, Transmission Gear Position, Odometer, Fuel Level, Door Status ect…
This is a very cool hack, however i think it would be even cooler if you were to mount a small LCD in the center and utilize it to show some of the other data that the OpenXC offers (based on Vehicle) such as Door Status, Fuel Level, Fuel Consumed Since Restart, Odometer, Transmission Gear Position, ect…
From Arduino, once you set the bluetooth communication which command do you use to receive the actual data?
Thanks