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

Ble_app_proximity example from SDK 11 draws over 2ma constant on nRF52

Running ble_app_proximity example on PCA10040 from SDK 11 leads to a current draw of over 2mA. How can I reduce it?

  • Update 2016.09.06:

    In SDK 12 there is an "Low Power" option when initializing the SAADC. To enable low power SAADC mode in ble_app_proximity example for nRF52 change to this in sdk_config.h:

    #define SAADC_CONFIG_LP_MODE 1
    

    This is due to SAADC with DMA drawing a lot of current when started. With the existing driver in SDK 11 the SAADC will always be in this state if the nrf_drv_saadc_buffer_convert(..) is used (as in the example). The workaround is to initialize the driver before the measurement and uninitialize it after the measurement is done with:

    nrf_drv_saadc_uninit();
    NVIC_ClearPendingIRQ(SAADC_IRQn);
    

    Here is the example with the fix: ble_app_proximity.zip
    Removed NRF_LOG_USES_UART = 1 from preprocessor symbols to not use UART peripheral (requires HFCLK) and enabled the DCDC to limit the current draw further (this is not enabled by default in the examples).

    We are working on a fix in the SDK driver such that this workaround is not necessary.

  • is this fixed in SDK12? seems like the flag NRF_LOG_USES_UART is now set to 0.

Related