Search…
⌃K
Links

Ruuvi Firmware 3.30.X

Lifecycle: Beta. Page updated 2021-03-25

Test checklist

Power-on

RuuviTag B+
RuuviTag B Basic
RuuviTag B+SHTC
RuuviTag B8
RuuviTag B8+TMP117
"Kalervo"
"Kaarle"
"Keijo"
Action
How to test
Verified by
Tag stays in bootloader mode / begins DFU if application commanded tag into DFU mode.
Manually, enter configuration mode by "B" and command tag into bootloader with nRF Connect
Nikita / v3.30.3-RC1
Tag stays in bootloader mode if button "B" is pressed on boot.
Manually, hold down "B", press and release "R".
Nikita / v3.30.3-RC1
Tag initializes watchdog.
Check application initialization code
Nikita / v3.30.3-RC1
Tag turns RED LED on for self-test duration.
Manually, visual check
Fails
Tag runs self-tests to detect installed sensors.
Unit tests test_main.c test_app_sensor.c
Nikita / v3.30.3-RC1
Tag erases settings stored to flash file system and reboots if flash file system cannot be initialized.
Unit test main.c, drivers/rt_flash.c
Nikita / v3.30.3-RC1
Tag erases old log entries to prevent data with corrupted timestamps
Check app_log:app_log_init()
Nikita / v3.30.3-RC1
Tag turns GREEN LED on for one second if no errors were detected in self-test phase. Missing sensors are allowed.
Manually, visual check.
Nikita / v3.30.3-RC1
Tag advertises at 100 ms interval for 5 seconds at boot. Duplicate data is allowed, but every packet must be valid. Initial dataformat is RAWv2.
Unit test test_app_heartbeat.c. Check power profile manually.
Nikita / v3.30.3-RC1
Action
How to test
Verified by
Tag stays in bootloader mode / begins DFU if application commanded tag into DFU mode.
Manually, enter configuration mode by "B" and command tag into bootloader with nRF Connect
Nikita / v3.30-RC6 (B+)
Tag stays in bootloader mode if button "B" is pressed on boot.
Manually, hold down "B", press and release "R".
Nikita / v3.30-RC6 (B+)
Tag initializes watchdog.
Check application initialization code
Nikita / v3.30-RC6 (B+)
Tag turns RED LED on for self-test duration.
Manually, visual check
Nikita / v3.30-RC6 (B+)
Tag runs self-tests to detect installed sensors.
Unit tests test_main.c test_app_sensor.c
Nikita / v3.30-RC6 (B+)
Tag erases settings stored to flash file system and reboots if flash file system cannot be initialized.
Unit test main.c, drivers/rt_flash.c
Nikita / v3.30-RC6 (B+)
Tag erases old log entries to prevent data with corrupted timestamps
Check app_log:app_log_init()
Nikita / v3.30-RC6 (B+)
Tag turns GREEN LED on for one second if no errors were detected in self-test phase. Missing sensors are allowed.
Manually, visual check.
Nikita / v3.30-RC6 (B+)
Tag advertises at 100 ms interval for 5 seconds at boot. Duplicate data is allowed, but every packet must be valid. Initial dataformat is RAWv2.
Unit test test_app_heartbeat.c. Check power profile manually.
Nikita / v3.30-RC6 (B+)
Action
How to test
Verified by
Tag stays in bootloader mode / begins DFU if application commanded tag into DFU mode.
Manually, enter configuration mode by "B" and command tag into bootloader with nRF Connect
Tested on B+
Tag stays in bootloader mode if button "B" is pressed on boot.
Manually, hold down "B", press and release "R".
Tested on B+
Tag initializes watchdog.
Unit test test_main.c
Tested on B+
Tag turns RED LED on for self-test duration.
Manually, visual check
Tested on B+
Tag runs self-tests to detect installed sensors.
Unit tests test_main.c test_app_sensor.c
Tested on B+
Tag erases settings stored to flash file system and reboots if flash file system cannot be initialized.
Unit test main.c, drivers/rt_flash.c
Tested on B+
Tag erases old log entries to prevent data with corrupted timestamps
Check app_log:app_log_init()
Tested on B+
Tag turns GREEN LED on for one second if no errors were detected in self-test phase. Missing sensors are allowed.
Manually, visual check.
Tested on B+
Tag advertises at 100 ms interval for 5 seconds at boot. Duplicate data is allowed, but every packet must be valid. Initial dataformat is RAWv2.
Unit test test_app_heartbeat.c. Check power profile manually.
Tested on B+
Action
How to test
Verified by
Tag stays in bootloader mode / begins DFU if application commanded tag into DFU mode.
Manually, enter configuration mode by "B" and command tag into bootloader with nRF Connect
Tested on B+
Tag stays in bootloader mode if button "B" is pressed on boot.
Manually, hold down "B", press and release "R".
Tested on B+
Tag initializes watchdog.
Unit test test_main.c
Tested on B+
Tag turns RED LED on for self-test duration.
Manually, visual check
Tested on B+
Tag runs self-tests to detect installed sensors.
Unit tests test_main.c test_app_sensor.c
Tested on B+
Tag erases settings stored to flash file system and reboots if flash file system cannot be initialized.
Unit test main.c, drivers/rt_flash.c
Tested on B+
Tag erases old log entries to prevent data with corrupted timestamps
Check app_log:app_log_init()
Tested on B+
Tag turns GREEN LED on for one second if no errors were detected in self-test phase. Missing sensors are allowed.
Manually, visual check.
Tested on B+
Tag advertises at 100 ms interval for 5 seconds at boot. Duplicate data is allowed, but every packet must be valid. Initial dataformat is RAWv2.
Unit test test_app_heartbeat.c. Check power profile manually.
Tested on B+
Action
How to test
Verified by
Tag stays in bootloader mode / begins DFU if application commanded tag into DFU mode.
Manually, enter configuration mode by "B" and command tag into bootloader with nRF Connect
Tested on B+
Tag stays in bootloader mode if button "B" is pressed on boot.
Manually, hold down "B", press and release "R".
Tested on B+
Tag initializes watchdog.
Unit test test_main.c
Tested on B+
Tag turns RED LED on for self-test duration.
Manually, visual check
Tested on B+
Tag runs self-tests to detect installed sensors.
Unit tests test_main.c test_app_sensor.c
Tested on B+
Tag erases settings stored to flash file system and reboots if flash file system cannot be initialized.
Unit test main.c, drivers/rt_flash.c
Tested on B+
Tag erases old log entries to prevent data with corrupted timestamps
Check app_log:app_log_init()
Tested on B+
Tag turns GREEN LED on for one second if no errors were detected in self-test phase. Missing sensors are allowed.
Manually, visual check.
Tested on B+
Tag advertises at 100 ms interval for 5 seconds at boot. Duplicate data is allowed, but every packet must be valid. Initial dataformat is RAWv2.
Unit test test_app_heartbeat.c. Check power profile manually.
Tested on B+
Action
How to test
Verified by
Tag stays in bootloader mode / begins DFU if application commanded tag into DFU mode.
Not Applicable
Tag stays in bootloader mode if button "B" is pressed on boot.
Not applicable
Tag initializes watchdog.
Check application initialization code
Nikita / v3.30-RC6
Tag turns RED LED on for self-test duration.
Manually, visual check
Nikita / v3.30-RC6
Tag runs self-tests to detect installed sensors.
Unit tests test_main.c test_app_sensor.c
Nikita / v3.30-RC6
Tag erases settings stored to flash file system and reboots if flash file system cannot be initialized.
Not Applicable.
Tag erases old log entries to prevent data with corrupted timestamps
Not Applicable
Tag turns GREEN LED on for one second if no errors were detected in self-test phase. Missing sensors are allowed.
Manually, visual check.
Otso / v3.30-RC7 (B+)
Tag advertises at 100 ms interval for 5 seconds at boot. Duplicate data is allowed, but every packet must be valid. Initial dataformat is RAWv2.
Unit test test_app_heartbeat.c. Check power profile manually.
Otso / v3.30-RC7

