We get every now than then questions if RuuviTag could be used to monitor vibrations from rotating machines. RuuviTag Pro can be as a Bluetooth vibration sensor and we have created a custom firmware version to measure vibrations. Some of our customers have already started proof on concept projects with the RuuviTag Pro sensors. Collecting the vibration sensor data needs a custom setup which can be for example a RaspberryPi or data can be collected using the Ruuvi Gateway and send data to a private server.
Scroll down for downloading the custom firmware for vibration measurement. Please note that firmware is a beta version and it’s not comprehensively tested. Note also that might not be possible to flash standard firmware again without Ruuvi Development Kit.
RuuviTag Bluetooth Vibration Sensor Data Formats
Simple Vibration Data Format AC for Bluetooth Vibration Sensors
RuuviTag can run both simple and complex measurements on acceleration. At its easiest, the acceleration measurement can be just a peak-to-peak value.
The peak to peak tells essentially how hard acceleration Bluetooth vibration sensor has seen. Another simple measurement is root mean square value and it tells how much power acceleration has. Since RuuviTag Pro has a 3-axis accelerometer, a separate value is reported along each axis.
RuuviTag Special Vibration firmware Simple Data Format
Byte | Name | Range | Note |
0 | HEADER | 0xAC | |
1 | VERSION | 0x02 | |
2 | P2P_X_MSB | 0 … 32767 | Signed, mG. |
3 | P2P_X_LSB | Limited by accelerometer amplitude, 4 – 32 G | |
4 | P2P_Y_MSB | 0 … 32767 | Signed, mG. |
5 | P2P_Y_LSB | Limited by accelerometer amplitude, 4 – 32 G | |
6 | P2P_Z_MSB | 0 … 32767 | Signed, mG. |
7 | P2P_Z_LSB | Limited by accelerometer amplitude, 4 – 32 G | |
8 | RMS_X_MSB | 0 … 32767 | Signed, mG. |
9 | RMS_X_LSB | Limited by accelerometer amplitude, 2 – 16 G | |
10 | RMS_Y_MSB | 0 … 32767 | Signed, mG. |
11 | RMS_Y_LSB | Limited by accelerometer amplitude, 2 – 16 G | |
12 | RMS_Z_MSB | 0 … 32767 | Signed, mG. |
13 | RMS_Z_LSB | Limited by accelerometer amplitude, 2 – 16 G | |
14 | RESERVED0 | N/A | Reserved for future |
15 | RESERVED1 | N/A | Reserved for future |
16 | RESERVED2 | N/A | Reserved for future |
17 | RESERVED3 | N/A | Reserved for future |
18 | RESERVED4 | N/A | Reserved for future |
19 | RESERVED5 | N/A | Reserved for future |
20 | VOLTAGE_MSB | 0 … 254 | Calculate as: 1600 mV + 8 * VOLTAGE mV |
21 | TEMPERATURE_MSB | -125 … 125 | In celcius, 1C resolution |
22 | SEQUENCE_COUNTER_MSB | 0 … 65534 | Incremented for each measurement, rolls over to zero |
23 | SEQUENCE_COUNTER_LSB |
Dataformat 0xAC version 2 specification. For signed values lowest possible value means error, for signed values highest possible value means error.
Complex Vibration Data Format AF for Bluetooth Vibration Sensors
The brains of RuuviTag Pro is a quite capable nRF52832 from Nordic Semiconductor. It comes with an ability to run a Fast Fourier Transform to calculate frequency components of acceleration.
The Fourier transform can differentiate between frequencies of acceleration RuuviTag Pro is measuring. By default, the FFT is calculated out of 1024 samples taken at 1344 Hz at 12 bits and 2 G amplitude.
This gives 512 frequency bins where one bin is 1344 / 2 / 512 = 1.3 Hz wide. However, broadcasting every bin is not feasible, so bins are summed together into 16 frequency
buckets and the power of the bucket is calculated for broadcasting. This gives output with 16 buckets of power per frequency.
Since the scale between buckets can vary a lot, it is not meaningful to use a fixed scale for frequency data. Instead, acceleration is normalized to the highest value and the rest of the values are scaled accordingly. Scaling information is sent in the broadcast.
Learn more about the FFT from Wikipedia https://en.wikipedia.org/wiki/Fast_Fourier_transform
RuuviTag Special Vibration Firmware Complex Data Format
An example on how to decode the vibration sensor data, please see https://github.com/ojousima/ojousima.ruuvi_endpoints.ts/blob/master/src/ojousima_endpoint_af.ts
Byte | Name | Range | Note |
0 | HEADER | 0xAF | |
1 | VERSION | 0x01 | |
2 | TYPE | 0 … 2 | 0 – X-axis, 1 – Y-axis, 2 – Z-axis |
3 | SCALE_MSB | 0 … 255 | 8.8 Fixed-point value |
4 | SCALE_LSB | Divide value by 256 to get a scaling float | |
5 | FREQ_MSB | 0 … 65534 | Highest frequency bucket. |
6 | FREQ_LSB | Limited to ~5 kHz by accelerometer. In Hz. | |
7 | BUCKET_1 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
8 | BUCKET_2 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
9 | BUCKET_3 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
10 | BUCKET_4 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
11 | BUCKET_5 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
12 | BUCKET_6 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
13 | BUCKET_7 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
14 | BUCKET_8 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
15 | BUCKET_9 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
16 | BUCKET_10 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
17 | BUCKET_11 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
18 | BUCKET_12 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
19 | BUCKET_13 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
20 | BUCKET_14 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
21 | BUCKET_15 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
22 | BUCKET_16 | 0 … 255 | Divide by scale to get original value in G(rms)^2/Hz |
23 | SEQUENCE | 0.254 | Rolls over to 0, increments by one for each measurement |
RuuviTag Pro Bluetooth Vibration Sensor Firmware
We have made a proof-of-concept firmware which broadcasts in above formats and original Ruuvi RAWv2 (0x05) format. You can download and run it on any RuuviTag or Ruuvitag Pro up to hardware version B8. Special firmware can be downloaded here https://github.com/ojousima/ojousima.acceleration_bcast.c/releases/tag/v1.0.3. Flashing can be done using Nordic Semiconductor nRF Connect and instructions can be found here.
The firmware broadcasts in one-minute cycle, with each cycle having 5 distinct broadcasts:
- Original RAWv2
- “Simple” Vibration Data Format AC
- “Complex” Vibration Data Format AF, once per each axis
Each broadcast is repeated 5 times at 1285 ms interval, so the one-minute cycle has about 32 seconds of broadcasting and another half minute of quiet time. All measurements are taken from same acceleration sample.
RuuviTag Pro Bluetooth Sensor
Test Ruuvi's beta firmware for Vibration Measurement
RuuviTag Pro Sensor
Quantity | Unit Price(€) |
---|---|
1 | |
5-10 | |
11-25 | |
26-50 | |
51-99 |
Are you looking for bigger quantities? Contact us for pricing.
Made in Europe, Finland.
Worldwide free shipping on orders over 100 €.
RuuviTag Pro is a rugged IP certified environmental sensor for temperature, air humidity, air pressure and acceleration monitoring. The RuuviTag Pro is based on RuuviTag’s successful concept and additionally brings several outstanding features to the table. RuuviTag Pro is the toughest open source sensor on the market and it fits perfectly with demanding industrial and serious home uses.
RuuviTag Pro monitors environmental conditions and sends the data directly to your mobile device. Ruuvi Station mobile app allows you to view real-time accurate measurements and historical graphs. The app also provides customisable alerts to notify you of critical conditions, such as a melting freezer, excessively high bedroom temperatures that could disrupt sleep, or elevated humidity levels in your basement.
RuuviTag Pro or RuuviTag?
The RuuviTag Pro is a more rugged version of the RuuviTag. Both share the same circuit board design and operating principle. The RuuviTag Pro features a more accurate temperature sensor, a more durable enclosure, improved mounting options, and a wider operating temperature range battery. If you’re unsure whether the basic RuuviTag will meet your needs, especially if you plan to use the sensors in extreme conditions or industrial environments, we recommend selecting the RuuviTag Pro. Please refer to the technical specifications for more details.
Operational Conditions
Operating temperature (with stock battery): -40 °C to +85 °C (-40 °F to 185 °F).
Housing (4in1 and 3in1) water protection level: IP67, splash-proof, non-condensing location.
Housing (2in1) water protection level: IP68 & IP69K, hot pressurised spray.
Battery: User-replaceable CR2477T (included).
Battery lifespan: Estimated 12 to 24 months.
Certifications: CE, FCC, ISED, TELEC, IFETEL, NOM, RTCA DO-160 category H, RoHS, IC, HVIN, IMDA, OFCA, ICASA, POTRAZ.
Bluetooth range: 5-20 meters (indoor), 20-100 meters (outdoor). The sensitivity of the receiving mobile device’s antenna, obstacles and wall materials affect the range. For increased range, use the Ruuvi Gateway router as a receiver.
App Features
Free and easy: User-friendly free app, signing in is optional.
Platforms: Android and iOS.
Alerts: Configurable Bluetooth push alerts with customisable messages.
Real-time measurements: Track data in real time.
Historical data: Detailed historical graphs available for up to 10 days (offline).
History export: 10-day history export.
Dashboard: See all your sensors at a glance.
Personalise sensors: Use custom backgrounds and names.
Multilingual: Available in English, Finnish, Swedish, French, and German.
RuuviTag Pro 4-in-1
Temperature: °C, °F, K; typical accuracy ±0,1 °C @ 5-60 °C (±0.36 °F @ 41-140 °F).
Air humidity: RH-%, g/m3, dew point; typical accuracy ±2 RH-% @ 20…80 %. Range: 0-95 %.
Air pressure: Pa, hPa, mmHg, inHg; typical accuracy ±1 hPa. Range: 500-1155 hPa.
Motion: Movement counter. Counter is incremented when acceleration exceeds the threshold on any axis.
RuuviTag Pro 3-in-1
Temperature: °C, °F, K; typical accuracy ±0,1 °C @ 5-60 °C (±0.36 °F @ 41-140 °F).
Air humidity: RH-%, g/m3, dew point; typical accuracy ±2 RH-% @ 20…80 %. Range: 0-95 %.
Motion: Movement counter. Counter is incremented when acceleration exceeds the threshold on any axis.
RuuviTag Pro 2-in-1
Temperature: °C, °F, K; typical accuracy ±0,1 °C @ 5-60 °C (±0.36 °F @ 41-140 °F).
Motion: Movement counter. Counter is incremented when acceleration exceeds the threshold on any axis.
Compatibility
Integrations: Victron Energy, Home Assistant, Homey, and more.
Remote monitoring: When not within Bluetooth range, online remote monitoring is available with the Ruuvi Gateway and Ruuvi Cloud, both sold separately.
Technical Specifications
Data sheet: Download (pdf)
Read more info below:
FAQ
Can RuuviTag Pro used as Vibration Sensor?
Yes, it’s possible to use RuuviTag Pro Bluetooth Sensor as a vibration sensor with special proof-of-concept firmware.
What are the Typical Use Cases for Bluetooth Vibration Sensors?
- Determine if machine is on or off
- Make analysis from vibration sensor data for predictive maintenance