Packet formats : new tag status/configuration packet

I would like to propose a radical addition to current format plans.

Current packets include (in addition to environment sensor readings) status and configuration about the tag. In particular transmit power and battery voltage.

  1. Actual battery voltage is particularly slow changing (although the readings may indicate otherwise) and (as has been discussed many times) not particularly significant in the ultra low power usage of the tag (see FAQ: battery.

  2. TX power changes very slowly (if at all)

Other configuration values which are important for downstream processing are never transmitted. These include “tuneables” like measurement frequency, temperature, humidity and air pressure oversampling and accelerator sample_rate and resolution as well as the firmware version.

I would like to propose transmitting a configuration information packet( perhaps format 00 ?) very infrequently ( every 5 minutes?) in addition to the sensor data packet. Since these values rarely change, missing many of these packets due to blueTooth packet dropping is not a problem.

See also the discussion regarding secure format 8

The sensor configuration data structure does support this use-case, it’s 8 byte payload which fits in BLE Mesh, GATT and Advertisement payloads.

Sending them in advertising might be unnecessary in most cases, as the configuration data doesn’t change by itself by default. It might be useful in some special use cases, such as motor vibration monitoring where tag spends most of time in low-power state and enters into high-precision mode when activity is detected. Even in those cases the state of tag can be deduced for example by rate of measurement sequence counter growth.

For the details of sensor configuration format please see https://github.com/ruuvi/ruuvi-sensor-protocols/blob/master/gatt_formats.md#sensor-configuration-writing-and-reading . The same configuration format acts as a state information format.

:thinking: