Ruuvi Tag as vibration sensor

Hei There!

A client of us requested an application to intercept vibration over a plastic paper dispenser.
Using the internal tag’s accelerometer we want to send to a gateway a sort of an interrupt and keep counting

Question is:

  • the internal accelerometer support interrupts?
  • if yes, how can we implement in an easy way?

These question because the minimum 1second interval in Raw mode, could be missing the vibration of the plastic case.

Maybe these are basic question, but i’m completely new to Ruuvi Tag

Thanks to everyone


The internal accelerometer supports interrupts, and there is a “movement counter” which gets incremented on every interrupt. It sounds like RuuviTag could work for you as-is, if it is not a problem if you miss the exact one-second interval when dispenser vibrates. You’ll detect that the dispenser has vibrated as the counter grows

Hei Otso,

first of all thank you very much for your quick response.
We will give a try, in the meanwhile just another question.

Probably we will have to tune the scale of the accelerometer to tune paper pick up.
Is this already implemented in some ways? As far as I understand there is no possibilities to modify internal parameters.

Thanks a lot for your time


Currently changing the accelerometer threshold would require recompiling the firmware with a new constant. It’s not difficult to do, simply changing a constant in a header file.

As Otso said the movement counter may be sufficient for you. Is the client interested in counting or determining when the dispenser is empty?

Can you provide a link to the kind of dispenser?

@dgerman we need to find out both consumption and when the dispenser has run out of paper

We put the tag inside the dispenser and after some tests we can say that:

  • the tag intercept the vibration of the dispenser, printing out the motion increment
  • there are false positives that need to be excluded out

We are trying to understand how to clean up data and eliminate false positives.
Any suggestion about this?

Anyway, Ruuvi Tags are awesome (probably i’m not the first to say that :slight_smile: )
Thanks to everybody.

We are trying to understand how to clean up data and eliminate false positives.
Any suggestion about this?

The sensitivity of motion threshold could be adjusted higher, ruuvi.firmware.c/application_mode_default.h at 39cc5bf792e24c2d780954a822e916f11474e9f0 · ruuvi/ruuvi.firmware.c · GitHub