reducing power of HRS sample

I have a BLE sensor device that works, but draws about 4 mA, much higher than needed. In order to learn how to reduce current, I tried to compile and run the HRM sample code and check current on my device hardware.

It also draws about 4 mA, as long as it is advertising. I tried to change some parameters such as adv. interval etc. but could not reduce power to the required level.

I would like to get to an average consumption of 50uA, using very low data rate, it will be ok to advertise once in 5 seconds or even less.

When connected, it also should send data only every500 ms or so and keep very low power.

What steps should I take to get there? (After advertising is over, the consumption drops to less the 1 uA, so my hardware is OK, I guess.)

Thanks.

Parents
  • Hi

    Here's the .hex file of the project, but it's literally just the ble_app_hrs example from SDK 17.1.0 with the APP_ADV_INTERVAL set to 3200 (2 seconds).

    5287.ble_app_hrs_pca10040_s132.hex

    To measure on a DK I used the nRF52840 DK which has a switch to put it in "nRF Only" mode which lets you only power the nRF52 on it and not the debugger. That way you can get okay current consumption measurements when using DKs as well.

    But the unknown spikes occurring every 2 seconds almost seem like the device is waking up the CPU (probably to do some calculations) now and again, but it's hard to know what wakes it up without seeing your project.

    Best regards,

    Simon

  • Hi, I tried your hex file as follows:

    1. erased DK (PC10040) memory.

    2. programed s132_nrf52_7.2.0_softdevice.hex and the hex file you made.

    3. removed usb cable from DK.

    4. power DK from PPk2 as in picture.

    Average current is 385 uA, but an LED is blinking every 2 sec. which can explain this.

    there is a 200ms pulse of about 2.5 mA with every advertisement.

    Can you send me your main.c and sdk_config.h?

    BR

    Johanan

  • Well, I removed timers_init() and buttons_leds_init() from main.c, changed adv. time to 5 seconds. Now I am at less than 10uAmp. A good starting point to add functionality.

Reply Children
Related