Mark, I'm sure it was a full reset, and they still occur frequently, but only while charging it seems. I just checked RCON and STKPTR: it seems the resets are due to watchdog timeouts (TO). Do I need to instrument the code with some checkpoints (storing checkpoint ids into a persistent feature) to track down where this occurs, or is there an easier way? Do you have a suggestion where to go hunting first? It's most probably not in my Twizy code, as I've got no loop condition at all. Thanks, Michael PS: here's the RCON checking code for others trying to debug similar problems: Insert this right at the top of main() just after clearing sys_features[]: // DEBUG: save last reset reason in feature 7 (RCON bits inverted for readability): sys_features[7] = (~RCON) & 0x1f; if( STKPTRbits.STKFUL ) sys_features[7] += 32; if( STKPTRbits.STKUNF ) sys_features[7] += 64; // ...and clear RCON: RCONbits.NOT_BOR = 1; // b0 = 1 = Brown Out Reset RCONbits.NOT_POR = 1; // b1 = 2 = Power On Reset //RCONbits.NOT_PD = 1; // b2 = 4 = Power Down detection //RCONbits.NOT_TO = 1; // b3 = 8 = watchdog TimeOut occured RCONbits.NOT_RI = 1; // b4 = 16 = Reset Instruction => a feature dump will show the last reset reason. Am 12.11.2012 01:07, schrieb Mark Webb-Johnson:
Michael,
The feature #10 was somewhere we suspected was a problem, so added the record there. But, I too have never seen it fire. I was planning on removing the check for the next firmware.
The modem resetting, in GSM/GPRS outages, is normal and expected. But, the module should not reset under normal conditions. If you are seeing this, then it is either a code fault (an endless loop, most likely) or stack overflow, causing watchdog timer to fire.
When you say you saw the module reset, are you sure it wasn't a modem reset? If the module resets you'll get the firmware version being blinked out. Modem resets are highlighted by both red and green leds being constant on for a second or two.
Regards, Mark.
On 12 Nov, 2012, at 12:56 AM, Michael Balzer wrote:
Mark,
it doesn't seem the old Android App supports setting arbitrary features? I currently have to use SMS to set them.
I need these configs to be persistent as the module does quite a lot of resets at the moment, it seems especially if GPRS connectivity is bad.
I just had to take yet another persistent feature slot (13) in use to store my last known range due to permanently losing my range calculations during charge.
I tried to sort out why I get those resets and found the // Temporary kludge to record in feature #10 the number of times this happened ...but my value was not increased, even after I watched the module doing a reset.
Is there another condition for an automatic reset? I found none...
I thought feature slots are especially meant for this kind of user configuration. I could avoid using feature slots at all if a) the module would only do a reset if absolutely needed (so I don't lose my local configuration) and b) I can introduce a car specific command to set my local configuration. Or is there another way?
Regards, Michael
Am 11.11.2012 13:35, schrieb Mark Webb-Johnson:
Michael,
I guess you need these as features, so they can be set from the App?
If so, can they be put as experimental at the moment? Those won't survive a reboot, but are less impacting. I suggest 0x05, 0x06 and 0x07.
For MAXRANGE, that is fine. Make it a permanent feature, 0x0D.
Regards, Mark.
On 11 Nov, 2012, at 7:42 AM, Michael Balzer <dexter@expeedo.de <mailto:dexter@expeedo.de>> wrote:
Mark,
I just checked in my latest Twizy updates:
https://github.com/dexterbg/Open-Vehicle-Monitoring-System/commit/0a70e483ba...
These contain two extensions that could be generally useful:
1) As the Twizy "ideal" range varies widely depending on your driving, geography and environment, I implemented a feature for that config.
2) If I just need an intermediate charge for a certain SOC or range (to get home for example), I can now activate an alert for one or both values.
I used the next three free feature slots for these:
#define FEATURE_SUFFSOC 0x0A // Sufficient SOC feature #define FEATURE_SUFFRANGE 0x0B // Sufficient range feature #define FEATURE_MAXRANGE 0x0C // Maximum ideal range feature
I know, feature slots are getting full... what do you think?
Regards, Michael
-- Michael Balzer * Paradestr. 8 * D-42107 Wuppertal Fon 0202 / 272 2201 * Handy 0176 / 206 989 26
<dexter.vcf>_______________________________________________ OvmsDev mailing list OvmsDev@lists.teslaclub.hk <mailto:OvmsDev@lists.teslaclub.hk> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
OvmsDev mailing list OvmsDev@lists.teslaclub.hk <mailto:OvmsDev@lists.teslaclub.hk> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
-- Michael Balzer * Paradestr. 8 * D-42107 Wuppertal Fon 0202 / 272 2201 * Handy 0176 / 206 989 26
<dexter.vcf>_______________________________________________ OvmsDev mailing list OvmsDev@lists.teslaclub.hk <mailto:OvmsDev@lists.teslaclub.hk> http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.teslaclub.hk http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
-- Michael Balzer * Paradestr. 8 * D-42107 Wuppertal Fon 0202 / 272 2201 * Handy 0176 / 206 989 26