How to put Particle Boron in deep sleep mode?

How do I put Particle Boron in deep sleep mode? I want to turn everything off from software to maximize battery life.


Hi @lowpower and welcome to the Particle community!
If you get lost with the docs mentioned by @Moors7, please ask questions and we’ll try to help.
Good luck with your low power project!

1 Like

I tried this sketch:

void setup() {
void loop() {

After I flashed it, the yellow LED above the USB still flashes and the power consumption is 20mA, so it’s not working. Any suggestions?

That yellow LED would be the charging indicator for the LiPo - unless the battery is fully charged, you should see some power draw from USB/VUSB but that’s not consumed by the sleeping controler.

How does your hardware setup look?
Also what device OS version have you got on your Boron and which version are you targeting with your application? (older versions had issues with putting the NCP to sleep)

Device OS: 0.9.0
I want to turn off everything and go to deep sleep so that the power consumption is < 10uA. That means turning off everything as much as possible. No LED should be on. I can power the board either from the USB or through the pins. Please help. Thanks.

I doubt you’ll get the boron below 10µA.
AFAICT the minimum you’d be looking at would be by pulling EN low which - according to the datasheet - would give you about 70µA

But that would not be an option without external circuitry.

1 Like

The lowest I’ve been able to get with a Boron in sleep (not deep sleep) is 0.997mA. I found going into the manual mode helps bring the current down from around 10mA to my new number. Just call SYSTEM_MODE(MANUAL); before setup.

I’m looking forward to an all in one solutions, like Boron that would be able to be powered from AA batteries for at least a year without external circuitry.

I also took some measurements with a boron and was getting about 1mA - consistent with your data.
This seems too high.

I’m running


Here is the function I call before calling System.sleep

bool disconnectFromParticle()
  waitFor(notConnected, 15000);                              ;
  return true;

bool notConnected() {
  return !Particle.connected();