The ruuviTag case may introduce a considerable delay in temperature measurements

Dear all, I noticed that the temperature measurements are delayed by a lot because of the way the sensor is packaged. I understand that measuring sudden temperature changes reliably may not be the primary use case, but then there isn’t really a point in sending a signal multiple times a second.

I did the following test:

  1. I noted the starting temperature of the tag when it was left on the table, it was about 21 degrees.
  2. I held the tag in both my hands, probably my hands are about 36 degrees.
  3. I waited till I got the first measurement above 30 degrees
  4. I put the tag back on the table
  5. I waited till the first measurement below 25.5 degrees ((30 + 21) / 2).
    This gives me 2 time deltas: t_warm time from step 1 to step 3, and t_cold, time from step 3 to step 5.

I did these tests with:

  1. the ruuviTag in his original case, closed.
  2. the ruuviTag with the upper part of the case removed.
  3. a DS18B20 waterproof sensor attached to my raspberry pi.

the ruuviTag in his case needs more than 3 minutes to become warm!!! and after I put it back on the table it is still getting warmer for 1 minute!
In comparison the DS18B20 sensor needs 28 seconds to become warm.
With the open case things get a bit better, the sensor gets warm in less than 2 minutes.

Here are the (very inaccurate) measurements I made:
device, t_warm, t_cold
ruuvi_closed_case, > 3 min, > 6 min
ruuvi_open_case, ~ 2 min, > 3 min
DS18B20, 28 sec, 2 min and 21 secs

I guess the plastic case is isolating the sensor a bit too much.

One more thing to consider is the digital signal processing used in RuuviTag, by default the BME280 has 16 x Infinite Impulse Response filter on. You can get a lot faster response times by opening the enclosure removing the IIR filtering.

Interesting, so the case may not be the main problem. what’s the point of these IIR filters? what’s the downside if we remove them ? Are they hardware components or some data processing in the firmware?

You can set BME280_IIR_OFF to configuration.

IIR slows down the temperature response and reduces noise, the benefit of decreased noise is a lot greater than the downside of slowed response with case open - most of the time the case is closed after all. You can read more about the DSP options at Ruuvi Blog