SOLVED nRF52810 module high current, wakeup every 26ms


I'm using a module based on the nRF52810, the Fanstel BT832A. I'm running the basic "ble_app_beacon" firmware from the "nRF5_SDK_14.2.0_17b948a" SDK with a few changes:

  1. I have no external low frequency clock so using the RC with CTIV on 16 and TMP on 2 as recommended.
  2. It's advertising every 2 seconds
  3. I created a 'CUSTOM' board for it with most pins set to 0
  4. In the Makefile I commented out "-DDEVELOP_IN_NRF52832", "-DCONFIG_GPIO_AS_PINRESET", and "-DNRF52_PAN_74". I'm not sure what the last 2 are but just tried them.
  5. I based it all off of the "pca10040e" which is supposed to be the one for the 810 and uses the right SoftDevice.
  6. I removed all references to logging and Segger RTT to try to reduce the current.

Everything is working well and it's broadcasting, but when I'm measuring the current usage from my scope, it's much higher and noiser than the nRF51822 projects I did before.

Here's an image from my scope:

image description

I expect it to be very low current between the 2 second advertisement as I circled in green, but really it's mostly like the red. So the average current is about 180 uA which is pretty high I think for a simple non-connectable advertisement every 2 seconds.

Any suggestions would be greatly appreciated, thank you!


Digging in further, I'm seeing current spikes about every 26 milliseconds. Here's a graph: image description

It's a clean signal and I can't really see why this would be happening. I've tried to disable everything I could in the config.h and still keep the thing working. I don't understand what could be causing it to wake up so often.

EDIT 2: After tracking this down further, it appears to be some noise in my setup. The current spikes were very sharp and dropped off in a downward slope, so they did not look like digital signals. When I replaced my power supply with a 3V lithium battery, things improved and the spikes were gone. Wiring and connectors could have also played a role. So the problem was my setup.

Here's an image zoomed in of one of those little spikes: image description

The example code, module, and soft-device appear to be working fine!