You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mynewt.apache.org by Matt Hammond <ma...@google.com.INVALID> on 2019/02/28 19:10:55 UTC

Trouble achieving low power bluetooth communication

Hi!

I'm new to MyNewt/Nimble and am having trouble achieving low power when
using the BLE peripheral example application. I'm using the NRF52-DK
devkit. I've disabled the UART and gotten current down to roughly 250 uA
between advertisements (it is actually somewhat periodic, exhibiting little
peaks to about 250 uA with about a 150-200 uA DC offset), but am having a
hard time getting down to the 1-2 uA I would expect between advertisements.
I suspect a peripheral or alternate clock is being enabled unexpectedly.
The device appears to be low power until ble_gap_adv_start() is called in
main.c.

I suppose my first question to get out of the way is:

1. Is it possible to run a BLE peripheral application using MyNewt/Nimble
and achieve roughly 1-2 uA background current when not advertising? Or does
the stack require some crystal source/peripheral that makes this not
possible?

2. What's the easiest way to see specific register contents while using
MyNewt? This should help me see what peripherals are enabled.
3. Could this be related to logging functions? I have the UARTs disabled in
the syscfg files but there are still a lot of log calls in the code that
have me worried. Is there an easy way to be sure logging is turned off?

Any help or directions where to start would be greatly appreciated.

Thanks,

Matt

Re: Trouble achieving low power bluetooth communication

Posted by Amr Bekhit <am...@gmail.com>.
Hi Matt,

Please see my email thread here:

https://lists.apache.org/thread.html/c8cb49947625af476612b79b3c1a1e5db31fa52c75132ffb63dc81e5@
<dev.mynewt.apache.org>

You most likely have the HFXO turned on due to a timer.

Amr

On Thu, 28 Feb 2019, 11:40 p.m. Matt Hammond,
<ma...@google.com.invalid> wrote:

> Hi!
>
> I'm new to MyNewt/Nimble and am having trouble achieving low power when
> using the BLE peripheral example application. I'm using the NRF52-DK
> devkit. I've disabled the UART and gotten current down to roughly 250 uA
> between advertisements (it is actually somewhat periodic, exhibiting little
> peaks to about 250 uA with about a 150-200 uA DC offset), but am having a
> hard time getting down to the 1-2 uA I would expect between advertisements.
> I suspect a peripheral or alternate clock is being enabled unexpectedly.
> The device appears to be low power until ble_gap_adv_start() is called in
> main.c.
>
> I suppose my first question to get out of the way is:
>
> 1. Is it possible to run a BLE peripheral application using MyNewt/Nimble
> and achieve roughly 1-2 uA background current when not advertising? Or does
> the stack require some crystal source/peripheral that makes this not
> possible?
>
> 2. What's the easiest way to see specific register contents while using
> MyNewt? This should help me see what peripherals are enabled.
> 3. Could this be related to logging functions? I have the UARTs disabled in
> the syscfg files but there are still a lot of log calls in the code that
> have me worried. Is there an easy way to be sure logging is turned off?
>
> Any help or directions where to start would be greatly appreciated.
>
> Thanks,
>
> Matt
>