adafruit / Adafruit_CircuitPython_SCD4X

CircuitPython/Python driver for Sensirion SCD40 & SCD41
MIT License
20 stars 10 forks source link

temperature_offset does not appear to be working as documented #22

Open exterm opened 3 months ago

exterm commented 3 months ago

In low power mode, the reported temperature was about 2 degrees too low.

I tried setting temperature_offset to 2, but it was still too low by ~.5 degrees, so I set it to 2.5. As a consequence, the reading was a full degree too high.

For testing purposes I set the offset to -1 , after which I read temperatures about 60 degrees too low.

The docs state:

Specifies the offset to be added to the reported measurements to account for a bias in the measured signal. Value is in degrees Celsius with a resolution of 0.01 degrees and a maximum value of 374 C

Something seems very broken here.

For context, this is how I call things:

i2c = busio.I2C(board.SCL, board.SDA)
co2_sensor = SCD4X(i2c)
co2_sensor.temperature_offset = LOW_POWER_TEMP_OFFSET
co2_sensor.start_low_periodic_measurement()
exterm commented 3 months ago

My sensor board is labeled SCD40

zachary822 commented 1 month ago

From the datasheet it seems like you have to send the offset command when the measurement is stopped. Have you tried that?