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

Tips on ULP, BLE and SoftDevice S110 with PCA10001 [nRF51822]

Hello Nordic people!

I'm developing my first firmware on nRF51822 and I need help with BLE, profiles and SoftDevice S110 stack.

Application it's a speed sensor for bicycles. I wish minimum energy consumption. Today, FW is capable to measure cadence data using RTC & LFCLK. Among the pulses due to wheel revolutions, I put the nRF CPU on sleep thus it consumes a very small amount of energy (Vdd=1.8 V, Idd=4.32 mA when CPU ON and Idd=3.05 uA when CPU sleep). I'm very happy ;)

Now it's time to send the speed information to external devices through BLE, using SoftDevice S110.

I think 8-16 bit of data are enough for speed information. I want a speed-related, variable frame-rate:

  • at speed lower than 15 km/h, wheel revolution period is higher than 500 ms thus frame-rate higher than 1/500 ms will be a waste of energy. In this situation, frame-rate will match the wheel's revolution period (>500 ms) and Frame_rate<(1/500) ms.
  • at speed higher than 15 km/h, wheel revolution period is lower than 500 ms. However send data via radio too often is still a waste of energy (end-user has no advantages in a non-real time applications like this) thus maximum desirable frame-rate is Frame_rate_max=1/500 ms. The end-user BLE equipment will have a maximum display-refresh rate of 1/500 ms. It's a good compromise.

Summarizing, maximum frame-rate is 2 FPS (1/500 ms). When no wheel's revolutions happened in 4 seconds, I send a 0 km/h data and switch off nRF51822 thus minimum frame-rate is 0.25 FPS (1/4 s).


I'm starting to read BLE manuals but is still a jungle of information. I briefly saw the GATT and CSC profile but I'm not sure it's the better choice to obtain extra low power consumption.

Maybe it's smarter using a custom profile? Have you got some useful links, BLE quick start, simple nRF51822 project and profiles/services and tips about this application? Please, put me on the right way :) Thank you all!

Related