EXTREME LOW POWER Programming Questions with BLE nano V1


Hi, I would like to create a product lasting 30+years, based on Ble Nano v1(nrf51822), thus I need to avoid wasting any uAh. I have some questions about real power consumption and programming best practices:

  1. if I can choose the battery type and voltage, is it better to have nano v1 powered from Vin or from Vdd?

  2. If I have a simple ble beacon advertising a same fixed message, is the ble nano v1 power consumption the same as the power consumption of the underlying nrf51822 chip or higher?

  3. I would like to configure a digital pin as output, and use it as Vdd for a sensor. By setting it HIGH the sensor turns on and setting it LOW, the sensor turns off. When setting it LOW, is the current consumption REALLY 0mAh, or there will be always some current drain? In the second case, I noticed that, in arduino IDE, it is possible to configure as digital input a pin which was already configured as digital output. Do you think that toggling a pin configuration from output to input and viceversa, can be a way to efficiently power off the sensor with REAL 0mAh power consumption?

  4. Which is the expected consumption of a pin configured as digital input, when it is not read? Does it drain current only for the fact that it has been configured?

  5. Are there some snippets of code/instructions/tips and tricks/best practices to create power optimized firmware for ble nano using arduino IDE libraries?

Thanks very much!!


I have published a detailed tutorial on how to program the NanoV2 for very low power <100uA all the time, advertising and connected send/receive
But you can do better than this by increasing the advertising and connection interval, as discussed in the tutorial, but this tutorial will still not get you 30+years. :frowning:

But it does cover how to measure the supply current.

You can use either the NanoV2 programmer or this tutorial shows you how to use a BlackMagic Probe to program the NanoV2.
There is a free app that will generate the low power Arduino Sketch for you that lets you show control menus and plot and log data on your Android mobile, using pfodApp.

Also it seems that the nRF52 chip can get into debug mode by its self which draws mA’s instead of uA’s
Once you have programmed your chip, connect a 470R and 1nF, in parallel, directly from SWCLK to GND to stop noise triggering debug