It took a couple days driving around to figure out all the bells, whistles, and electronic gizmos in the Fiesta, and just that quickly, I was looking for something more. What that turned out to be was Ford’s OpenXC API. OpenXC is part hardware, part software. It is open source, as the name suggests and aims to ease us into integrating vehicle data into our android apps, and in case of blueShift, embedded hardware.
Let’s take a brief, but closer look at OpenXC and the potential it provides. For quite some time now, auto manufacturers have provided an OnBoard Diagnostics port. This OBD2 port, as it is sometimes called, is a digital interface to engine management parameters and chassis/body status. To the typical hobbyist, an OBD2 ports data is relatively inaccessible. You would need to know manufacturer proprietary PID’s for the CAN messages you were viewing to discern “air intake temperature” from “outside air temperature” for instance. Likely, the information you were able to decode is specific to one vehicle make/model or worse, ECM batch.
Under the OpenXC umbrella, Ford has developed a hardware module called a Vehicle Interface or VI. This VI plugs into your OBD2 port, and interprets engine parameters and chassis/body info. These data are then packaged into JSON format, and relayed out over Bluetooth SPP. If you were to look at the OpenXC Data set you would discover that listening to this Bluetooth connection provides you with a plethora of vehicle specific information in real time. For instance, you can read your accelerator pedal position, fuel level, odometer, brake pedal status, and of course engine speed. The list goes on.
blueShift aims to utilize these engine speed data to drive a set of LED’s in an easy to interpret, graphical manner. The circular nature of an off-the-shelf LED strip lends itself to this project nicely. What’s more, these LED’s are individually addressable, RGB LED’s. This means that we can set any LED on the ring to just about any color we like, at any time we like. blueShift takes advantage of these addressable WS2812B LED’s to create an interesting and informative display.
At first glance it may seem a second tachometer in my car is superfluous. I can say after having used blueShift, quite the opposite is true. The LED’s are much easier to read with peripheral vision than the stock tachometer needle. Likewise, blueShift would be very useful for someone who races Ford automobiles. Additionally, blinky LED things are just plain cool, and no further justification for this project is therefore necessary.
The only wired connection to blueShift is for power. All data transfer is accomplished over Bluetooth SPP. Presently, this power is derived from my vehicles on-board USB power. I have plans to derive power from the OpenXC VI power port in the future. This will require a small regulator to convert the vehicle ~14 V DC to a microcontroller compatible, regulated 5 V DC supply. This supply will also need to supply power for the LED ring, so current consumption should be considered.
3D Printed Enclosure:
Sometimes a project will take you to unanticipated places. In the case of blueShift, that ended up being the land of 3D printing. Typically when I make a new project I am left to drilling and milling existing enclosures, and sometimes tupperware. What I am left with is a finished product that looks less than finished. When I was envisioning how I wanted blueShift to look, it deviated rather drastically from the prototype seen below.