LogoLogo
  • Ruuvi Developer Documentation
  • Ruuvi Hardware
    • RuuviTag B
    • RuuviTag Pro
    • Ruuvi Gateway
    • Ruuvi DevShield
    • Ruuvi Connector Kit
    • TMP 117 External Sensor
  • Ruuvi Connector System
    • Introduction
    • Expansion boards
    • Cables
    • Connectors
  • Ruuvi Sensor Firmware
    • 1.2.12
    • 2.5.9
    • 3.X
      • 3.x Sensors
      • 3.x Heartbeat
    • Device Firmware Update (DFU)
  • Ruuvi Gateway Firmware
    • GW Getting Started
    • GW Web-UI
      • Greeting window
      • Internet connection settings
        • Connection via Wi-Fi
        • Connection via Ethernet
      • Software update
      • Automatic configuration download
      • Automatic updates
      • Access Settings from LAN
      • Cloud Options
        • Backend: HTTP(s)
        • Backend: MQTT(s)
        • Backend: Statistics
      • Time Synchronisation Options
      • Bluetooth Scanning Settings
      • Configuration completion
      • Authentication when accessing from LAN
    • GW Install custom firmware
    • GW nRF52811 Firmware
      • GW nRF52811 selftest
      • GW nRF52811 scanning
      • GW nRF52811 repeating
      • GW nRF52811 UART communication
  • GW ESP32 Firmware
    • GW ESP32 WiFi Hotspot
    • GW ESP32 Button
    • GW ESP32 LED
    • GW ESP32 HTTP Client
    • GW ESP32 MQTT client
  • GW Data formats
    • HTTP: Time-stamped data from Bluetooth-sensors
    • HTTP: Data from Bluetooth-sensors without timestamps
    • MQTT: Time-stamped data from Bluetooth-sensors
    • MQTT: Data from Bluetooth-sensors without timestamps
    • HTTP GET /history (with timestamps) and decoding
    • HTTP: Gateway status
    • Gateway configuration
  • GW Examples
    • Polling mode
    • Poll endpoint "/metrics"
    • Configuration update via API
    • Firmware update via API
    • Configuration download from a remote server via API
    • MQTT examples
    • Home Assistant
    • MQTT+AWS IoT Core
  • Communicate with RuuviTag devices via Bluetooth
    • Bluetooth advertisements
      • Data format 3 (RAWv1)
      • Data format 4 (URL)
      • Data format 5 (RAWv2)
      • Data format C5 (Cut-RAWv2)
      • Data format 8 (Encrypted environmental)
    • Bluetooth connection
      • DIS (Device Information Service)
      • NUS (Nordic UART Service)
        • Heartbeat transmissions
        • Read logged history
    • Real Time Transfer (RTT)
  • Communicate with Ruuvi Cloud
    • Ruuvi Cloud
      • User API
      • Gateway API
      • Internal API
      • Alerts
      • Cloud stored app settings
  • Ruuvi Community projects
    • Integrations
Powered by GitBook
On this page
Edit on GitHub
  1. Ruuvi Sensor Firmware
  2. 3.X

3.x Sensors

Lifecycle: Alpha. Last updated 2020-09-10.

Previous3.XNext3.x Heartbeat

Last updated 4 years ago

Each firmware targets a board with knowledge of what sensors there might be, and firmware manages missing sensors and overlapping data providers transparently for the user.

For example a board might have high-precision temperature sensor TMP117, temperature and humidity sensors SHTC3, pressure sensor DPS310, combined temperature, pressure and humidity sensor BME280 and accelerometer LIS2DH12 or accelerometer LIS2DW12.

At boot the board checks each sensor at the pinout where it might be, and if sensor is found it will be initialized into state stored to flash. If there isn't a state stored to flash, the sensor will be booted into default settings and defaults are stored to flash.

When application requires temperature, humidity, pressure and acceleration data, the sensors found at boot are queried in the order of initialization until all requested data is available or no more sensors remain for checking.

Some sensors, such as accelerometer, need to be constantly on to generate interrupts on events or to maintain digital signal processing to improve the quality of measurements. Others can be powered off until a new sample is needed. Generally sensors which are read rarely should be in a single-shot mode and sensors which are read at high frequency should be in continuous mode.

Test checklist

Event

Test

Version

CI / Manual

Boot

Sensor configuration is loaded from flash.

3.29+

Boot

Sensor data is read in initialization priority

3.29+

Read

Single-shot sensors are powered up

3.29+

Read

Single-shot sensors take a new sample

3.29+

Read

Single-shot sensors are powered down

3.29+

CI
Sensor data flow