OpenXC is a hardware and software API for automobiles developed by FordBug Labs and proposed as an open standard. At this time, the API is read-only and provides a small number of vehicle measurement parameters only.
OpenXC driver or service on a device E.g. OpenXC Enabler app for Android.
OpenXC enabled applications. See Android sample applications: retro-gauge and mpg.
Not all these layers are necessary, e.g. a vehicle might implement a native CAN Bus interface to USB or Bluetooth, without using the OBD socket or the reference OpenXC Vehicle interface Module. Or an alternative to the reference OpenXC Vehicle interface Module could be developed with a common ELM327 interface.
API
The data available via the API as at January 2012 includes
AcceleratorPedalPosition
BrakePedalStatus
EngineSpeed
FineOdometer - a persistent odometer recording)
FuelConsumed - fuel consumed since the vehicle was started)
FuelLevel - current level of fuel in the gas tank.
TorqueAtTransmission - the actual current torque in the transmission.
TransmissionGearPosition - the actual current gear of the transmission.
TurnSignalStatus
VehicleButtonEvent A ButtonEvent represents a button press, release or hold on the vehicle HMI.
VehicleDoorStatus - is a door ajar?
VehicleSpeed - the current forward speed of the vehicle.
WindshieldWiperStatus
OpenXC Vs OBD
Any information available from the current OpenXC API is available from the OBD interface. However the core OBD standard is concerned with the engine train, emissions and faults while OpenXC is focused on high-level instrumentation of more interest to a driver. The potential advantages of using OpenXC include
Most useful information available from OBD interfaces uses proprietary PIDs that may differ by manufacturer and Vehicle. OpenXC could offer a standard interface, similar to the ELM327 interface.
An OBD interface may be complex to implement, while the OpenXC API is designed to be friendly for application developers
Possible advantages of using the OBD interface include
Use well established existing OBD interface hardware and software, e.g. using the ELM327 protocol
The additional hardware layer for OpenXC is currently much more expensive than OBD interfaces
Access additional functions than the limited set available via OpenXC. E.g. manifold vacuum.
Few vehicles currently support OpenXC, while nearly all modern vehicles support OBD
Ability to write data back to vehicle, e.g. to clear fault codes.