OBDSim

Introduction

While developing OBD GPS Logger, I found a need for a software simulator, and all the ones out there kinda lacked some features I wanted. Specifically, the itches being scratched and some of the major features added since:

Realising that a good OBDII simulator warrants more interest than just a side-note on another project's front page, I have created this page.

The simulator is technically also an ELM327 simulator. The current list of supported AT commands, with short descriptions, has a section dedicated to it in the manpage. There is a text version of the manpage here: obdsim manpage

Screenshots

It's worth noting that the GUI is the least interesting part of obdsim. That being said, there is a gui plugin...

Plugins

Plugins [often called "generators" in obdsim] come in two flavors. One, and most highly recommended, are plugins that are statically built into the software. A tutorial on creating generators is included in the source.

The author realises that this creates certain possibly-unwanted source requirements, since obdsim is GPLv2+. As a result, there is an optional plugin called "dlopen", statically linked with the simulator. This plugin is able to dynamically open a .so/.dylib/.dll plugin and call functions in that. The only header you need to #include to write a dynamic plugin explicitly has the copyright disavowed on it, and instead borrows a blessing from SQLite. The intention is for closed-source vendors to be able to use obdsim for their own purposes without needing to release source [although source release is still actively encouraged]

obdsim takes several parameters - the name of the generator you choose to use, and a "seed" for that generator. That seed can be any of a number of things; the dlopen plugin takes a .so, the dbus plugin takes a config file, etc. Herewith, the available generators:

To see a list of plugins available, run obdsim with --help

Not just a simulator, but a proxy

One possible use for obdsim is not just creating numbers from thin air, but as an easy way to proxy values from other systems.

The DBus plugin was originally written to work with fbd, a fusion brain daemon for Linux. Various people appear to be using the [very affordable] fusion brain device for running sensors in their car engine - people whose car pre-dates the OBDII standard.

There's a very large corpus of excellent tools out there [both Free and commercial] to work with OBDII, and not so many to work with, say, VAG-COM or OBDI. By using obdsim to proxy values from your older car to your OBDII software, you gain access to a lot of high quality analysis tools that you otherwise wouldn't have been able to use.

If you have a wifi OBDII dongle but your OBDII software is not network-aware, you can use the "Socket" generator to achieve the necessary bridging.

Downloading

obdsim is in the same source repository as obdgpslogger. For detailed download and installation directions, please visit the top level page for obdgpslogger

For windows users, I occasionally release builds. The most recent one is always obdsimwindows-latest.zip, or you can browse releases in this directory Contained in the zipfile is the obdsim program as well as instructions. Requires com0com or similar.



Gary (-;
<chunky@icculus.org>