OBDuino
Encyclopedia
OBDuino is an open source trip computer
design based on the Arduino
platform. An OBDuino may be assembled and customised by an electronics hobbyist, it displays information such as instantaneous fuel economy (e.g. miles per gallon or kilometrers per litre), engine tuning parameters etc. on an LCD.
As the name suggests, the OBDuino utilises the On-Board Diagnostics
interface found in most modern cars.
OBDuino does not currently display or reset engine fault codes (which are available over the OBD interface).
Many Arduino-based projects have either custom printed circuit boards available which include the AVR microcontroller (removing the need for an Arduino board), or extension boards that contain the extra circuit and that plug directly into the standard Arduino circuit board. As of September 2009, no such PCBs are yet available for the OBDuino.
The project is centred around the discussion forum on ecomodder.com and the wiki and code hosting provided by Google code, project is released under the GPL license.
The main OBDuino thread on the eccomoder forum was started by jmonroe on 1 June 2008 as a fork of MPGuino discussions.
Magister posted an OBDuino announcement to the Arduino forum on 4 December 2008.
As of September 2009, the OBDuino32K code credits these developers:
The 32K in the obduino32K name differentiates the code targeted at the Atmega328 with 32k flash memory (i.e. Arduino 2009) version from the Atmega168 16k (Arduino 2008) version.
Trip computer
A trip computer is an onboard computer device fitted to cars which can generally record distance travelled, average speed, average fuel consumption, and display real time fuel consumption information...
design based on the Arduino
Arduino
Arduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR...
platform. An OBDuino may be assembled and customised by an electronics hobbyist, it displays information such as instantaneous fuel economy (e.g. miles per gallon or kilometrers per litre), engine tuning parameters etc. on an LCD.
As the name suggests, the OBDuino utilises the On-Board Diagnostics
On-board diagnostics
On-Board Diagnostics, or OBD, in an automotive context, is a generic term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or a repair technician access to state of health information for various vehicle sub-systems...
interface found in most modern cars.
Features
- Most OBD-II PIDsOBD-II PIDsOBD-II PIDs are codes used to request data from a vehicle, used as a diagnostic tool. SAE standard J/1979 defines many PIDs, but manufacturers also define many more PIDs specific to their vehicles...
or derived values may be displayed. Common values include- Fuel consumption, measured in mpg or l/100 km,
- Fuel used or remaining,
- Fuel cost,
- Fuel wasted while idling,
- Distance,
- Engine RPM,
- Vehicle speed,
- Tank distance,
- Remaining distance that can be travelled on the current tank of fuel
- Engine load,
- Coolant temperature,
- Air intake temperature,
- Throttle position,
- Battery voltage,
- CAN status, for CAN protocol only, display TX and RX errors
- Instantaneous values can be displayed, and average, maximum and minimum values calculated over a trip, an outing or per tank of fuel.
- Menu system for configuring parameters
- Relatively cheap compared to commercial alternatives
- Customisable and extendable
OBDuino does not currently display or reset engine fault codes (which are available over the OBD interface).
Design
The key componenets of the design are:- A microcontrollerMicrocontrollerA microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...
. One of the various AVRAtmel AVRThe AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
-based ArduinoArduinoArduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR...
kits is typically used for this, although one of several Atmel AVRAtmel AVRThe AVR is a modified Harvard architecture 8-bit RISC single chip microcontroller which was developed by Atmel in 1996. The AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other...
microcontrollers may be used directly in a custom OBDuino circuit. - An interface to the car's management system, using the On-Board Diagnostics (OBD)On-board diagnosticsOn-Board Diagnostics, or OBD, in an automotive context, is a generic term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or a repair technician access to state of health information for various vehicle sub-systems...
connector found in most modern cars. This requires a cable and a circuit. There are several variations of this circuit depending on the particular OBD protocol implemented:- ISO 9141/ISO 9141-2/ISO 14230, using Freescale MCZ33290EF
- CAN, using MCP2515 and MCP2551
- Generic (SAE-J1850 PWM/SAE-J1850 VPW/ISO 9141/ISO 9141-2/ISO 14230/CAN protocols), using an ELM327 from ELM Electronics. Although this gives a more versatile trip computer compatible with most modern vehicles, the ELM327 chip adds significant cost to the circuit and requires a significant supporting circuit for different protocols. It removes the complexity of interpreting the various OBD protocols, or
- STN1110 which is software compatible with the ELM327. Unfortunately, this IC is not pin-compatible with the ELM327, therefore the circuit would require some changes. Free samples are available from the manufacturer.
- An LCD display and three input buttons. A typical LCD is 2 rows x 16 characters or 4x20 character, based on the HD44780, with a circuit based on the mpguino ciruit.
- Microcontroller code. This is a C++ program based on the Arduino framework, called a Sketch in Arduino terminology. This is loaded on the microcontroller over a USB or serial interface using the free Arduino integrated development environmentIntegrated development environmentAn integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
.
Many Arduino-based projects have either custom printed circuit boards available which include the AVR microcontroller (removing the need for an Arduino board), or extension boards that contain the extra circuit and that plug directly into the standard Arduino circuit board. As of September 2009, no such PCBs are yet available for the OBDuino.
Project
The OBDuino project was started in 2008 based on the MPGuino project, with the desire to simplify wiring to the vehicle (i.e. using the standard OBD-II socket rather than directly wiring to the vehicle's fuel injection system and digital vehicle speed sensor) and to access the wide range of engine management data available using OBD.The project is centred around the discussion forum on ecomodder.com and the wiki and code hosting provided by Google code, project is released under the GPL license.
The main OBDuino thread on the eccomoder forum was started by jmonroe on 1 June 2008 as a fork of MPGuino discussions.
Magister posted an OBDuino announcement to the Arduino forum on 4 December 2008.
As of September 2009, the OBDuino32K code credits these developers:
Main coding/ISO/ELM: Frédéric (aka Magister on ecomodder.com)
LCD part: Dave (aka dcb on ecomodder.com), optimized by Frédéric
ISO Communication Protocol: Russ, Antony, Mike
Features: Mike, Antony
Bugs & Fixes: Antony, Frédéric, Mike
The 32K in the obduino32K name differentiates the code targeted at the Atmega328 with 32k flash memory (i.e. Arduino 2009) version from the Atmega168 16k (Arduino 2008) version.
Variations
- An OBDuino variant is described in the upcoming book Practical Arduino by Jonathan OxerJonathan OxerJonathan Oxer is a computer programmer, Debian developer, author, entrepreneur, and Free Software activist. He lives in Melbourne, Victoria, Australia with his wife and their two children.-Early life and education:...
and Hugh Blemings.. Based on the Arduino Mega, the OBDuino is extended to log GPS and OBD data to a USB stick. - A Graphical OBD MPGuino is described by HULK. It graphs values such as mpg, OBD-II PIDsOBD-II PIDsOBD-II PIDs are codes used to request data from a vehicle, used as a diagnostic tool. SAE standard J/1979 defines many PIDs, but manufacturers also define many more PIDs specific to their vehicles...
etc. on a 128*64 pixel LCD. - Author Magister is working on a commercial prototype with CAN only protocol
Related Alternatives
- Scangauge is a commercial trip computer using the OBD interface. In addition to the trip-computer-style features in OBDuino, the Scangauge also includes features for displaying and resetting engine fault codes.
- The mpguino is another Arduino-based trip computer, and is mainly limited to fuel usage measurement. It may be used in any vehicle which has an electric fuel injection system and digital vehicle speed sensor. The mpguino links directly to these sensors so it doesn't require an OBD2 interface. It can report instant and tank MPG, remaining miles till the tank is empty etc. The mpguino is available in kit form from several suppliers.
- The SuperMID is an enthusiast/hobbyist trip computer, designed originally for the Toyota Prius, although it may be used in any vehicle which has an electric fuel injection system and digital vehicle speed sensor. The SuperMID interfaces directly to the engine ECU or sensors, rather than using a standard OBDII connector.
- Bruce D. Lightner's entry won a 2004 Circuit Cellar design contest. Lightner's design uses an AVR microcontroller connected to an OBD-II interface to drive an analogue gauge displaying fuel consumption in mpg. This only implements the SAE J1850 VPW variant of the OBD-II protocol suite (so it only works with mostly GM cars that use VPW).
- An OBD II Car Computer design is described by NerdKits using their AVR-based microcontroller kit. This implements the SAE J1850 VPW variant of the OBD-II protocol suite (so it only works with certain cars that use VPW) and displays RPMs, Coolant Temperature, Vehicle Speed and Percent Throttle on an LCD. This is partly derived from Bruce D. Lightner's design.
- OBD2-LCD is an AVR based OBD-II trip computer, designed by Florian Schäffer. It implements the ISO 9141 and ISO 14230 (KW 2000) OBD-II variants, with design and code published and available in kit form. The new kit supports CAN (ISO 15765) too.
See also
- ArduinoArduinoArduino is an open-source single-board microcontroller, descendant of the open-source Wiring platform, designed to make the process of using electronics in multidisciplinary projects more accessible. The hardware consists of a simple open hardware design for the Arduino board with an Atmel AVR...
- Trip computerTrip computerA trip computer is an onboard computer device fitted to cars which can generally record distance travelled, average speed, average fuel consumption, and display real time fuel consumption information...
- CarputerCarputerCarputer is the predominant term used to describe a category of mobile computer designed or modified to specifically be installed and run in automobiles...
- On-Board DiagnosticsOn-board diagnosticsOn-Board Diagnostics, or OBD, in an automotive context, is a generic term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or a repair technician access to state of health information for various vehicle sub-systems...
- OBD-II PIDsOBD-II PIDsOBD-II PIDs are codes used to request data from a vehicle, used as a diagnostic tool. SAE standard J/1979 defines many PIDs, but manufacturers also define many more PIDs specific to their vehicles...
- ELM Electronics
External links
- http://www.obdsol.com/stn1110/ STN1110 emulates the ELM327 and offers superior features. Hobbyists and engineers can order free samples.
- www.obddiag.net/allpro_serial.html an ELM327 to serial kit
- masternater.blogspot.com/2008/03/obdii-moving-along.html PIC based OBD-II to USB
- www.obd2lcd.com PIC based OBD-II trip computer
- www.atmel.com/dyn/Products/product_card.asp?part_id=3388 AT90CAN - uC similar to Arduino's ATmega328 but with CAN support
- freediag.sourceforge.net Linux-based open source OBD II ScanTool
- www.elmelectronics.com/obdic.html ELM Electronics' OBD interface chips