I am trying to program a low-powered Bluetooth Low-Energy sensor using an nrf52810 microcontroller. I am trying to minimize power consumption when the sensor is idle. I have created a minimum code example to demonstrate my issue. This code simply enables the DCDC regulator and the external high-frequency crystal, then enters idle state with WFI. I have also uploaded the circuit schematic as a PDF in that same repository.
I was initially using Nordic's S112 SoftDevice, but have now removed it entirely from the device to isolate this issue.
When I enter idle mode using the WFI instruction, my power consumption is high (0.1mA - 1mA), but based on the nrf52810 datasheet (Page 53, Table 5.2.1.3), I expect a power consumption several orders of magnitude lower (0.0008mA):
When I enter System OFF mode, my power consumption is, as I expect, less than 1uA.
My question is: Why is my power consumption so high in idle mode? How can I achieve the much lower power consumption indicated in the datasheet, without using System OFF mode? (I do not have any external devices which could wake the chip after it enters System OFF mode)
Note: I do not have the tools or the accessible pins on my board to properly directly measure current consumption, so I am only able to estimate based on the discharge of the 1F supercapacitor that is used to power the entire board.
Note 2: Before estimating power usage, I re-flash the firmware, then reset the microcontroller by discharging and recharging the power capacitor, which should disable debug mode and enable proper sleep / System OFF mode.