Unable to achieve expected Boron LTE HIBERNATE current

Apologies if this is adequately addressed elsewhere in the Forum, but I can’t find a solution/answer that matches what I’m expecting. I’ve read many threads dealing with higher than expected sleep currents with earlier versions of Device OS (pre-1.5), but I don’t see much traffic now on the topic.

Using the below code, targeting deviceOS 3.0.0 I measure 610uA in HIBERNATE. This is roughly 6x what I expected based on the documentation for the Boron LTE.

Current is measured as a 17mV (as measured with Fluke 115 multimeter in mV mode) drop across a 27 Ohm high-side resistor (measured to be 27.9 Ohms) to Li+, with my power supply providing 4V.

Am I leaving out something critical in my sleep setup?

When I pull EN low, current drops to 86uA, leading me to believe current is being consumed by things hanging off the VSYS or 3V3 bus, and not the BQ24195L boost, but I’m unable to find what else I can shut off programmatically.

Any thoughts would be appreciated.

SYSTEM_MODE(SEMI_AUTOMATIC);

SystemSleepConfiguration config;

void setup() {
  pinMode(D2, INPUT); //270k pullup on D2

  config.mode(SystemSleepMode::HIBERNATE)
      .gpio(D2, FALLING);
}

void loop() {

  Particle.disconnect();
  Ethernet.off();
  BLE.off();
  NFC.off();
  Cellular.off();

  //make sure Boron is alive
  pinMode(D7, OUTPUT);
  digitalWrite(D7, HIGH);
  delay(500);
  digitalWrite(D7, LOW);
  delay(500);
  digitalWrite(D7, HIGH);
  delay(500);
  digitalWrite(D7, LOW);
  delay(500);

  pinMode(D7, INPUT); //no leakage current out of D7
  System.sleep(config);
}

You don’t need the above. Sleep from LTS onwards takes care of shutting everything off reliably.

pinMode(D2, INPUT);

This is not required as well. when you set Sleep to using D2 as the pin, it auto-sets the pin as an Input with a pull-up.

I don’t recommend high-side current measurements - and using a Multimeter won’t give you accurate results either. My power tests last week confirmed the measurements on 3.1 to reflect that of the datasheet. I’ll re-run to test your particular code and report back.