Skip to content

Sensors

Pascal Roobrouck edited this page Jul 22, 2025 · 4 revisions

Intro

The datalogger supports several sensors. Some sensors are provided on the Printed Circuit Board (PCB), others can be connected via the GROVE or QWIIC connector. The following sensors are currently supported:

  • Bosch BME680
  • Sensirion SHT40
  • AMS TSL2591
  • Sensirion SCD40
  • Sensirion SPS30

Some sensors can measure several properties, eg BME680 measures temperature, relative humidity, barometric pressure.

In order to distinguish between the sensor and the properties it measures, we use the following names:

  • sensorDevice (eg BME680, SHT40, ..)
  • sensorChannel (eg temperature, relative humidity, ..)

As different sensorDevices, can measure the same thing (eg. BME680-temperature, SHT40-temperature, SCD40-temperature), to uniquely identify a measurement, the combination of sensorDevice and sensorChannel is used.

Discovery

When the datalogger is started (by power-on or reset), the software will do a discovery to list all the sensorDevices which are present. Adding or removing sensorDevices requires a reset of the datalogger in order to update the list of present sensorDevices.

Note : the internal battery is also treated as a sensorDevice, with 2 sensorChannels: voltage and percentCharged.

Configuring sensorChannels

You may not need all sensorChannels, and furthermore you may want a different measurement period on different channels. Example : temperature may change rapidly so we measure it every 10 minutes, whereas battery voltage only needs one measurement per day. Also some sensorChannels can benefit from 'oversampling' or 'filtering'. This means taking the average of multiple measurements in order to get a more accurate, stable measurement.

For each sensorChannel, it is possible to configure both the oversampling and the output frequency.

Oversampling

Each sensorChannel may benefit from an amount of 'oversampling', ie. take multiple samples which are then averaged into a single measurement value. The result is often a better accuracy as well as filtering of some measurement noise. The following settings are possible:

  • 0 : no oversampling, each sample is an output
  • 1 : average 2 samples to an output
  • 2 : average 4 samples to an output
  • 3 : average 10 samples to an output

Output Frequency

For each sensorChannel you can control how often a measurement is done. You can choose from the following:

  • 0 = off : channel will not produce outputs
  • 1 = every minute
  • 2 = every 2 minutes
  • 3 = every 5 minutes
  • 4 = every 10 minutes
  • 5 = every 15 minutes
  • 6 = every 30 minutes
  • 7 = every hour
  • 8 = every 2 hours
  • 9 = every 4 hours
  • 10 = every 6 hours
  • 11 = every 12 hours
  • 12 = every 24 hours
  • 13 = every 48 hours

Memory and Power consumption

It's important to limit the number of measurements to the amount really needed:

  • each measurement is recorded into memory. More measurements will fill up the available memory faster, after which the old measurements will be overwritten by new ones.
  • sampling sensors and transmitting the measurements costs energy, so more measurements means shorter battery life,

SensorChannel can be configured in two ways:

Clone this wiki locally