A typical implementation uses the following architectural layers: • Vehicle electronic control units • CAN Bus • OBDII Interface • OpenXC Vehicle interface Module • OpenXC wire messages over USB or Bluetooth • OpenXC driver or service on a device (currently Android) 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==