description |
---|
Lifecycle: In Production. Last updated 2021-08-25 |
The data is decoded from "Manufacturer Specific Data" -field, for more details please check Bluetooth Advertisements section. Manufacturer ID is 0x0499
, which is transmitted as 0x9904
in raw data. The actual data payload is:
Offset | Allowed values | Description |
---|---|---|
0 | 5 |
Data format (8bit) |
1-2 | -32767 ... 32767 |
Temperature in 0.005 degrees |
3-4 | 0 ... 40 000 |
Humidity (16bit unsigned) in 0.0025% (0-163.83% range, though realistically 0-100%) |
5-6 | 0 ... 65534 |
Pressure (16bit unsigned) in 1 Pa units, with offset of -50 000 Pa |
7-8 | -32767 ... 32767 |
Acceleration-X (Most Significant Byte first) |
9-10 | -32767 ... 32767 |
Acceleration-Y (Most Significant Byte first) |
11-12 | -32767 ... 32767 |
Acceleration-Z (Most Significant Byte first) |
13-14 | 0 ... 2046 , 0 ... 30 |
Power info (11+5bit unsigned), first 11 bits is the battery voltage above 1.6V, in millivolts (1.6V to 3.646V range). Last 5 bits unsigned are the TX power above -40dBm, in 2dBm steps. (-40dBm to +20dBm range) |
15 | 0 ... 254 |
Movement counter (8 bit unsigned), incremented by motion detection interrupts from accelerometer |
16-17 | 0 ... 65534 |
Measurement sequence number (16 bit unsigned), each time a measurement is taken, this is incremented by one, used for measurement de-duplication. Depending on the transmit interval, multiple packets with the same measurements can be sent, and there may be measurements that never were sent. |
18-23 | Any valid mac |
48bit MAC address. |
Not available is signified by largest presentable number for unsigned values, smallest presentable number for signed values and all bits set for mac. All fields are MSB first 2-complement, i.e. 0xFC18
is read as -1000
and 0x03E8
is read as 1000
. If original data overflows the data format, data is clipped to closests value that can be represented. For example temperature 170.00 C becomes 163.835 C and acceleration -40.000 G becomes -32.767 G.
Values supported: (-163.835 °C to +163.835 °C in 0.005 °C increments.
Example
Value | Measurement |
---|---|
0x0000 |
0 °C |
0x01C3 |
+2.255 °C |
0xFE3D |
-2.255 °C |
0x8000 |
Invalid / not available |
Values supported: 0.0 % to 100 % in 0.0025 % increments. Higher values than 100 % are possible, but they generally indicate a faulty or miscalibrated sensor.
Example
Value | Measurement |
---|---|
000 |
0% |
10010 |
25.025% |
40000 |
100.0% |
65535 |
Invalid / not available |
Values supported: 50000 Pa to 115536 Pa in 1 Pa increments.
Example
Value | Measurement |
---|---|
00000 |
50000 Pa |
51325 |
101325 Pa (average sea-level pressure) |
65534 |
115534 Pa |
65535 |
Invalid / not available |
Values supported: -32767 to 32767 (mG), however the sensor on RuuviTag supports only 16 G max (2 G in default configuration). Values are 2-complement int16_t, MSB first. All channels are identical.
Example
Value | Measurement |
---|---|
0xFC18 |
-1000 mG |
0x03E8 |
1000 mG |
0x8000 |
Invalid / not available |
Values supported: 1600 mV to 3647 mV in 1 mV increments, practically 1800 ... 3600 mV.
Example
Value | Measurement |
---|---|
0000 |
1600 mV |
1400 |
3000 mV |
2047 |
Invalid / not available |
Values supported: -40 dBm to +22 dBm in 2 dBm increments.
Example
Value | Measurement |
---|---|
00 |
-40 dBm |
22 |
+4 dBm |
31 |
Invalid / not available |
Movement counter is one-byte counter which gets triggered when LIS2DH12 gives "activity interrupt". Sensitivity depends on the firmware, by default the sensitivity is a movement over 64 mG. The counter will roll over. Movement is deduced by "rate of change". Please note that the highest valid value is 254, and 255 is reserved for the "not available".
Example
Value | Measurement |
---|---|
00 |
0 counts |
100 |
100 counts |
255 |
Invalid / not available |
Mesurement sequence number gets incremented by one for every measurement. It can be used to gauge signal quality and packet loss as well as to deduplicated data entries. You should note that the measurement sequence refers to data rather than transmission, so you might receive many transmissions with the same measurement sequence number. Please note that the highest valid value is 65534, and 65535 is reserved for the "not available".
Example
Value | Measurement |
---|---|
00 |
0 counts |
1000 |
1000 counts |
65535 |
Invalid / not available |
These test vectors are based on ruuvitag-sensor project. The tests are bidirectional, decode-encode results in original raw data. Encode-decode must result in same values with given precision, but floating point rounding differences may occur.
Raw binary data: 0x0512FC5394C37C0004FFFC040CAC364200CDCBB8334C884F
Field | Value |
---|---|
Data format | 5 |
Temperature | 24.3 C |
Pressure | 100044 |
Humidity | 53.49 RH-% |
Acceleration X | 0.004 G |
Acceleration Y | -0.004 G |
Acceleration Z | 1.036 G |
TX Power | 4 dBm |
Voltage | 2.977 V |
Movement counter | 66 |
Measurement Sequence | 205 |
MAC | CB B8 33 4C 88 4F |
Raw binary data: 0x057FFFFFFEFFFE7FFF7FFF7FFFFFDEFEFFFECBB8334C884F
Field | Value |
---|---|
Data format | 5 |
Temperature | 163.835 C |
Pressure | 115534 |
Humidity | 163.8350 RH-% |
Acceleration X | 32.767 G |
Acceleration Y | 32.767 G |
Acceleration Z | 32.767 G |
TX Power | 20 dBm |
Voltage | 3.646 V |
Movement counter | 254 |
Measurement Sequence | 65534 |
MAC | CB B8 33 4C 88 4F |
Raw binary data: 0x058001000000008001800180010000000000CBB8334C884F
Field | Value |
---|---|
Data format | 5 |
Temperature | -163.835 C |
Pressure | 50000 |
Humidity | 0.000 RH-% |
Acceleration X | -32.767 G |
Acceleration Y | -32.767 G |
Acceleration Z | -32.767 G |
TX Power | -40 dBm |
Voltage | 1.600 V |
Movement counter | 0 |
Measurement Sequence | 0 |
MAC | CB B8 33 4C 88 4F |
Raw binary data: 0x058000FFFFFFFF800080008000FFFFFFFFFFFFFFFFFFFFFF
Field | Value |
---|---|
Data format | 5 |
Temperature | NAN |
Pressure | NAN |
Humidity | NAN |
Acceleration X | NAN |
Acceleration Y | NAN |
Acceleration Z | NAN |
TX Power | NAN |
Voltage | NAN |
Movement counter | NAN |
Measurement Sequence | NAN |
MAC | NAN |