power consumption -- zephyr vs bare-metal

having just seen the announcment about the bare-metal SDK, i gave it a try using my "hello world" of BLE -- a minimal beacon app which i actually use to benchmark BLE platforms from multiple silicon vendors....

for sure, my bare-metal program image is much smaller than zephyr -- ~42K of code versus ~180K of code....  same target HW, of course -- the nRF54L15-DK

but for some reason, measuring current consumption shows the bare-metal version somewhat behind....

as a "baseline", here's a PPK capture of one advertising event:on my zephyr version:

and here's the same advertising event (same payload, same TX power, etc) using the bare-metal SDK:

(i've also done captures with my higher-precision joulescope js220....  same differences)

the extra time (and current consumption) seems to occur during the transmission itself....  there appears to be ~100us of **additional** TX time per packet TX in the bare-metal version -- accounting for the ~300us of additional event duration....

any ideas where i might have missed something??? 

  • Hi, just to explain here the large difference between the code sizes: The bare metal footprint should always include the SoftDevice NVM usage, which is 107.0 kB for s115_9.0.0-3.prototype as per the release notes (s115 release notes). So, the corresponding difference would be 149.0 kB vs ~180 kB, which is still notable but not as significant.

    I'm not entirely sure about the power consumption differences in your latest reply, but I would recommend testing the differences with the Power Profiling sample, as these are kept similar between nRF Connect SDK and the Bare Metal Option and the sample is optimized for lowest possible power consumption. This can be used to rule out some accidental differences in e.g., peripherals being powered in one version but not the other.

    You can also use the Board Configurator app from nRF Connect for Desktop to disable VCOMs to ensure they are not drawing power.

Related