Integration test

Integration tests are run on debug-variants of firmware. They print test results on RTT terminal as JSON. One nRF52 devkit is programmed with nus_throughput_sdapp.hex and rebooted before test. The devkit will connect to device under test to run the throughput values. RF signal quality is important for the throughput tests, so boards must not be touched d.uring the BLE throughput test. NFC test is run by copying the NFC tag back to itself with a reader app, for example NFC Tools.
RuuviTag B+
RuuviTag B Basic
RuuviTag B+SHTC
RuuviTag B8
RuuviTag B8+TMP117
"Kalervo"
"Kaarle"
"Keijo"
Item
Result
Verified by
Library tests: p2p, rms, variance, ringbuffer
Pass
Nikita / v3.30.3-RC1
Peripheral tests: power, timer, scheduler, flash
Pass
Nikita / v3.30.3-RC1
Sensor tests: BME280, LIS2DH12
Pass
Nikita / v3.30.3-RC1
BLE tests: Advertising, GATT
Pass
Nikita / v3.30.3-RC1
GATT Throughput, 1 MBit / s
15 860 B / s
Nikita / v3.30.3-RC1
GATT Throughput, 2 MBit / s
22 234 B / s
Nikita / v3.30.3-RC1
NFC Test
Pass
Nikita / v3.30.3-RC1
Item
Result
Verified by
Library tests: p2p, rms, variance, ringbuffer
Pass
Tested on B+
Peripheral tests: power, timer, scheduler, flash
Pass
Tested on B+
Sensor tests: SHTCX, BME280, LIS2DH12
Pass
Nikita / v3.30-RC6
BLE tests: Advertising, GATT
Pass
Tested on B+
GATT Throughput, 1 MBit / s
27 400 B/s
Nikita / v3.30-RC6
GATT Throughput, 2 MBit / s
37 300 B/s
Nikita / v3.30-RC6
NFC Test
Tested on B+
Tested on B+
Item
Result
Verified by
Library tests: p2p, rms, variance, ringbuffer
Peripheral tests: power, timer, scheduler, flash
Sensor tests: DPS310, SHTCX, LIS2DH12 nRF52
BLE tests: Advertising, GATT
GATT Throughput, 1 MBit / s
GATT Throughput, 2 MBit / s
NFC Test
Item
Result
Verified by
Library tests: p2p, rms, variance, ringbuffer
Pass
Otso / v3.30.0
Peripheral tests: power, timer, scheduler, flash
Pass
Otso / v3.30.0
Sensor tests: TMP117, DPS310, SHTCX, LIS2DH12, nRF52
Pass*
Otso / v3.30.0
BLE tests: Advertising, GATT
Pass
Otso / v3.30.0
GATT Throughput, 1 MBit / s
Nikita / B+
GATT Throughput, 2 MBit / s
Nikita / B+
NFC Test
Nikita / B+
Item
Result
Verified by
Not Applicable
* TMP117 has a race condition in single sample, nRF52 fails configuration integration test, LIS2DH12 fails interrupt test

