Figure out what woke the device up

Thanks for helping here Hugo!
Modified code:
imp.configure(“sleeping server debug”, [], []);
function scanonce()
{
server.show(“Im Awake”);
}
function onidle()
{
server.show(“Going To Sleep”);
server.sleepfor(120);
}
scanonce();
server.log(“time=”+time());
imp.wakeup(0.1, onidle);

Output (no sleep delay):
November 13, 2012 6:36:38 PM PST: Device booting
November 13, 2012 6:36:38 PM PST: Device configured to be "sleeping server debug"
November 13, 2012 6:36:38 PM PST: show: Im Awake
November 13, 2012 6:36:38 PM PST: time=1352860598
November 13, 2012 6:36:38 PM PST: show: Going To Sleep
November 13, 2012 6:36:38 PM PST: sleeping until 1352860722000
November 13, 2012 6:36:38 PM PST: Power state: online=>asleep
November 13, 2012 6:36:39 PM PST: Power state: asleep=>online
November 13, 2012 6:36:39 PM PST: Device booting
November 13, 2012 6:36:39 PM PST: Device configured to be "sleeping server debug"
November 13, 2012 6:36:39 PM PST: show: Im Awake
November 13, 2012 6:36:39 PM PST: time=1352860599
November 13, 2012 6:36:39 PM PST: show: Going To Sleep
November 13, 2012 6:36:39 PM PST: Power state: online=>offline
November 13, 2012 6:36:40 PM PST: Power state: offline=>online
November 13, 2012 6:36:41 PM PST: Device booting
November 13, 2012 6:36:41 PM PST: Device configured to be "sleeping server debug"
November 13, 2012 6:36:41 PM PST: show: Im Awake
November 13, 2012 6:36:41 PM PST: time=1352860601
November 13, 2012 6:36:41 PM PST: show: Going To Sleep
November 13, 2012 6:36:41 PM PST: sleeping until 1352860725000
November 13, 2012 6:36:41 PM PST: Power state: online=>asleep
November 13, 2012 6:36:42 PM PST: Power state: asleep=>online
November 13, 2012 6:36:42 PM PST: Device booting
November 13, 2012 6:36:42 PM PST: Device configured to be "sleeping server debug"
November 13, 2012 6:36:42 PM PST: show: Im Awake
November 13, 2012 6:36:42 PM PST: time=1352860602

Using spark fun imp breakout.
No I/O pins connected at this moment
15V, 2A HP bench supply set to 10V
Sometimes input current peaks at 49mA

That’s indeed very strange, the wake time is being set correctly but for some reason it’s waking immediately.

Have you got any other devices to plug it into to check? I’d like to rule out a power supply issue as the current drops down when the imp sleeps.

Hey Hugo,
My pal brought over an extra Imp card, I plugged it in, flashed it, and it runs fine!
Something is up with my Imp I guess, kinda frustrating. Can I send it back for replacement?

Output from new Imp (8 second sleep):
November 14, 2012 2:27:36 PM PST: Device booting
November 14, 2012 2:27:36 PM PST: Device configured to be "sleeping server debug"
November 14, 2012 2:27:36 PM PST: show: Im Awake
November 14, 2012 2:27:36 PM PST: time=1352932056
November 14, 2012 2:27:36 PM PST: show: Going To Sleep
November 14, 2012 2:27:36 PM PST: Power state: online=>offline
November 14, 2012 2:27:49 PM PST: Power state: offline=>online
November 14, 2012 2:27:49 PM PST: Device booting
November 14, 2012 2:27:49 PM PST: Device configured to be "sleeping server debug"
November 14, 2012 2:27:49 PM PST: show: Im Awake
November 14, 2012 2:27:49 PM PST: time=1352932069
November 14, 2012 2:27:49 PM PST: show: Going To Sleep
November 14, 2012 2:27:49 PM PST: sleeping until 1352932081000
November 14, 2012 2:27:49 PM PST: Power state: online=>asleep
November 14, 2012 2:28:02 PM PST: Power state: asleep=>online
November 14, 2012 2:28:03 PM PST: Device booting
November 14, 2012 2:28:03 PM PST: Device configured to be "sleeping server debug"
November 14, 2012 2:28:03 PM PST: show: Im Awake
November 14, 2012 2:28:03 PM PST: time=1352932083

I’m not sure that it’s a hardware issue, though that is obviously possible. Can you try deleting the block in the planner then removing and reinserting the card? This clears out metadata associated with the instance and might help - though I’m not quite sure how.

If that doesn’t work then contact support for a replacement.

So, every time the imp boots, it’s told by the server what time it is. Does your suspect imp keep time correctly if it stays awake? If you have an imp.wakeup that fires every 10s and does server.log(time()), does it go up by about 10 each time?

Peter

Good point - please try some simple code like this:

imp.configure(“time test”, [] []);

function showtime() {
imp.wakeup(10, showtime);
server.log("time = "+time());
}

showtime();

…you should see the time incrementing by 10 each time as Peter says.

Thanks guys,
tried clearing the metadata, no change:
The “bad” imp still loops as before, “good” imp behaves properly (as expected).
Executed time test code above, ran with increments of about 10.5 seconds on both imps, indistinguishable results, both seem to pas this test.

Ok, sounds like your imp has an RTC crystal issue most likely… we’ll PM you with info.