Spurious negative temperature readings

We are using the BR Celsius temperature sensor with the i2c switch and are getting occasional extreme negative temperature readers. We are using the BR i2c multiplexer and running it alongside the BR high precision baro sensor. Everything is read from a Pi Zero 2 and other than this issue has been running smoothly. Please see a plot below showing the issue - each time point is separated by 5 minutes, during which time the Pi has been turned off. Any suggestions on a cause?

Hi @olitills, welcome to the forum :slight_smile:

Not certain what’s going on here, so I’ve brought it up internally in case someone else does know.

That said,

we don’t have an I2C multiplexer - just an I2C Bus Splitter. If you have separate programs running that may be trying to communicate at the same time then that could potentially be the cause of some communication issues, which may show up as invalid readings.

If that’s not the case, as an interim fix it seems like it’s quite clear when the readings are incorrect, so perhaps you could have a threshold for absurd values and just request another temperature reading when one occurs, until a reasonable value is returned :slight_smile:

Some ideas:

Thank you both - I will try those hardware suggestions and see if that addresses it.

Filtering the outliers was my proposed solution incase I cannot get to the bottom of this, but we are building a large number of these instruments and so would ideally like to understand the cause.

1 Like

I tried reducing the i2c speed to 30000, with no effect. We are also getting this issue on both the pressure and temperature sensors - although interestingly this happens at different time points. So if one sensor is not read correctly, the other is not also affected. Probably only happening 5% of the time.

Should I be trying a much lower i2c speed? Also, currently we are not using a logic level converter - should we be, when interfacing these sensors with the Pi Zero 2?

On the speed front, Rusty originally mentioned

which I forgot to pass on at the time - sorry!

Nope - Raspberry Pi boards run on 3.3 V electronics internally, so 3.3 V I2C is correct. If you converted the I2C from the sensor to 5 V with a level converter it could fry the pins and/or the entire board, and converting down instead (e.g. to 1.8 V) would most likely fail to register.