SD based custom firmware on Ruuvi tag (no services)

(SDK15 + s132 + SES + Ruuvi devkit)
My first attempt to burn custom firmware on ruuvi tab using ruuvi dev kit. I have tried blinky (no soft device) and it works on ruuvi tag. If I try hrs or other example that needs SD and is connectable an odd situation appears.
For instance, using SES I erase all ruuvi tag and then I burn ble_app_hrs and everything seems ok. I can see red LED blinking.

When I use nRF connect and connect to the ruuvi tag the connection succeed but I can just see these services:

Nordic UART Service
Experimental Buttonless DFU Service
Device Information

But the hrs service is not shown!

If I burn my custom BLE firmware (connectable) the same happens.

If I burn the same samples on nRF52 DK everything works fine.

What happens with Ruuvi tag? Am I missing something? Do I need to change something in samples in order to run them on ruuvi tag?

Thanks a lot



Have you tried refreshing the services on nRF Connect side? Sometimes the services are cached on the phone.

Samples generally work as-is on RuuviTag, but you’re going to have high power consumption unless you pull CS lines of BME280 and LIS2DH12 up

Sensors will be handled later… Thanks for the info.
For now, I just want to test a connectable firmware on ruuvi tag. As I could not find any (complete) connectable sample from ruuvi I decided to use nordic SDK in order to reach it.

using nRF connect I just can see thse 3 services. I can not see my custom service. However, I can see advertisement data changing because my sample modifies adv frame on the fly. I can see it changing in nRF connect but can not see the service.

By the way do you now about any ruuvi connectable sample?


If am erasing chip, how can these kind of services be available after burning SD and HRS sample?

Nordic UART Service ?
Experimental Buttonless DFU Service ?

I am erasing in command line:
nrfjprog --family nRF52 --eraseall

and using SES…

I also tried with this:

nrfjprog --family NRF52 --program ~/nRF5_SDK_15.3.0_59ac345/s132nrf52611/s132_nrf52_6.1.1_softdevice.hex --chiperase --verify

nrfjprog --family NRF52 --program ~/nRF5_SDK_15.3.0_59ac345/examples/ble_peripheral/my/pca10040/s132/ses/Output/Debug/Exe/ble_app_template_pca10040_s132.hex --verify

nrfjprog --family NRF52 --reset

When I connect using smartphone I just can see the following 3 services:

Nordic UART Service
Experimental Buttonless DFU Service
Device Information

Why does eraseall can not remove these ruuvi bond services? Hrs or my firmware has nothing to do with ruuvi code…

It sounds like you’re having some sort of issue with service caching.
One thing that comes to my mind is that you could try calling sd_ble_gatts_service_changed.
In SDK12 firmware we had to add #define IS_SRVC_CHANGED_CHARACT_PRESENT 1 /**< Include the service changed characteristic. If not enabled, the server's database cannot be changed for the lifetime of the device. */which set a flag to soft device enable parameters to include the service changed parameter.

If you haven’t done so already, click the refresh services on nRF Connect.

We do have some connectable firmwares, mainly for vibration monitoring applications. What are your expectations on those firmwares, i.e. what they should do?

I tried with an Android smartphone and t worked!
Then I cleanned the Apple phone Bluetooth cache and it worked too! :slight_smile:

(It would be great if those connectable firmware source code be open for everybody)

I need to transfer measurements in a very secure way. Hence the connection need.

Thank you

We’re not hiding the sources :slight_smile:

However the connectable firmwares are generally proof-of-concepts for a special purpose, they might be buggy or power hungry etc. There’s also not proper support for them in Ruuvi Station, community libraries and Ruuvi is not committed on maintaining or updating the firmware, this is why we don’t have made them available under Ruuvi brand.

Ok, understood. But for those (like me) that are developing from the ground up using nordic sdk15 and them we must join the sensors code, I think it will a good help (those no-warranty ruuvi connectable firmwares) at least for a “connectable template” project.
Thanks for the link