Boron: Deep sleep current increased in 1.2.1

I started testing 1.2.1 today and saw an increase in sleep current. I whipped up the following code and tested it on two brand new Borons. One running 1.1.0 and one running 1.2.1.

Version 1.2.1: 10 mA
Version 1.1.0: 700 uA

Test Code:

#include "Particle.h"

SYSTEM_MODE(MANUAL);

void setup() {
    Mesh.off();
    Cellular.on();
    Particle.connect();
}

void loop() {
    if (Particle.connected()) {
        Particle.publish("conn", "conn");
        delay(2000);
        Cellular.off();
        delay(5000);
        System.sleep(SLEEP_MODE_DEEP);
    }
}

2 Likes

I’m using 1.3.0 and had to use the code below to get into Sleep Stop Mode successfully. The delays were required, just calling system.sleep was not enough to get into sleep mode with 1mA sleep current and .7mA deep sleep current.

bool HaveWeTurnedOffModemYet = 0;


if (HaveWeTurnedOffModemYet == 0) {disconnectFromParticle();}
  //disconnectFromParticle(); / This by it's self works for putting Boron into System.sleep mode. 1mA Sleep. 
  System.sleep({}, {}, 60); // Put the device into stop mode with wakeup using RISING edge interrupt on D1 pin or wakeup after 60 seconds whichever comes first


bool disconnectFromParticle()
{
  Particle.disconnect();
  waitFor(notConnected, 15000);                                     
  Cellular.off();
  delay(2000);                                                    
  return true;
  HaveWeTurnedOffModemYet = 1;
}

bool notConnected() {
  return !Particle.connected();                             
}
1 Like

Thank you, RWB. I’ll give it a shot.

1 Like

Just a heads up that we had a short internal conversation about this topic… @avtolstoy will be leading an effort to make some improvements to Gen 3 sleep modes in the next release.

4 Likes

Are we talking about lower power Sleep Modes?

1 Like

Hi Will,
Were there any updates on this?

Updated sleep modes are coming soon. This will dramatically lower the Boron sleep current; it should be around 140 uA in SLEEP_MODE_DEEP.

2 Likes

That’s great to hear. Any tentative ship date of this new firmware? I’m testing an RTC to toggle the pin to pull it out of deep sleep and am about to cut the trace and jumper to EN to shut it down completely as that brings it from 770 uA to 77 uA. We’ll be doing a bulk build of these boards soon and if I can get away with not doing it via EN, I’d prefer that.

1 Like

Should be mid-January 2020.

1 Like

Has the 140uA sleep mode firmware been released yet?

Device OS 1.5.0 should be released today (Monday, February 3, 2020).

3 Likes

Any word on if the sleep current has been improved and lowered on the Boron when in Sleep mode that allows timed wake-up.

1 Like

Is 1.5.0rc.2 supposed to have the 140µA sleep? I still seem to be getting ~700µA (rc.1 as well)

Scheduled for 1.5.0 Final

Try this:

powerModemOff();

SystemSleepConfiguration config;

config.mode(SystemSleepMode::HIBERNATE)

      .gpio(D0, RISING).gpio(D3, RISING);

System.sleep(config);

It’s not all done yet. Modem off might not work at the moment.
134uA is the reported current draw.

powerModemOff() doesn’t compile for me on WebIDE, as you suspected.

I’m not seeing any difference in Sleep Current on 1.5.0-rc2 verses previous.
Still ~ 2.7 mW ( 707µA @ 3.77V Li-Po , and 660 µA @ 4.10V Li-Po) for Hibernate in Manual Mode, never requesting to turn on the Modem.

Ah, that’s it then.
There is a patch to fix it, but it’s not been worked into the code.
It will be in 1.5 proper though.

1 Like