Button

RuuviTag B+
RuuviTag B Basic
RuuviTag B+SHTC
RuuviTag B8
RuuviTag B8+TMP117
"Kalervo"
"Kaarle"
"Keijo"
Action
How to test
Verified by
Short press enters configuration mode.
Press button "B", check that red led blinks and DFU service is available, serial number is readable over GATT.
Nikita / v3.30.3-RC1
Long press erases flash settings and logs, enters bootloader.
Hold button "B", check that tag enters bootloader. Try reading logs, check there's not a lot of elements if any.
Fail: Firmware not supported
Nikita / v3.30.3-RC1
Action
How to test
Verified by
Short press enters configuration mode.
Press button "B", check that red led blinks and DFU service is available, serial number is readable over GATT.
Tested on B+
Long press erases flash settings and logs, enters bootloader.
Hold button "B", check that tag enters bootloader. Try reading logs, check there's not a lot of elements if any.
Tested on B+
Action
How to test
Verified by
Short press enters configuration mode.
Press button "B", check that red led blinks and DFU service is available, serial number is readable over GATT.
Long press erases flash settings and logs, enters bootloader.
Hold button "B", check that tag enters bootloader. Try reading logs, check there's not a lot of elements if any.
Action
How to test
Verified by
Short press enters configuration mode.
Press button "B", check that red led blinks and DFU service is available, serial number is readable over GATT.
Long press erases flash settings and logs, enters bootloader.
Hold button "B", check that tag enters bootloader. Try reading logs, check there's not a lot of elements if any.
Action
How to test
Verified by
Not Applicable

