<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:"Andale Mono";
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Sprechblasentext Zchn";
margin:0cm;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";}
span.E-MailFormatvorlage17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.E-MailFormatvorlage18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.SprechblasentextZchn
{mso-style-name:"Sprechblasentext Zchn";
mso-style-priority:99;
mso-style-link:Sprechblasentext;
font-family:"Tahoma","sans-serif";}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:916596858;
mso-list-template-ids:88751322;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1
{mso-list-id:1168641262;
mso-list-template-ids:1598453526;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2
{mso-list-id:1305886536;
mso-list-template-ids:-927174126;}
@list l2:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:36.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l2:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:72.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:"Courier New";
mso-bidi-font-family:"Times New Roman";}
@list l2:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:108.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level4
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:144.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level5
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:180.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:216.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level7
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:252.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level8
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:288.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
@list l2:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:324.0pt;
mso-level-number-position:left;
text-indent:-18.0pt;
mso-ansi-font-size:10.0pt;
font-family:Wingdings;}
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=DE-CH link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Sorry Mark<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I found and read your <u>„notes on cool down on TR“</u> an now I understand …</span><span style='font-size:11.0pt;font-family:Wingdings;color:#1F497D'>J</span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Sorry & Greets, Piotr<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=DE style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span lang=DE style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> ovmsdev-bounces@lists.teslaclub.hk [mailto:ovmsdev-bounces@lists.teslaclub.hk] <b>Im Auftrag von </b>911carrera4<br><b>Gesendet:</b> Dienstag, 24. September 2013 22:32<br><b>An:</b> 'OVMS Developers'<br><b>Betreff:</b> Re: [Ovmsdev] v2.5.3 Call for Testing<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hi Mark<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Just flashed my OVMS v2 with the new 2.5.3 firmware. And… Something strange happend. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>After connecting the OWMS box I set the feature 13 to 255 and speedo to 5.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>The car was already in the mode „charging“ then (standard 10 A)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>After connecting the box it swifted to „performance“, than to „range“ by itself!<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I tried to change the mode via App. That went well, but after 5 secs it changed to performance again, than range. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I tried several times, I also reset the box, but the problem wasn’t to solve.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Now I’m back to version 2.3.2…<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Any idea what happened?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Greets,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Piotr<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=DE style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span lang=DE style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> <a href="mailto:ovmsdev-bounces@lists.teslaclub.hk">ovmsdev-bounces@lists.teslaclub.hk</a> [<a href="mailto:ovmsdev-bounces@lists.teslaclub.hk">mailto:ovmsdev-bounces@lists.teslaclub.hk</a>] <b>Im Auftrag von </b>Mark Webb-Johnson<br><b>Gesendet:</b> Mittwoch, 18. September 2013 15:39<br><b>An:</b> OVMS Developers<br><b>Betreff:</b> [Ovmsdev] v2.5.3 Call for Testing<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>OK. I've just committed v2.5.3 and pushed to github. I've also tagged it (as v2.5.3) and upload pre-built .hex files in the vehicle/firmware directory.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Short story: v2.5.3 is unlikely to blow up your car, but has probably got lots of bugs, and I need your help testing to find those bugs and fix them.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Big caveat: this is testing code, please don't use ACC if you _really_ need that charge to get to work / school / the beach / wherever. Don't blame me if your car doesn't start the charge as scheduled.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Warning: this is a long mail.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Firstly, the v2.5.x change log:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><blockquote style='margin-left:30.0pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'><div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'>2013-09-18 2.5.3 Firmware 2.5.3</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Updates to thinkcity</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Remove DIAG and add ACC to V1_Production build config</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Remove InternalGPS from V2_TR_Production build config, as not required</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Cooldown: safety check (only recycle if charging), and revise cooldown current to 13A</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Support definition of location in SMS commands</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tesla Roadster: HVAC#1 should be 0x8F not 0x87</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Logging: Don't reserve a log slot if the respective logging option is disabled</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Improve cooldown status reporting on SMS STAT</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tidy-up of minSOC</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Move chargelimit charge stop to common vehicle.c function (not acc)</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tesla Roadster: Updates to Tom's charge-time-predictor, with thanks</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Log cooldown charges as mode=5, and fix excessive-logging-bug related to cooldown cycles</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Logging: Send log messages one-by-one, to avoid buffer overflows</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## ACC: Number homelinks from 1..3</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tesla Roadster: support for chargelimits</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Make SMS "RESET" reset the module completely</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Complete rework and expansion of checkpoint numbers</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Stop charge after cooldown, if no subsequent charge requested</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Report CAC as part of charge log record</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Typos in acc for net_state_enter</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Show debug checkpoint, for DIAG SMS with debugcrash</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Support vehicle_fn_minutestocharge</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Add a timezone parameter (-)HH:MM</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## ACC: Support timed charges</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Move car_cooldown_wascharging to global, and make use of it in ACC</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Introduce some delays to allow car to wake up</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'>2013-08-27 2.5.2 Firmware 2.5.2</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Updates to vehicle_thinkcity.c (getting to a pretty usable vehicle module)</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Make car_tbattery signed integer, and integrate thinkcity changes</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Only report range and soc limits if >0</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Merge thinkcity changes: Think City AC-line voltage/current in SMS STAT SMS migrated from standard handler to vehicle_thinkcity.c</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tesla Roadster: Don't stop charge after cooldown, if previously the car was already charging</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Log cooldown charges that become normal charges as two separate charges</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tidy up diag, by removing temp test code T1 T2 T3</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Create individual configs for TeslaRoadster and RenaultTwizy (to allow all features for these cars)</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Add TRACK (type XX) vehicle that just tracks GPS</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## string_to_mode utility function</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Rework vehicle inclusions. Tesla Roadster, Renault Twizy and Volt/Ampera are production. Everything else is experimental</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Add experimental vehicle Kyburz DXP</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Add HVAC message details</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Support HVAC bit in car_doors5, and cooldown cycles</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Range and charge limits handled by ACC</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Basic ACC implementation, but without timed charges</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'>2013-08-16 2.5.1 Firmware 2.5.1</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Framework to build logging module in experimental modes</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## FIsLatLongClose utiliy function (courtesy of Tom Saxton)</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Twizy: Mi/Km conversions updated to new functions</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Switch to use macros, for clarity and maintainability</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## ACC integration to build environment</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Parameter support for base64 encoded parameters</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## utils support for mode display</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## ACC support for net_sms</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Switch logging system to use new "h" historical data submission, with acknowledgement</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Go from 4->6 log records, based on free space</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tesla Roadster: Notify server if charge limit is changed</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tesla Roadster: Notify server if charge mode is changed</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## v2.5.1 protocol guide</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Add core support for cooldown</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Tesla Roadster support for cooldown</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Stub implementation, with basic functionality, for ACC</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Zero logging records on init, plus other safety checks</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Only initialise logging on a normal power up</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Standardise 3 diag tests: T1, T2 and T3</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Only send logging msgs if link is connected</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Fix logging prefix and some logging tests</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Revisions to CAR_IS_CHARGING logic</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Misc bug-fixes for logging</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Report distance in miles (rather than 10ths of miles)</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Remove dr++ and cr++ sequence numbers, as not required</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Make ACC commands case insensitive</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Fix bug acknowledging log record #0</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Move digital speedo feature (Tesla Roadster) from experimental to fully supported, and implement opt-in feature bits</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Honour opt-in flags for logging</span><o:p></o:p></p></div><div><p class=MsoNormal><span style='font-family:"Andale Mono","serif"'> ## Only report debug crash reason if not normal power up, and only report once</span><o:p></o:p></p></div></div></blockquote></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>As you can see, a lot has changed. The key points are:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo1'>Some restructuring of the build targets:<o:p></o:p></li></ul><div><ul type=disc><ul type=circle><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo1'><span style='font-family:"Andale Mono","serif"'>V1_production.hex V1 Hardware Module, production firmware</span><o:p></o:p></li></ul></ul></div><ul type=disc><ul type=circle><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo1'><span style='font-family:"Andale Mono","serif"'>V2_experimental.hex V2 Hardware Module, experimental firmware</span><o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo1'><span style='font-family:"Andale Mono","serif"'>V2_production.hex V2 Hardware Module, production firmware</span><o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo1'><span style='font-family:"Andale Mono","serif"'>V2_RT_production.hex V2 Hardware Module, Renault Twizy full firmware</span><o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level2 lfo1'><span style='font-family:"Andale Mono","serif"'>V2_TR_production.hex V2 Hardware Module, Tesla Roadster full firmware</span><o:p></o:p></li></ul></ul><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo1'>Support for LOGGING (charge and drive)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo1'>Support for ACC (Advanced Charge Control) - Tesla Roadster only at the moment<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l2 level1 lfo1'>Lots of other little nice fixes and enhancements<o:p></o:p></li></ul></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Apart from overall reliability testing (making sure it is stable in the cars), the two things I need help with are the LOGGING and ACC functions.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><b><u>[1] Logging</u></b><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The logging code is enabled by setting opt-in feature (#13) bit 1 (to log drives) and/or bit 2 (to log charges). Or, you can just set feature #13 to 255 and opt-in to everything :-)<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Once you've opted in, whenever you complete a charge or drive, the car will submit a summary record to be stored on the server. You can then use the prototype HTTP API, or perl client, to retrieve those records for your own purposes.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Note that there is a privacy concern here, as both record types (drive and charge) store GPS locations - this is the reason why it is opt-in.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The testing I need done is just to ensure that this works for you, and that the resulting logged drives/charges match what you are expecting. It would also be useful to confirm if this works on all supported cars (which it should).<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><b><u>[2] Advanced Charge Control</u></b><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The Advanced Charge Control system is designed to supplement the (aka take over from) vehicle's own charge scheduling. It should support any vehicle with charge control, but at the moment that means only Tesla Roadster. It has some pretty sophisticated features. For the moment, it is setup via SMS, but in future we will allow smartphone Apps to do this. Once setup, it runs autonomously, and doesn't even require a cellular connection.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>ACC works from the concept of a 'charge location'. This is a geofenced location that is used for charging, and you can configure up to 4 of these (numbered #1 through #4). To define the car's current location as a 'charge location', sms "ACC HERE" to the car, and it will allocate a free slot and reply to you with it. You can use "ACC NOTHERE" to clear the current location.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>If you want to clear a particular ACC location, you can sms "ACC CLEAR n" (to clear one location), or "ACC CLEAR" (to clear all locations).<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>You can show the ACC details for the current location by sms "ACC STAT" (or for a particular location by "ACC STAT n" - which is very useful if you have crappy cellular connectivity like I do).<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The ACC parameters for a particular location are configured with the "ACC PARAMS" SMS. You can list a location number (1, 2, 3 or 4) as the first parameter - or don't specify location if you just want to configure the current location the car is at. After 'ACC PARAMS", you can set the parameters you would like, from the following:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>COOLDOWN - perform a cooldown charge (13A range mode, with cooling cycles) when the car is plugged in at this ACC location<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>NOCOOLDOWN - don't do a cooldown charge (default)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>HOMELINK n - activate homelink when the vehicle drives to within 100m of an ACC location (the idea is to open our garage door / gate automatically as you approach)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>NOHOMELINK - don't activate homelink (default)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>CHARGEPLUGIN - charge the car on plugin (but after cooldown, if enabled)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>CHARGEAT HH:MM - schedule charge to start at the specified time (hours:minutes, 24hour clock)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>CHARGEBY HH:MM - schedule charge to complete by the specified time (hours:minutes 24hour clock)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>NOCHARGE - don't charge (default)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>LIMIT n - limit charge current to n Amps - must be specified for all CHARGE* actions<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>MODE m - set charge mode (where "m" is STA(NDARD), STO(RAGE), RAN(GE) or PER(FORMANCE)) - must be specified for all CHARGE* actions<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>STOPRANGE r - stop charge when range "r" is reached (specified in vehicle units, set to 0 (default) to not limit).<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo2'>STOPSOC s - stop charge when SOC "s" is reached (specified as a percentage, set to 0 (default) to not limit).<o:p></o:p></li></ul></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The actions to take at a particular ACC location must be enabled with "ACC ENABLE" (or "ACC ENABLE n") before they will work. You can also disable with "ACC DISABLE" (or "ACC DISABLE n").<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>If you are using CHARGEAT or CHARGEBY, you need to specify the timezone of the vehicle. This is parameter #23 and is specified as HH:MM offset from GmT (with an optional leading "-" if west of Greenwich).<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The default temperature limit for cooldown is 31Celcius, and time limit is 60 minutes. If you want to change these, you can set parameter #15 to templimit:timelimit (e.g.; "31:60").<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Note that you can also cooldown manually, while charging, with the SMS command "COOLDOWN", and see the status with SMS "STAT".<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I've spent quite some time testing CHARGEPLUGIN, COOLDOWN, LIMIT, MODE, STOPRANGE and STOPSOC - hopefully those are ok now, but the control logic does need wider testing. I've spent almost no time testing CHARGEAT and CHARGEBY. I've also been unable to test HOMELINK and would be very interested to see if that works.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><b><u>Some notes on cooldown on Tesla Roadster</u></b><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The cooldown algorithm is to start a range mode charge at 13Amps, and to monitor the HVAC system of the car. Once the HVAC starts, runs for some time, then stops, we call it a 'cooling cycle'. We keep a record of how many such cycles have occurred.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Once we detect that the HVAC has stopped, we try to start it again. The logic at the moment is to switch to performance mode for ten seconds, then back to range mode, once every minute until the HVAC starts again. The _best_ way of starting the HVAC is to stop and start the charge, but that is painful on the contactors, so we don't do it. Switching Range->Performance->Range seems to be the second best, but I remain unconvinced that it makes much difference. In Hong Kong summer weather, I get one cooldown cycle every ten minutes or so. I can drop 6 to 8 celcius in one hour.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>The cooldown will stop after either the desired temperature is hit (based on the temperature of the hottest brick in the battery) or the cooldown has been ongoing for the time limit.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><b><u>Conclusions</u></b><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I'm happy that the code is reasonably stable now, but really need help testing this in a larger number of cars. If you do see a problem, please get me (by eMail to OVMS developers mailing list, or my personal address):<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><ul type=disc><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3'>Output of "SMS STAT" for the specified location<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3'>Your vehicle id<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3'>Output of base64 parameter string (from the cellphone app) - copy-and-paste<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3'>Date/Time you entered the ACC location (with timezone)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3'>Date/Time you plugged in at the ACC location (with timezone)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3'>In the smartphone app, call up the Features and Parameters screens (so the server logs those, and I can check)<o:p></o:p></li><li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo3'>Description of the problem you have<o:p></o:p></li></ul></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Please also share success stories. It is good to know what works.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Regards, Mark.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>