Website
Overview
OpenXC is a combination of open source hardware and software that lets you extend your vehicle with custom applications and pluggable modules. It uses standard, well-known tools to open up a wealth of data from the vehicle to developers.
OpenXC is an API to your car - by installing a small hardware module to read and translate metrics from a car’s internal network, the data becomes accessible from most Android applications using the OpenXC library. You can start making vehicle-aware applications that have better interfaces based on context, can minimize distraction while driving, are integrated with other connected services, and can offer you more insight into your car’s operation.
Researchers at Ford Motor Company joined up to create a standard way of creating aftermarket software and hardware for vehicles. Every new car is full of computers and electronics, and there is growing interest in connecting the output from those systems to third-party applications and the web. Many companies are already offering tools to hook into the driver’s interface, but for the most part they have limited availability for hobbyists and developers. What if the system was designed from the ground up to be open source and to give insight into the vehicle itself? With proper hardware isolation to ensure you can’t “brick” your $20,000 investment in a car, OpenXC imagines when your car is as easy to program as your smartphone.
Vehicles are indisputably becoming more and more connected, but until now the consumer hasn’t had much control over the exact capabilities of their car. Very few infotainment systems are user upgradable, and thanks to the extremely fast pace of consumer electronics and the Web (especially when compared to the long development cycles in the automotive industry) next-gen can quickly become last-gen. This applies to both hardware and software - for example, the 2G radio in the first iPhone was quickly upgraded in the next model, but a vehicle from 2007 with an embedded modem would likely be stuck with it for the life of the vehicle. The average lifespan of a vehicle today is 13 years; a smartphone is 6 to 9 months.
What can you do with OpenXC?
Plug the OpenXC vehicle interface into your car and from Android, you can read data from the vehicle in real-time like the steering wheel angle, GPS position, and vehicle speed. Right now, OpenXC supports the U.S. federally mandated On-Board Diagnostics data on almost all cars and over an expanded data set on most Ford vehicles.
A simple start is to take advantage of the GPS antenna on the roof of the car to improve the accuracy of your location aware application. Or get creative - why not generate a digital painting based on your steering wheel movements over the course of a day, and upload it directly to the web? No single company can think of all possibilities for applications, and that’s why OpenXC gives the freedom of experimentation to developers.
Guiding Principles
What if the user-facing hardware and software was independent from any one vehicle, and could be purchased and installed by consumers as an aftermarket add-on? What if the infotainment hardware was more modular and user-upgradable, and perhaps most importantly, transferable from one vehicle to another? Consumers have already taken this approach to some degree by using their smartphones as the primary navigation, media and communications hub. However, the known dangers of using a handheld device while driving necessitate better vehicle integration to provide safer, more context aware interfaces.
Customer Experience
OpenXC completely changes the customer experience with in-vehicle technology. Consider if every new vehicle included a built-in base board at no cost to the customer. This base board has connections to the dashboard, the audio system and a vehicle interface - we would consider this an OpenXC-compatible system. The consumer has the option of making the vehicle OpenXC-enabled by adding a ~$40 module that includes the host device where OpenXC applications actually run or they can use their smartphone. Other modules that add hardware features can be purchased separately and plugged into the base board like any USB device.
Don’t need Bluetooth? Don’t buy the Bluetooth module. Want a 3G connection? Buy a 3G USB adapter from your preferred wireless provider. 4G just came out? Buy a new adapter and swap it in.
Older vehicles can also benefit from this approach by using an aftermarket base board. The same host device and modules can be used in a car from 2002 as long as a standard interface to the vehicle’s subsystems is exposed to applications. The portability also benefits those in rental cars, car sharing programs and customers of short-term rentals like ZipCar. Consumers might even own an OpenXC system without owning a vehicle.
Developer Experience
OpenXC opens up a previously opaque environment to an entirely new class of developers, who will bring more ideas and solutions to the table than any one company or industry consortium could dream up. The ideal method of distribution for applications isn’t clear yet, but it could range from a “walled garden” app market (a la iTunes) to pre-loaded USB flash drives sold at drugstore checkout counters.
Related Work
There are some existing projects trying to accomplish similar things to OpenXC by making the vehicle more programmable - here’s a few, but by no means all:
What is OpenXC™?
OpenXC™ is an open source, data-focused API for your car. By installing a small hardware module, the vehicle data becomes accessible to Android or other desktop applications using the OpenXC library.
Unlocking Rich Vehicle Data
OpenXC™ allows consumer devices, such as smart phones, to access data from any vehicle. Using OpenXC™, you can monitor many of the sensors on a vehicle, enabling new and innovative vehicle-centric applications. Some data is required by law and more can be unlocked with support from an automaker - or a little reverse engineering effort!
Using OpenXC™
Ready to start developing applications using OpenXC™ and vehicle data? You can start developing without any hardware using the Python or Android libraries.
Vehicle Interface Hardware
OpenXC™ supports open source hardware. There are a number of options for building or buying a compatible Vehicle Interface (VI).
Latest Versions
For a high-level description of the most recent updates, see the Platform Updates.
Supported Features
OpenXC is open source and extensible, but out of the box OpenXC supports:
- Controller Area Network (CAN)
- OBD-II on CAN (U.S. Standard since 2008)
- Raw CAN reading and writing via USB and Bluetooth
- CAN signal to human readable translations
- One-time and recurring diagnostic requests