NFC

RuuviTag B+
RuuviTag B Basic
RuuviTag B+SHTC
RuuviTag B8
"Kalervo"
"Kaarle"
"Keijo"
Action
How to test
Verified by
NFC read enables configuration until next GATT connection or timeout.
Apply a NFC field and enter bootloader via GATT. Check that bootloader service is disabled after timeout.
Nikita / v3.30.1-RC1
Tag broadcasts at 100 ms interval for 60 seconds or until connected by GATT
Check the power profile after NFC read, connect with GATT
Continues to broadcast at 100ms after GATT connection
NFC has 4 UTF-8 text fields: "ad", "id", "sw", "dt". Fields can be in any order.
Read the tag with e.g. NFC Tools
Nikita / v3.30.3-RC1
"ad" field has text "MAC: " and upper-case, ':' separated MAC address, as reported by BLE scanner.
Check "ad" field and compare to BLE scanner results.
Nikita / v3.30.3-RC1
"id" field has text "ID: " and upper-case, ':' separated unique identifier, 8 bytes.
Check "id" field, compare to serial number read over GATT.
Nikita / v3.30.3-RC1
"sw" field has text "SW: " and a firmware revision string.
Check "sw" field
Nikita / v3.30.3-RC1
"dt" field has binary content
Check "dt" field
Nikita / v3.30.1-RC1
Action
How to test
Verified by
NFC read enables configuration until next GATT connection or timeout.
Apply a NFC field and enter bootloader via GATT. Check that bootloader service is disabled after timeout.
Tested on B+
Tag broadcasts at 100 ms interval for 60 seconds or until connected by GATT
Check the power profile after NFC read, connect with GATT
Tested on B+
NFC has 4 UTF-8 text fields: "ad", "id", "sw", "dt". Fields can be in any order.
Read the tag with e.g. NFC Tools
Tested on B+
"ad" field has text "MAC: " and upper-case, ':' separated MAC address, as reported by BLE scanner.
Check "ad" field and compare to BLE scanner results.
Tested on B+
"id" field has text "ID: " and upper-case, ':' separated unique identifier, 8 bytes.
Check "id" field, compare to serial number read over GATT.
Tested on B+
"sw" field has text "SW: " and a firmware revision string.
Check "sw" field
Tested on B+
"dt" field has binary content
Check "dt" field
Tested on B+
Action
How to test
Verified by
NFC read enables configuration until next GATT connection or timeout.
Apply a NFC field and enter bootloader via GATT. Check that bootloader service is disabled after timeout.
Tested on B+
Tag broadcasts at 100 ms interval for 60 seconds or until connected by GATT
Check the power profile after NFC read, connect with GATT
Tested on B+
NFC has 4 UTF-8 text fields: "ad", "id", "sw", "dt". Fields can be in any order.
Read the tag with e.g. NFC Tools
Tested on B+
"ad" field has text "MAC: " and upper-case, ':' separated MAC address, as reported by BLE scanner.
Check "ad" field and compare to BLE scanner results.
Tested on B+
"id" field has text "ID: " and upper-case, ':' separated unique identifier, 8 bytes.
Check "id" field, compare to serial number read over GATT.
Tested on B+
"sw" field has text "SW: " and a firmware revision string.
Check "sw" field
Tested on B+
"dt" field has binary content
Check "dt" field
Tested on B+
Action
How to test
Verified by
Not Applicable

Usage

