What would you like to see?


I would like to get informed when the ruuvi device moves. Is there any way to wait in the client that ruuvi sends information. Or do we have to poll always?
And are there interrupts in the device itself? So that the device would notice if it moves? (It would then be possible to buffer the motion info and send it out when polled)
For example this could then be used as alarm sensor or mailbox sensor.


There is work in progress with a GATT profile implementation that can send acceleration data as a notification. You’d need a device to connect to RuuviTag and register to incoming notifications. I’d estimate that the SW is ready to be tested in a month or 2.

It is possible to configure the accelerometer to send interrupts, however our driver does not support the configuration modes as of right now.Personally I’d recommend implementing a circular buffer and sending the buffer when interesting event is detected. For an example you can check out https://github.com/ojousima/ruuvitag_fw/blob/feature-webble/ruuvi_examples/web-bluetooth/application.c , line 36 has condition when to send an accelerometer sample and lines 42 and 44 actually send the data.

A quicker solution would be to setup a listener to a sensortag firmware as shown in Collecting RuuviTag measurements and displaying them with Grafana


I need to read quaternion values from a i2c based IMU.
Bno55 from bosch
I want to send them at 75 Hz to the host.
Websocket or formatted GATT messages over NUS is acceptable.

These are choices due to the need to access the info from applications running on as many as possible platforms.

More info can be provided if needed.



I’m not sure If I understand the question, however your application sounds doable.

You’d need to connect the sensor to test points on Ruuvitag and code the necessary drivers.

There is an example application with NUS in SDK examples, I think the example runs on Ruuvitag as is.

Then you’d need to merge the codes. To get 75 Hz, you have to configure a small connection interval.

The transmission times might have a lot of jitter, as NRF52 can send up to 6 notifications in one connection interval.


13 ms is an acceptable, how would I go about to specify the the connection interval?

I am currently using s132 in Arduino development environment so I am shielded from the nitty gritty parts of ble setup an configuration.

Do you have a pointer to pure c++ code example that can establish a persistent nus uart connection with between 10 to 20 ms connection interval from the ruuvitag?


I am not familiar enough with the Arduino on nRF52 to say how the connection interval should be setup.

On Nordic SDK BLE_UART example (sdk12.2/examples/ble_peripheral_ble_app_uart) you can find MIN_CONN_INTERVAL and MAX_CONN_INTERVAL which would setup the acceptable limits. Please note that frequent connection interval leads to high power consumption even when there is no data being sent.


I am interested if could follow my temperature controller switch operation with RuuviTag in the room where the Ruuvi is following the temperature. As far as I know my controller just controls heater on/off. I am interested if this could be supported by RuuviTag hardware and software? Is there any projects on this?

Also electronics that could be used in following temperature controller would be interesting but a little off-topic…

EDIT: My themperature controller is Uponor T-37.


You could try attaching RuuviTag right above the heater, so you could track when temperature starts rising and when temperature starts falling to track the heater operation.


Thanks for the reply! My heating is underfloor heating so this solution is not for me… :slight_smile:

I was wondering if I could use one GPIO in in RuuviTag to monitor the temperature controller switch and distribute the status of this GPIO somehow? (Maybe by tweaking “Sensor Protocol for Eddystone-URL”?)

I am not an expert on this as you may notice, so I am just here to give someone an idea :smiley:


It took us a while, but here is a work-in progress for a Node Red node. Right now it is listening only for raw binary broadcasts from weather station, and in alpha quality.


I’d love to see an official data collection firmware that stores the data in the device (like the one in the suggested projects section). The would have to be paired, ideally, with a cross platform retrieval app. (I’d like to monitor my basement, but I don’t want a dedicated RasPi there.)

Also, a bit more support for iOS would be cool, for example a minimal Swift app.


GATT profile is under development and it will eventually support data logging and retrieval. However we cannot promise schedule of demos or production-ready application yet.


How about adding real (optional) pins for DIY connectivity?


Plese, describe the installation method for raspberry. I can’t install from Node Red ->Manage Pallete…


Hello Daniel,

I never got around to making proper node red / npm publications of the code. Please follow https://github.com/ojousima/node-red to install the code.