Temperature reading suddenly gone bad


I’ve been running an early RuuviTag outside for simple weather monitoring for a couple of years now, logging via Node-RED to MQTT, InfluxDB and a custom dashboard.

Suddenly this afternoon, it plummetted to roughly -13.7ºC from around +7ºC, and equally weird humidity readings. I’ve taken down the RuuviTag and checked the battery – ~2.82V according to my multimeter – and checked the raw readings… not good. It has been raining (100% rH) but inside the case it wasn’t wet.

I DFU’ed to the Beta firmware 2.5.9 and updated my decoding script to RAWv2, and it’s still bad, I think.

The data is:
[0x5,0x91,0x4c,0x26,0x9e,0x61,0x9f,0x0,0x1c,0x0,0x0,0x4,0x10,0x97,0xf6,0x8,0x0,0x3,0xfd,0xfa,0xb0,0x9,0x23,0x80]; which appears to be well-formed. In that, 0x914c would be the temperature in 0.005ºC, which is well out-of-range for indoors… -22.14ºC ? The voltage, 1.6 + (0x97f6 >> 5)/1000 is 2.815V, which is correct, so I’m fairly sure it’s just the temperature sensor giving bogus values.

The Grafana chart for the past two days shows where it went bad:

So, is a sensor suddenly going bad a thing? What should I do about it?

Much appreciated!


EDIT: Pressure’s bad too. Currently reporting 751.5 mbar. :frowning:

Testing battery with multimeter, not under load, is not valid, although 0x97F6 aka 2.815 looks good.
Can you show Graf of batteryVoltage and MeasurementSequenceNumber/1000 over the same time period.

1 Like

Thanks… I metered the battery in situ in the RuuviTag; admittedly not a good reading due to it sleeping, obviously, but I figured it was better than nothing.

I’ve replaced it with a fresh(ish) CR2450, and the RuuviTag’s reporting 3.16V. No difference in temperature.

Unfortunately I wasn’t logging batteryVoltage or MeasurementSequenceNumber, but I did have an alert set on the (firmware reported) battery voltage if the mean value over 10 measurements dropped below 2.8V, and it hasn’t triggered at all. And, after warming up indoors, it’s now stable around 2.87V.

The firmware was pretty old, though… I think it was newer than the original Kickstarter firmware it came with, but still circa 2017, and I seem to remember battery reporting wasn’t very accurate back then.

Still, with a reported 3.16V on this new cell, it’s still getting the same bad temperature readings, so I’m guessing it’s not that.

(The new cell was unused and still packaged, but I’m not exactly sure when I bought it. Probably about a year ago)

Oh, and I just noticed, hours later, reported temperature is still at precisely 0x914c (-22.14ºC) no matter which cell I use, so it’s stuck at a particular value.

The symptoms seem to be somewhat identical to what I had when I had a tag buried in a flowerbed for a couple of months (fyi: not recommended). The relative humidity went to 100% gradually over time and stayed there for months, which eventually resulted in a small amount of condensation inside the tag when the ground temperature kept going down in December 2017.

In my case letting the tag dry indoors without the battery for almost a week fixed the issue, so the damage was not permanent, probably just a small short-circuit inside the BME280 which cleared by itself as the tag dried up.

We have seen similar damages to BME280 a few times, Bosch X-rayed one in their laboratory and the tested unit had a bond wire cut off for some reason.

All other measurements are compensated by temperature so humidity and pressure are bad too.

If the issue isn’t fixed by drying as suggested by Scrin please contact sales (sales@ruuvi.com) with the date of purchase and we’ll check if it is covered by warranty.

Hmm, yeah, I think there’s a good chance it might be condensation. It was in the standard enclosure (so not directly wet), but stuck with butyl to the side of an exposed north-facing exterior wall, so quite cold and blattered by rain and wind.

I’ve removed the battery and put the tag in a 3D printer filament dry-box with silica gel to see if that helps.

If it is borked, I don’t think it’ll be covered by warranty – it’s an original Kickstarter tag.

Thanks for the advice.

Academically it might be interesting to retrieve the raw adc_T and compensation factors from the BME280 to see if the value 914C is a result of some interesting adc_T.
Probably not worth the effort.