RuuviTag B+
RuuviTag B Basic
RuuviTag B+SHTC
RuuviTag B8
"Kalervo"
"Kaarle"
"Keijo"
Action
How to test
Verified by
Data is sent at 1285 ms interval by default.
Check power profile for TX spikes.
Nikita / v3.30.3-RC1
Tag accepts GATT connection and starts pushing data through NUS TX characteristic notifications.
Connect to tag with nRF Connect, register to GATT notifications.
Nikita / v3.30.3-RC1
GATT server has Device Information Service with Manufacturer Name String, Model Number String Hardware Revision String and Firmware revision String. Serial Number String is not viewable unless configuration mode is on.
Connect to tag with nRF Connect, check fields manually.
Nikita / v3.30.3-RC1
Manufacturer Name String is "Ruuvi Innovations Ltd"
Manually
Nikita / v3.30.3-RC1
Model Number String is "RuuviTag B"
Manually
Nikita / v3.30.3-RC1
Serial Number String is viewable only in configuration mode and has the same ID as NFC scan.
Manually
Nikita / v3.30.3-RC1
Hardware revision string has text "Check PCB"
Manually
Nikita / v3.30.1-RC1
Firmware revision string has same version as NFC read
Manually
Nikita / v3.30.3-RC1
Environmental history log can be read by sending "0x3A 3A 11 TIMESTAMP 00000000" to NUS RX characteristic. Timestamp is current time in seconds after Unix epoch, 4 bytes.
Manually, or with Ruuvi Station sync graphs button. For the test a debug version of firmware should be used, tag must be running at least for 1 hour and there should be a data point each second for at least 1 hour. Entries do not have to be sorted by time, it is allowed to miss a sample roughly once per 10 seconds.
Otso / v3.30.0
Environmental log history will send only data that has timestamp after request
Sync once with Ruuvi Station, check there is data. Sync again, check there is less data loaded.
Sync Fails Nikita / v3.30.3-RC1
Tag continues broadcasting data while connected by GATT.
Connect with one device, scan with other. Manually. Note: Some scanners will not report advertisements from connected devices, so 2 scanners are required.
Nikita / v3.30.1-RC1
Action
How to test
Verified by
Data is sent at 1285 ms interval by default.
Check power profile for TX spikes.
Tested on B+
Tag accepts GATT connection and starts pushing data through NUS TX characteristic notifications.
Connect to tag with nRF Connect, register to GATT notifications.
Tested on B+
GATT server has Device Information Service with Manufacturer Name String, Model Number String Hardware Revision String and Firmware revision String. Serial Number String is not viewable unless configuration mode is on.
Connect to tag with nRF Connect, check fields manually.
Tested on B+
Manufacturer Name String is "Ruuvi Innovations Ltd"
Manually
Tested on B+
Model Number String is "RuuviTag B"
Manually
Tested on B+
Serial Number String is viewable only in configuration mode and has the same ID as NFC scan.
Manually
Tested on B+
Hardware revision string has text "Check PCB"
Manually
Tested on B+
Firmware revision string has same version as NFC read
Manually
Tested on B+
Environmental history log can be read by sending "0x3A 3A 11 TIMESTAMP 00000000" to NUS RX characteristic. Timestamp is current time in seconds after Unix epoch, 4 bytes.
Manually, or with Ruuvi Station sync graphs button. For the test a debug version of firmware should be used, tag must be running at least for 1 hour and there should be a data point each second for at least 1 hour. Entries do not have to be sorted by time, it is allowed to miss a sample roughly once per 10 seconds.
Tested on B+
Environmental log history will send only data that has timestamp after request
Sync once with Ruuvi Station, check there is data. Sync again, check there is less data loaded.
Tested on B+
Tag continues broadcasting data while connected by GATT.
Connect with one device, scan with other. Manually. Note: Some scanners will not report advertisements from connected devices, so 2 scanners are required.
Tested on B+
Action
How to test
Verified by
Data is sent at 1285 ms interval by default.
Check power profile for TX spikes.
Tested on B+
Tag accepts GATT connection and starts pushing data through NUS TX characteristic notifications.
Connect to tag with nRF Connect, register to GATT notifications.
Tested on B+
GATT server has Device Information Service with Manufacturer Name String, Model Number String Hardware Revision String and Firmware revision String. Serial Number String is not viewable unless configuration mode is on.
Connect to tag with nRF Connect, check fields manually.
Tested on B+
Manufacturer Name String is "Ruuvi Innovations Ltd"
Manually
Tested on B+
Model Number String is "RuuviTag B"
Manually
Tested on B+
Serial Number String is viewable only in configuration mode and has the same ID as NFC scan.
Manually
Tested on B+
Hardware revision string has text "Check PCB"
Manually
Tested on B+
Firmware revision string has same version as NFC read
Manually
Tested on B+
Environmental history log can be read by sending "0x3A 3A 11 TIMESTAMP 00000000" to NUS RX characteristic. Timestamp is current time in seconds after Unix epoch, 4 bytes.
Manually, or with Ruuvi Station sync graphs button. For the test a debug version of firmware should be used, tag must be running at least for 1 hour and there should be a data point each second for at least 1 hour. Entries do not have to be sorted by time, it is allowed to miss a sample roughly once per 10 seconds.
Tested on B+
Environmental log history will send only data that has timestamp after request
Sync once with Ruuvi Station, check there is data. Sync again, check there is less data loaded.
Tested on B+
Tag continues broadcasting data while connected by GATT.
Connect with one device, scan with other. Manually. Note: Some scanners will not report advertisements from connected devices, so 2 scanners are required.
Tested on B+
Action
How to test
Verified by
Data is sent at 1285 ms interval by default.
Check power profile for TX spikes.
Otso / 3.30-RC7
GATT tests are not applicable.

