That&#39;s the kicker, what exactly IS Mode $06? <br><br>In short, Mode $06 returns a whole bunch of tests against a whole bunch of components, gives you min, max, current value, and from that you can glean pass/fail on components.<br>
<br>Mode 6 in CAN is different than Mode 6 in non-can vehicles. Most of my experience thus far is with CAN vehicles, but I&#39;m hoping to expand what I know as I play more with my car.<br><br>In a nutshell (For CAN)<br>0600 returns a list of supported OBDMID&#39;s (OBD Monitor ID&#39;s). This is a list of component systems that will be under test.<br>
You request them like so:<br>0601<br>0602<br>etc.<br><br>Some monitor ID&#39;s are standardized. Some test ID&#39;s are standardized. The rest are MFG specific, and generally unknown. What IS known is the values, min, max, and what type of return it is.<br>
<br>What is returned, is a list of what tests are being run for that particular monitor. Example time:<br>0601 could potentailly return “7E8 10 1C 46 01 81 0E 0A CB 7E8 21 06 54 0E D8 01 87 10 7E8 22 00 9D 00
 00 01 2C 01 7E8 23 88 10 00 84 00 00 02 7E8 24 58 00 00 00 00 00 00 ”<br><br>Split that on the header:<br><br>7E8 10 1C 46 01 81 0E 0A CB<br>
7E8 21 06 54 0E D8 01 87 10<br>
7E8 22 00 9D 00 00 01 2C 01<br>
7E8 23 88 10 00 84 00 00 02<br>
7E8 24 58 00 00 00 00 00 00<br><p>Remove the header and counter bytes, reorganize the arrangement of the bytes</p>
<p>0181 0E 0ACB 0654 0ED8<br>
0187 10 009D 0000 012C<br>
0188 10 0084 0000 0258<br>
00  00 00 00 00 00</p><br><p>So we have three messages for OBDMID (OBD Monitor ID) 0×01. TID 0×81,
 TID 0×87, and TID 0×88. All three of these are manufacturer specific 
TID’s, so we don’t actually have any information on what they mean, but 
we can still parse out the values. The third byte signifies how to parse
 the messages 0x0E means the result is in Amps, and you multiply it by 
0.001. The fourth and fifth bytes are the value (0ACB), 2763. Multiplied
 by the mulitplier, and it’s 2.763Amps. The sixth and Seventh bytes are a
 minmum value, which multipled by the multiplier works out to 1.62Amps, 
and the eighth and ninth are the maximum which is 3.8Amps. Our value is 
between the min and max, so the test passes.</p>
<p>Easy right?<br>
0181: Min: 1.62Amps, Max: 3.8Amps, Value: 2.763Amps, Test: Passed</p>And so on and so forth. I listed a bunch of what the parse bytes meant on mp3car, and I&#39;m tracking my progress on my own website/blog to help keep track of my experimentation. <br>
<br>All three of those messages are MFG proprietary messages, so we haven&#39;t a clue what they&#39;re measuring. But we know they pass. That being said, a lot of the returns are standard tests, those three happen to not be.<br>
<br>In playing around, I&#39;ve found that mode 6 could actually potentially help you diagnose down to the component level a fault in the system. (Misfire counts on a particular cylinder + bad o2 sensor voltages == replace o2 sensor and check spark?) All in all very useful stuff... implemented in a lot of pay-for programs. I think having obdsim simulate it would be greatly beneficial in letting more open source applications take advantage of this information and implement it in their own applications. What you could do, is return a list of &quot;standard&quot; tests with a randomized value, either passing, or not (both would be beneficial, as well as the ability to set what&#39;s not passing), to allow users&#39; applications to trigger warnings on a failure of a particular test/component.<br>
<br>Once I get more information on mode 6 for non can vehicles, I&#39;ll try to let you know... A lot of rambling and information, I know sorry.<br><br><div class="gmail_quote">On Thu, Dec 22, 2011 at 10:17 AM, Gary Briggs <span dir="ltr">&lt;<a href="mailto:chunky@icculus.org">chunky@icculus.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">One of the things on my list for a while has been other modes<br>
<br>
I already have different stuff in place for different modes in obdsim, I<br>
just haven&#39;t, you know, implemented it yet.<br>
Fundamentally, I still am not entirely sure what mode 6 *is*. Could you<br>
clarify a little?<br>
<br>
In the meantime, I&#39;m out of town another week. I&#39;ll be on IRC again when<br>
I&#39;m back. If you let me know some idea of what mode 6 is and how it&#39;s<br>
used, I&#39;ll ponder how to make it work with obdsim<br>
<br>
Gary<br>
<div><div class="h5"><br>
On Thu, Dec 22, 2011 at 04:15:10AM -0800, Michael Carpenter wrote:<br>
&gt; So,<br>
&gt;<br>
&gt; I&#39;ve been rambling about this for a short time now, but being as Chunky_Ks<br>
&gt; hasn&#39;t been on irc ill post it here. Obdsim should support mode 6 requests.<br>
&gt; I can work with you on what is expected, I recently got it working in<br>
&gt; libobd, so I don&#39;t think it would be difficult in obdsim. The only question<br>
&gt; is how do you handle ecu type for headers? A CAN ecu will reply to a mode 6<br>
&gt; request differently than a non CAN ecu, so it makes a difference.<br>
&gt;<br>
&gt; - Michael Carpenter<br>
<br>
</div></div>&gt; _______________________________________________<br>
&gt; obdgpslogger mailing list<br>
&gt; <a href="mailto:obdgpslogger@icculus.org">obdgpslogger@icculus.org</a><br>
&gt; <a href="http://icculus.org/mailman/listinfo/obdgpslogger" target="_blank">http://icculus.org/mailman/listinfo/obdgpslogger</a><br>
<br>
_______________________________________________<br>
obdgpslogger mailing list<br>
<a href="mailto:obdgpslogger@icculus.org">obdgpslogger@icculus.org</a><br>
<a href="http://icculus.org/mailman/listinfo/obdgpslogger" target="_blank">http://icculus.org/mailman/listinfo/obdgpslogger</a><br>
</blockquote></div><br>