This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

SDK14, S132 v5.0.0, nRF52832: Why is BLE advertising current so high according to the PPK?

I recently got the Power Profiling Kit set up with the Power Profile 2.0.0 desktop software on OSX to measure current of my custom board. Sleep current for the whole board measures approximately 8uA, which is right in line with my expectations based on measurements with a high precision multimeter. However, I immediately noticed that my current while advertising is much higher than I expected it to be based on the documentation and the online power estimator (https://devzone.nordicsemi.com/power/). Here's what I measure:

At 0dBm transmit power, I expect an average of 3.036mA over 4.644 milliseconds based on the online estimator, but instead the PPK measures 8.574mA average over 3.260 milliseconds. And there's an exceptionally high peak of 22.014mA at the very beginning.

At +4dBm, I expect an average of 3.604mA over 4.644 milliseconds based on the online estimator, but instead the PPK measures 10.638mA average over 3.659 milliseconds with a similar peak of 24.623mA at the beginning.

Is this expected? What might I be missing?

  • The power calculator is based on measurements with the DCDC active. Do you have DCDC components on your PCB, and have you activated it in the code?

    Are you able to capture a BLE event in the trigger window instead to get a better resolution?

  • Thanks- I figured at least part of it out. We have DCDC hardware, and I was under the impression that we had enabled DCDC. The developer that wrote the initial code did make a call to sd_power_dcdc_mode_set(NRF_POWER_DCDC_ENABLE) during initialization, but there were two issues. 1)  POWER_CONFIG_DEFAULT_DCDCEN wasn't set to 1 in sdk_config.h, and 2) the sd_power_dcdc_mode_set() call was being called before the softdevice was initialized. So I changed the setting in sdk_config.h and moved the sd_power_dcdc_mode_set() call to after softdevice initialization, and current during advertisement definitely dropped. Here are the before and after captures from the trigger window of the PPK.

    Edit: Actually I guess maybe the sdk_config.h setting doesn't matter if I explicitly call sd_power_dcdc_mode_set() after the softdevice is initialized?

    Without DCDC properly configured:

    With DCDC properly configured:

    So the average current dropped significantly (average 9.480mA for 3.016ms down to average 6.035mA for 2.163ms), but there's still that big 30mA spike at the beginning. As I understand it, high current spikes can be detrimental to batteries (especially coin cells) so I'd like to understand why it's there.

  • I'm not sure what the 30mA spike is, but I think the measurement resolution is very low on your plots, so then it's hard to tell. Are you able to get something that looks like this?

  • The resolution, both horizontal and vertical, looks very similar to me. I think our curves are just shaped very differently. Here's another capture zoomed in a bit to show dots on each sample.

    I'm guessing there's just something about my hardware implementation that's affecting the current curve, but I don't know enough about hardware design to know what it might be.

  • Ok I see. Can you please send me the schematics for the custom HW, then I can have a look.

Related