Go Down

Topic: Doesn't wake up when powered by batteries (Read 923 times) previous topic - next topic

Meric

Hi there,

My MKRFOX1200 works properly when powered by USB, but doesn't wake up when powered by batteries.

the sleep function is quite normaly implemented by

Code: [Select]
LowPower.sleep(SLEEPTIME);

Sigfox.debug is disabled.
Code: [Select]
//SigFox.debug();

I don't see anything else that can interact with the sleeping mode / waking up.

=> Is anybody know the issue / know the trick ?

thanks ;)

Méric.

Andonoc

Hi,
I had a similar issue. Booting up by inserting the battery, one message was send and the device never wakes up.
I added a switch, then it works.
I dont know why but in my case it helps

Meric

A switch ? so you push the switch each time you want a message ?

Meric

OK, I test with a 3V stabilized power supply, it's works.
=> I assume that the batteries does not deliver enough power to keep the device alive (against the commercial speech)... It is disappointing.

Andonoc

No, a on off switch on the battery cable

Andonoc


Andonoc

Hi,
I had this issue with a lition cell and a 3.3v regulator, starting the module   by pushing the battery into the holder.
The module sends a message and then nothing.
For a few days this problem makes me crazy, i add bigger caps, change the regulator, the battery, and so on.
I dont remember why i add the switch, but with it everything works always fine. And i build more battery packs and i had never on this issue.
Its not intuitive, but very easy.
Maybe your problem is another, so im interested how you solve it.
Have a good evening

Meric

So if I understand :
- I have to add an ON/OFF switch in line in the batteries circuit
- I install the batteries
- I switch on... and then it will run properly ...?

OK, it is so easy to do, I will try that tomorrow... Even if I don't understand why ^^


nimasa

It would be good if you could post your code as well. But probably using this code will fix your issue:

Code: [Select]
in void setup() {
  LowPower.attachInterruptWakeup(RTC_ALARM_WAKEUP, dummy, CHANGE);
}


and at the end of your code, after loop(), put a dummy function, like this one:
Code: [Select]
void dummy() {
  volatile int ttt = 0;
}

Meric

Seems to work ^^
I must understand why !

Thank you, Nimasa. Have a nice day.

Go Up