The Java OBDII Scan Tool Project

See the history below for updated info

Welcome to the Java OBDII Scan Tool Project. As you probably have figured out, this project is about designing a software tool capable of talking to your car's engine control unit and getting all sorts of data from it, in particular trouble codes. Since the mid '90, virtually all manufacturers conform to the On-Board Diagnostic (OBD) regulations enforced by the U.S. government and thus make it easier for technicians to assess the state of the engine control system. The fun part is that dull mortals can also have access to the same information, provided they get their hands on a scan tool. But why pay for it (> $250 US) when you can build one ? The catch is that the scan tool needs a hardware module to talk to the car. Cars now have all their electronic sensors and actuators linked together as a local area network (LAN), so the scan tool should also get onto the network using the same network protocol from the electronics as well as software point of view (just like a PC that needs an ethernet card - the electronics - and software - e.g. TCP/IP protocol - for network communication).

The primary goal of the project is not to focus on the electronics but to take care of the software side in such a manner that users with their own electronic interface would easily modify the code to make it work with their device. So the keyword here is portability, in order to reach as many users as possible (be they using a desktop PC, a laptop or even a PalmPilot), and that explains the choice of Java as programming language. On top of that, the object-oriented nature of Java facilitates modifications by the users.

Here are the ideas I toying with to get the project on track. If developers are interested to give their input, they can post their comments / suggestions to the project's forum.


Resources - links

The OBD-II Home Page
Multiplex Engineering
Java Communications API
RXTX  (provides native I/O libraries [Linux, Mac...] for the Java Comm API)
Poseidon, from Gentleware (free UML tool)

Last modified: Sept. 22, 2001