Skip to content

Sensor Calibration Features

To ensure long-term accuracy and reliability, PuffiAir offers three types of sensor calibration:


🌱SHT31 Temperature & Humidity Sensor Calibration

Role of Temperature & Humidity Readings

Temperature and humidity serve multiple purposes in PuffiAir:

  • Displayed to the user via MQTT and BLE
  • Used as input data for VOC sensor compensation (SGP41)\ – VOC readings are affected by humidity, so accurate compensation is crucial
  • May be used by Home Assistant automation logic (e.g. adjusting HVAC, dehumidifiers)

Therefore, keeping these readings accurate ensures:

  • Better sensor performance (especially VOC)
  • More reliable environmental monitoring
  • Improved smart home response behavior

Why Calibration Might Be Needed

The SHT31 sensor provides temperature and humidity readings, but like all sensors, it may show slight inaccuracies due to factors such as:

  • Sensor drift over time
  • PCB self-heating or nearby heat sources
  • Installation inside partially enclosed enclosures
  • Manufacturing variation between individual units

These small deviations can affect how environmental conditions are interpreted — especially in smart home automations or air quality monitoring.

How Calibration Works

PuffiAir allows users to apply manual offset values to both temperature and humidity:

  • For example, if the temperature reads 27.0 °C but a trusted thermometer shows 25.5 °C, you can set a temperature offset of -1.5 °C.
  • Similarly, a humidity offset like +5% can be applied if readings are lower than expected.

This adjustment is:

  • Done via the web interface (/, the main setup page)
  • Takes immediate effect (no reboot required)
  • Saved permanently in the internal config (/config.json)



🫁 SCD40 CO₂ Sensor Manual Calibration

Why Manual Calibration May Be Required

The SCD40 sensor by Sensirion provides accurate CO₂ concentration readings in ppm (parts per million). However, over long periods or in environments without fresh air circulation, the internal baseline may drift, leading to:

  • Readings that are consistently higher or lower than expected
  • Poor air quality detection and inaccurate alarm triggering
  • Misleading historical or Home Assistant data

This can happen especially if the device:

  • Has never been exposed to clean air (400–420 ppm)
  • Is installed in a constantly occupied or poorly ventilated room
  • Has not completed its automatic background calibration

How Manual Calibration Works

To correct the baseline, PuffiAir supports manual recalibration using the SCD40's forced recalibration mode.

Steps:

  1. Take the device to a well-ventilated location or outdoors (ideally where CO₂ concentration ≈ 420 ppm)

  2. There are two ways to initiate the calibration:

    1. Via Web Interface

    • Connect to the PuffiAir configuration page
    • Click the “Manual CO₂ Recalibrate” button
    • Ensure the device is in fresh air (~420 ppm) before calibration

    2. Via Home Assistant

    If MQTT is enabled, a switch will automatically appear:

    • Navigate to Devices → PuffiAir
    • Under Controls, toggle the "PuffiAir CO₂ Recalibrate" switch
    • You should see puffiair/recal_scd40/set topic published with a trigger signal
    • The calibration result will be logged in the Logbook
  3. The device will:

  4. Pause readings
  5. Instruct the SCD40 to set 420 ppm as the new baseline
  6. Restart CO₂ measurement within a few seconds

This feature can also be triggered via:

  • MQTT topic: puffiair/recal_scd40/set with payload ON

Tip

For accurate calibration, place the device in a well-ventilated area or outdoors before triggering this.

How Often Should You Calibrate the SCD40?

According to Sensirion, the SCD40 CO₂ sensor:

  • Performs Automatic Self-Calibration (ASC) when exposed regularly to fresh air (~400–420 ppm)
  • However, if the device is not exposed to fresh air regularly, or is used in closed environments, the ASC may not work reliably

Recommended Manual Calibration Frequency

  • Every 12 to 24 months, even if ASC is active
  • Or immediately if you observe consistently incorrect readings (e.g., always >600 ppm even in outdoor/fresh air)
  • Also after long-term storage, firmware updates, or environmental changes


🌬️ SPS30 Sensor: Automatic Fan Cleaning & Maintenance

The SPS30 sensor inside PuffiAir measures PM1.0 / PM2.5 / PM4.0 / PM10 particles. It is a laser-based optical sensor that can accumulate dust on its optical chamber over time. To ensure long-term accuracy, maintenance is required.

Auto Cleaning Fan Mechanism

SPS30 includes a built-in fan cleaning function to remove particles from the optical path. This improves sensor lifespan and accuracy.

PuffiAir automatically triggers fan cleaning every 7 days. This is handled by firmware and requires no user action.

Do I Need to Calibrate the SPS30?

No manual calibration is required for SPS30 in most scenarios. Sensirion has factory-calibrated the sensor. However, you should:

  • Avoid placing the device near strong airflow (fans or windows)
  • Use regularly in normal ambient air to maintain stability
  • Clean the enclosure vent if visible dust builds up

Info

Note on Firmware Updates: If you flash a new firmware or perform a factory reset, the device will lose the stored timestamp of the last SPS30 fan cleaning. After reboot, the system will treat it as the first startup and restart the 7-day timer from zero.

This does not harm the sensor but may result in a slightly delayed next cleaning cycle compared to the original schedule.