<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div>Best reference I could find for CAN messages on the Volt/Ampera:<div><br></div><div>  <a href="http://www.EVtools.info/ChevyVoltOBD2CAN.html">http://www.EVtools.info/ChevyVoltOBD2CAN.html</a></div><div><br></div><div>from:</div><div><br></div><div>  <a href="http://gm-volt.com/forum/showthread.php?9386-30-OBD2-CAN-tool/">http://gm-volt.com/forum/showthread.php?9386-30-OBD2-CAN-tool/</a></div><div><br></div><div>Original reference link was from dpeillow. Thanks.</div><div><br></div><div>I've written to the guy (RScott) to see if he can help out.</div><div><br></div><div>From what's written in this document, we can get easily SOC, speed, and gps position. And, that is a fantastic start. Michael (in Germany) has started work on this, and his Ampera logs look good.</div><div><br></div><div>Michael: can we discuss here, on the ovmsdev mailing list, so others know what is going on?</div><div><br></div><div>Regards, Mark.</div><div><br></div><div><center style="font-family: Times; "><h1>EVtools.info - Chevy Volt OBD2 CAN Data</h1></center><h2 style="font-family: Times; ">Summary</h2><span class="Apple-style-span" style="font-family: Times; ">The Chevy Volt produces an amazing amount of information, that can be obtained with an inexpensive (~$30) OBD2 connector. While OBD2 is typically used to troubleshoot problems by requesting data from the car, the Volt produces a constant stream of data. This includes speed, battery charge, accelerator/brake position, shifter (PRNDL), and latitude/longitude.</span><div style="font-family: Times; "><br class="webkit-block-placeholder"></div><h2 style="font-family: Times; ">About OBD2/CAN</h2><span class="Apple-style-span" style="font-family: Times; "><a href="http://en.wikipedia.org/wiki/On-board_diagnostics">OBD2</a></span><span class="Apple-style-span" style="font-family: Times; "> </span><span class="Apple-style-span" style="font-family: Times; ">is a protocol that most cars built since 1996 include. It provides a way for tools to find out why the 'Check Engine' light is on, as well as a way of requesting data for troubleshooting. In some cars, like the Volt, it acts like a local area network, where parts of the car communicate with each other. CAN is simply one of many formats that can be used for transferring data.</span><div style="font-family: Times; "><br class="webkit-block-placeholder"></div><h2 style="font-family: Times; ">OBD2 usage in the Volt</h2><span class="Apple-style-span" style="font-family: Times; ">The Volt has 2 connectors (the standard one on the drivers' side, and an extra auxillary one on the passengers' side), with a total of 5 buses:</span><p style="font-family: Times; "><table border=""><tbody><tr><th>OBD2 Location</th><th>Pins</th><th>OBD2 Protocol</th><th>Data Protocol</th><th>Speed</th><th>CAN ID length</th><th>Use</th></tr><tr><td>Primary Data Link Connector</td><td>1</td><td>SAE J2411 (SWCAN)</td><td>Low Speed GMLAN</td><td>33.3kbps</td><td>???</td><td>Body Electrical Services</td></tr><tr><td>Primary Data Link Connector</td><td>6, 14</td><td>Standard CAN (ISO 15765-4, J2284-3)</td><td>High Speed GMLAN</td><td>500kbps</td><td>11 bits</td><td><b>Primary Powertrain Bus</b></td></tr><tr><td>Primary Data Link Connector</td><td>12, 13</td><td>???</td><td>High Speed GMLAN</td><td>500kbps</td><td>???</td><td>Chassis Expansion Bus</td></tr><tr><td>Auxillary Data Connector</td><td>3, 11</td><td>???</td><td>High Speed GMLAN</td><td>500kbps</td><td>???</td><td>High Volt Energy Management</td></tr><tr><td>Auxillary Data Connector</td><td>12, 13</td><td>???</td><td>High Speed GMLAN</td><td>500kbps</td><td>???</td><td>High Volt Powertrain Expansion Bus</td></tr></tbody></table>The Primary Powertrain Bus is easily accessible via inexpensive tools. It has <a href="http://gm-volt.com/forum/showthread.php?8770-DashDaq-data-acquisition-device&p=95276#post95276">been said</a> that all data is gatewayed to the primary DLC, and that the right-hand side was is really only useful for service programming of specific modules.</p><div style="font-family: Times; "><br class="webkit-block-placeholder"></div><h2 style="font-family: Times; ">What Tools Can I Use?</h2><span class="Apple-style-span" style="font-family: Times; ">There are many different OBD2 tools that you can use, depending on what you are looking to do. Just about any should be able to read trouble codes (if the 'check engine' light comes on). If you are looking to get data from the car, there are several known options:</span><p style="font-family: Times; "><a href="http://dashdaq.com/">DashDaq</a> - The DashDaq is one of the best ways to display Volt data in real-time, where it is visible while driving. The drawback is that it is pricy, with an MSRP of $790 with the Volt license. It can record data onto memory card, but it is unclear if it has a 'Monitor All' mode that can record all data from the Volt, rather than just what is requested.</p><p style="font-family: Times; "><a href="http://www.scantool.net/scan-tools/pc-based/">ElmScan 5</a> - A cable that connects a laptop to the OBD2 port. It includes software, or custom software can be written for it. To use the 'Monitor All' mode, software needs to send a special command to the ELM327 chipset. MSRP is $39.95.</p><p style="font-family: Times; ">Generic <a href="http://elmelectronics.com/DSheets/ELM327DS.pdf">ELM327</a> Cables - The ELM327 chip is commonly used for cables like the ElmScan 5. Most OBD2 software should be able to work with any cable using the ELM327 chip, except that the 'Monitor All' mode requires the ability to switch to 500kbps. As a warning, there are known counterfeits out there, that do not use the real ELM chips.</p><p style="font-family: Times; "><a href="http://www.scangauge.com/">ScanGauge</a> - This has an LCD display (2 lines of 10 characters each) that can display information. Very useful to see data in real-time, but it does not look like it can record data (or take advantage of 'Monitor All'). Prices start at $99.95.</p><p style="font-family: Times; ">MDI, GM-TIS, GDS - MDI (Multiple Diagnostic Interface), GDS (GM's Global Diagnostic System software), GM-TIS. These are various names/components for the official GM tools for accessing the data. It falls into the "If you have to ask, you cannot afford it" pricing category (one source quotes $1,500/year just for the service information).</p><p style="font-family: Times; ">There are likely other products that would work, but the above are known to work with the Chevy Volt.</p><div style="font-family: Times; "><br class="webkit-block-placeholder"></div><h2 style="font-family: Times; ">Primary Powertrain Bus - List of CAN IDs</h2><span class="Apple-style-span" style="font-family: Times; ">The Primary Powertrain Bus -- the one that is easily accessible using many OBD2 tools -- uses CAN 11-bit IDs (which can, in theory, range from 0x000 to 0x7FF, or 0 to 2047). In reality, it appears that there are 105 of them:</span><span class="Apple-style-span" style="font-family: Times; "><pre>096 097 098 0AA 0B1 0B9 0BA 0BB   0BC 0BD 0C1 0C5 0C7 0C9 0D1 0D3
0F1 120 12A 130 135 137 139 140   148 160 17D 182 185 186 1A1 1A3
1C3 1C4 1C5 1C6 1DF 1E1 1E5 1E9   1EB 1ED 1EF 1F1 1F3 1F4 1F5 1FB
200 202 204 206 214 222 224 226   228 230 236 238 287 2C3 2C7 2F1
2F9 32A 348 34A 3C1 3C9 3CB 3D1   3DC 3DD 3E3 3E9 3ED 3F1 3F9 3FB
3FC 451 4C1 4C5 4C7 4C9 4CB 4D1   4D7 4D9 4E1 4E9 4F1 500 514 52A
530 589 770 772 773 778 77D 77F   787 
</pre></span><h2 style="font-family: Times; ">Primary Powertrain Bus - Known Data</h2><table border="" style="font-family: Times; "><tbody><tr><th>CAN ID</th><th>Location</th><th>Data</th><th>Units</th><th>Notes</th></tr><tr><td>0C9</td><td>Byte 5</td><td>Accelerator</td><td>0 (0%) to 254 (100%)</td><td> </td></tr><tr><td>0F1</td><td>Byte 2</td><td>Brake</td><td>0 (0%) to Unknown (254?)</td><td>Typical pressure on brake pedal generates about 30.</td></tr><tr><td>135</td><td>Byte 1</td><td>Drive Position</td><td>0=Park, 1=Neutral, 2=Drive/L, 3=Reverse</td><td> </td></tr><tr><td>1A1</td><td>Byte 8</td><td>Accelerator</td><td>0 (0%) to 254 (100%)</td><td> </td></tr><tr><td>1C3</td><td>Byte 8</td><td>Accelerator</td><td>0 (0%) to 254 (100%)</td><td> </td></tr><tr><td>1EF</td><td>Bytes 3-4</td><td>Gas Engine RPM</td><td>RPM</td><td> </td></tr><tr><td>1F5</td><td>Byte 4</td><td>Shift Position</td><td>PRNDL</td><td>1=Park, 2=Reverse, N=Neutral, D=Drive, L=Low</td></tr><tr><td>206</td><td>Bytes 1-2</td><td>Battery SOC</td><td>.250kWh</td><td>Units possibly .244kWh</td></tr><tr><td>32A</td><td>Bytes 1-4</td><td>GPS Latitude</td><td>Milliarcseconds</td><td> </td></tr><tr><td>32A</td><td>Bytes 5-8</td><td>GPS Longitude</td><td>Milliarcseconds</td><td> </td></tr><tr><td>3E9</td><td>Bytes 1-2</td><td>Speed</td><td>1/100 MPH</td><td>55MPH would be 5500 (0x157c)</td></tr></tbody></table><h2 style="font-family: Times; ">Data Analysis: Chevy Volt 0 to 60 MPH in 8.53 seconds</h2><span class="Apple-style-span" style="font-family: Times; ">One of the numbers that people look at for performance cars is the "0 to 60MPH" number (or the closely related "0 to 100KPH" number).</span><p style="font-family: Times; ">I was able to accelerate from 0 to 60MPH (although not in perfect conditions, as I started at a slight angle), taking 8.53 seconds. That was in Sports mode and L. The 0 to 30MPH time was 3.45s (which perhaps was a bit high due to the slight angle I started at).</p><p style="font-family: Times; ">The calculation assumes several things, such as the data I have actually being 1/100MPH units (but it could be offset a bit from reality, as I believe the Volt speedometer reads a couple percent above the true speed). I started the time from the last 0.00MPH reading (which, interestingly, occurs after the accelerator reaches 100%), and end when I hit 60.19MPH (the previous reading was 59.07). It was .468s from the last 0% reading on the accelerator until the car showed >0.0MPH, which would make the 0-60 time 9.0 seconds, if you calculated that way.</p><p style="font-family: Times; ">This was done by an amateur, on the open road, giving safety priority, and wasn't under ideal conditions (specifically, starting at a slight angle, and not perfectly flat). However, it proves that the 8.5s figure that is sometimes quoted seems quite accurate. And when Edmunds tested it at 9.2s, and Consumer Reports at 9.4s, it is likely that they were not using the Sports mode.</p><p style="font-family: Times; ">See below for the analysis of the cost of a jackrabbit start.</p><p style="font-family: Times; ">For the curious, here is most/all of the data that I used (from a file with 188,606 lines in it, as this was part of a longer trip):</p><div style="font-family: Times; "><br class="webkit-block-placeholder"></div><span class="Apple-style-span" style="font-family: Times; "><pre>11:48:45.829: 206 639600
11:48:45.954: 1A1 00004100000000
11:48:46.110: 1A1 00004100000008   [Accelerator at ~3%]
11:48:46.313: 1A1 000041000000FE   [Accelerator at 100%]
11:48:46.422: 3E9 000000FF004E00FB
11:48:46.516: 3E9 00A30100004000FB
11:48:49.636: 3E9 0BAC01AC0B3C019E [Speed 29.88MPH]
11:48:49.870: 3E9 0C3B01C20BED01B4 [Speed 31.31MPH]
11:48:49.885: 206 628600
11:48:54.955: 206 5FCA00
11:48:54.955: 3E9 1783051017350509 [Speed 60.19MPH]
</pre></span><span class="Apple-style-span" style="font-family: Times; ">The information on the right side are my notes. The CAN ID 206 is the battery SOC, the last 2 numbers of CAN ID 1A1 are the accelerator position, and the first 4 numbers in the CAN ID 3E9 are the speed in 1/100 MPH.</span><div style="font-family: Times; "><br class="webkit-block-placeholder"></div><h2 style="font-family: Times; ">Data Analysis: Cost of a Jackrabbit Start</h2><span class="Apple-style-span" style="font-family: Times; ">Since this is the Volt, I should address energy efficiency of the 0 to 60MPH test, which is the ultimate in jackrabbit starts. For 0-30MPH, it used 0.068kWh of electricity, and for 0-60MPH it used .243kWh of electricity. So it takes 2.5x as much energy to get from 30-60MPH as it does from 0-30MPH. Again, there could be unknown factors here -- it could be, for example, that there is a lag between the time the energy is removed and it is recorded (e.g. if the car reports a number now that is 100ms old).</span><p style="font-family: Times; ">As a comparison, on a similar drive at that location, 0 to 51.5MPH was achieved (at slower acceleration, with the accelerator down an average of less than 20%, versus 100% for the 0 to 60 number) using .254kWh, driving about 1/2 mile. The 0 to 52.5MPH time during the 0-60MPH test was done with just .182kWh, but only going about 200 feet. Adding in the EPA's 37kWh/100 miles, that would be an extra 0.185kWh added to the jackrabbit start, or 0.367kWh to go 1/2 mile versus .254, or a waste of about .1kWh.</p><p style="font-family: Times; ">For those wondering why I had to add those extra .185kWh, it's because with the jackrabbit start you hit the top speed after traveling less distance. So to properly compare the slow start with the fast start, you need to add in the energy that would be used to travel that extra distance.</p><div style="font-family: Times; "><br class="webkit-block-placeholder"></div><h6 style="font-family: Times; ">(C) Copyright 2011 EVtools.info</h6><div><br></div></div></body></html>