What It Does

Elmma is a program to record (log) cAN data from the OBD2 port on a Chevrolet Volt, using an OBD2 scanner with the ELM327 chipset (or compatible). It is very basic, but does what it is supposed to do.

Using the scanner and this program, you will get a file with lots of lines like this:

13:33:29.758: 206 39F100
That's the time, followed by a colon, the CAN ID, and the data. In this case, the CAN ID 206 is used by the Volt to indicate the SOC (State of Charge) of the battery. It's 39F1 (hex), which is 14833 (decimal). That value is in 1/4wH increments, so you can find the wH of charge by dividing by 4, getting 3,708wH, or 3.7kWh.

If you aren't excited by that, don't worry -- with this program, you can start logging data that you can later use with a separate program (e.g. to create webpages with a map of the trip, calculate how fast the car goes from 0 to 60MPH, etc.).

What You Need

First, you need a USB OBD2 scanner that uses the ELM327 (or compatible) chipset. I have used ScanTool's ElmScan 5, which is currently under US$30. While there are many cheap versions ($15 or so), ELM has reported that some of the cheap ones use a counterfeit chip. Note that a Bluetooth scanner won't work; they just aren't fast enough.

Next, you need a laptop/netbook/whatever that runs Windows.

And of course, you need a Volt (or another car you want to see if it works with!).

Running the Program

First, download the program.

Next, start the program however you like (if you are familiar with a command prompt, that is probably the most efficient way).

The program then creates a unique file (based on the date and a 3-digit extension, e.g. 20120529001.txt for the first file for May 29, 2012), and then saves whatever it reads until the program is ended (e.g. with CTRL-C). Sleep mode may cause it to hang; if that happens, a reboot may be necessary to run the program again.

To end the program, you can type CTRL-C (or end like other programs, such as using the "X" button). I normally just keep it running unless I expect to be away from the car long enough that the netbook would go to sleep.

Technical Details

The program connects to the primary high speed GMLAN bus using DWCAN at 500kbps (there are 5 or 6 buses, but standard tools can only access that one, which fortunately is the most important).

There is an incredible amount of data (speed, battery SOC, latitude/longitude, driver/passenger seatbelts fastened, shifter position (PRNDL), accelerator/brake position, etc.). To get an idea of what can be done if you start recording data, you can look here.

One important step with the ELM327 is setting the speed to 500kbps; otherwise, it will drop most of the data with its default settings. This program automatically changes the speed.

The program is "dumb", in that it simply saves all data and does not attempt to interpret it (so everything will be recorded, regardless of whether or not it is known what the data does). That way, you can take advantage of any data that is send on the bus, rather than just the known data.

The program expects only one COM port, and will use the first it finds (waiting if necessary for a COM port to become available).

The program uses the CAN "Monitor All" mode, which simply listens to every CAN message that is sent. This in unlike typical OBD2 applications, which only make requests for specific data.

(C) Copyright 2012 EVtools.info