OBDuino is an open source
trip computer
A trip computer is a computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform gen ...
design based on the
Arduino
Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed unde ...
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, L/100 km or kilometres per litre), engine tuning parameters etc. on an LCD.
OBDuino utilises the
On-Board Diagnostics
On-board diagnostics (OBD) is a term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or repair technician access to the status of the various vehicle sub-systems. The amount of diagnostic inf ...
interface found in most modern cars.
Features
* Most
OBD-II PIDs
OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool.
SAE standard J1979 defines many OBD-II PIDs. All on-road vehicles and trucks sold in North America are required to support a ...
or derived values may be displayed. Common values include
** Fuel: cost, used or remaining, wasted while idling, consumption, measured in mpg or l/100 km
** Engine: load, RPM
** Temperatures: coolant, air intake
** Vehicle speed
** Tank distance
** Remaining distance that can be travelled on the current tank of fuel
** Throttle position
** Battery voltage
** CAN status, for CAN protocol only, display TX and RX error
* Displays instantaneous values, average, maximum and minimum values calculated per trip, per outing, or per tank of fuel
* Menu system for configuring parameters
* Relatively cheap compared to commercial alternatives
* Customisable and extendable
OBDuino does not display or reset engine fault codes (which are available over the OBD interface).
Design
The key components of the design are:
* A
microcontroller
A microcontroller (MCU for ''microcontroller unit'', often also MC, UC, or μC) is a small computer on a single VLSI integrated circuit (IC) chip. A microcontroller contains one or more CPUs (processor cores) along with memory and programmable i ...
. One of the various
AVR-based
Arduino
Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed unde ...
kits is typically used for this, although one of several
Atmel AVR
AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit Reduced instruction set computer, RISC single-chip microcontrollers. AVR was one of the f ...
microcontrollers may be used directly in a custom OBDuino circuit.
* An interface to the car's management system, using the
On-Board Diagnostics (OBD) 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
On-board diagnostics (OBD) is a term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or repair technician access to the status of the various vehicle sub-systems. The amount of diagnostic inf ...
PWM & VPW/ISO 9141/ISO 9141-2/ISO 14230/CAN protocols), using an
ELM327
The ELM327 is a programmed microcontroller produced for translating the on-board diagnostics (OBD) interface found in most modern cars. The ELM327 command protocol is one of the most popular PC-to-OBD interface standards and is also implemented ...
from
ELM Electronics
Elms are deciduous and semi-deciduous trees comprising the flowering plant genus ''Ulmus'' in the plant family Ulmaceae. They are distributed over most of the Northern Hemisphere, inhabiting the temperate and tropical-montane regions of North ...
. 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.
STN1110which is software compatible with the ELM327. Unfortunately, this IC is not pin-compatible with the ELM327, therefore the circuit would require some changes.
* An LCD 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 circuit.
* 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 environment
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
.
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. No such PCBs are available for the OBDuino as of September 2009.
Project
The OBDuino project was started in 2008 based on the MPGuino project, with the desire to simplify wiring to the vehicle, instead of using the standard OBD-II socket that does not directly wire 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 on 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 book ''Practical Arduino'' (2009) by
Jonathan Oxer
Jonathan Oxer (born 26 July 1970, London, England) is a computer programmer, Debian developer, author, entrepreneur, and Free Software activist. He lives in Melbourne, 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 graphs values such as miles per gallon and
OBD-II PIDs
OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool.
SAE standard J1979 defines many OBD-II PIDs. All on-road vehicles and trucks sold in North America are required to support a ...
, etc., on a 128*64 pixel LCD.
* OBDuino author Magister is working on a commercial prototype with a 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
*
Arduino
Arduino () is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed unde ...
*
Trip computer
A trip computer is a computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform gen ...
*
Carputer
A carputer, or car-puter, is a computer with specializations to run in a car, such as compact size, low power requirement, and some customized components. The computing hardware is typically based on standard PCs or mobile devices. They normally ha ...
*
On-Board Diagnostics
On-board diagnostics (OBD) is a term referring to a vehicle's self-diagnostic and reporting capability. OBD systems give the vehicle owner or repair technician access to the status of the various vehicle sub-systems. The amount of diagnostic inf ...
*
OBD-II PIDs
OBD-II PIDs (On-board diagnostics Parameter IDs) are codes used to request data from a vehicle, used as a diagnostic tool.
SAE standard J1979 defines many OBD-II PIDs. All on-road vehicles and trucks sold in North America are required to support a ...
*
ELM327
The ELM327 is a programmed microcontroller produced for translating the on-board diagnostics (OBD) interface found in most modern cars. The ELM327 command protocol is one of the most popular PC-to-OBD interface standards and is also implemented ...
very common chip used in OBD interfaces
References
External links
STN1110emulates ELM327
Atmel AT90CANmicrocontroller like ATmega328 with CAN support
OBD II ScanTool Linux-based open source
from ELM Electronics
{{DEFAULTSORT:Obduino
Auto parts
Arduino
Hacker culture