Firmware updates

RuuviTag B+
RuuviTag B Basic
RuuviTag B+SHTC
RuuviTag B8
RuuviTag B8+TMP117
"Kalervo"
"Kaarle"
"Keijo"
Action
How to test
Verified by
Firmware 2.5.9 can be updated with SDK_UPDATE package.
System tests in GitHub.
Nikita / v3.30.1-RC1
Firmware can enter bootloader after update and another 3.x firmware can be flashed.
System tests in GitHub
Note: requires manual test due to no mechanism to enter configuration mode without interaction. Nikita / v3.30.1-RC1
Action
How to test
Verified by
Firmware 2.5.9 can be updated with SDK_UPDATE package.
System tests in GitHub.
Firmware can enter bootloader after update and another 3.x firmware can be flashed.
System tests in GitHub
Note: requires manual test due to no mechanism to enter configuration mode without interaction.
Action
How to test
Verified by
Firmware 2.5.9 can be updated with SDK_UPDATE package.
System tests in GitHub.
Firmware can enter bootloader after update and another 3.x firmware can be flashed.
System tests in GitHub
Note: requires manual test due to no mechanism to enter configuration mode without interaction.
Action
How to test
Verified by
Firmware 2.5.9 can be updated with SDK_UPDATE package.
System tests in GitHub.
Firmware can enter bootloader after update and another 3.x firmware can be flashed.
System tests in GitHub
Note: requires manual test due to no mechanism to enter configuration mode without interaction.
Action
How to test
Verified by
Not Applicable

Power consumption

Power consumption is tested with Nordic Power Profiler kit at 2.4, 3.0 and 3.6 V voltages.
RuuviTag B+
RuuviTag B Basic
RuuviTag B+SHTC
RuuviTag B8
RuuviTag B8+TMP117
"Kalervo"
"Kaarle"
"Keijo"
State
Value
Verified by
Broadcasting, connectable
26 µA @ 3.6 V, 25 µA @ 3.0 V, 25 µA @ 2.4 V
Nikita / v3.30-RC6
24.5 µA @ 3.6 V, 26 µA @ 3.0 V, 28.1 µA @ 2.4 V
Nikita / v3.30-RC7
24.8 µA @ 3.6 V, 25.5 µA @ 3.0 V, 27.9 µA @ 2.4 V
Nikita / v3.30.1-RC1
Broadcasting, connected
34 µA @ 3.6 V, 34 µA @ 3.0 V, 40 µA @ 2.4 V
Nikita / v3.30-RC6
36.7 µA @ 3.6 V, 35.7 µA @ 3.0 V, 40.3 µA @ 2.4 V
Nikita / v3.30-RC7
34.3 µA @ 3.6 V, 35.8 µA @ 3.0 V, 41.7 µA @ 2.4 V
Nikita / v3.30.1-RC1
Transferring logs.
10 mA @ 3.6 V, 10.7 mA @ 3.0 V, 14.3 mA @ 2.4 V
Nikita / v3.30-RC6
9.6 mA @ 3.6 V, 10.9 mA @ 3.0 V, 15.5 mA @ 2.4 V
Nikita / v3.30-RC7
9.6 mA @ 3.6 V, 10.3 mA @ 3.0 V, 13.6 mA @ 2.4 V
Nikita / v3.30.1-RC1
State
Value
Verified by
Broadcasting, connectable
19 µA @ 3.6 V, 20.1 µA @ 3.0 V, 22.7 µA @ 2.4 V
Nikita / v3.30.3-RC