ENS160 stops working after some days of operation

Hi! We have a network with 5 Raspberry Pi 4 model B that read values from 1 or 2 ENS160 (on this card, which integrates an ENS160 and a BME280: https://www.sparkfun.com/sparkfun-environmental-combo-breakout-ens160-bme280-qwiic.html ) connected using an 12C differential bus ( https://learn.sparkfun.com/tutorials/qwiic-differential-i2c-bus-extender-pca9615-hookup-guide/all )

After some days of operation with good results 2 ENS160 connected to one Raspberry and another one on an other Raspberry (which was the only one connected) started sending Air Quality:1 eCO2: 400 TVOC: 0, luckily I have all these data recorded and I can show you graphs of the data degradation.

It may be useful to note that at the beginning I never putted the sensor in Idle state, it was always heated, but this interfered with the BME280 readings (resulting in 3 or 4°C over the actual ambient temperature), so I had to put it in idle every 4 minutes to alternate readings from BME280 and readings from ENS160.

This is the first failing sensor and the second, different one, in a different position, on a different Raspberry, failing the same way, after the same amount of days :

The sensors claim they are operating in “0: normal mode”.

I’m now doing some tests, restarting the sensor, keeping it always in heated state, and so on, but for now the sensor is stuck in Air Quality:1, TVOC: 0, eCO2: 400 and the fact that is happening at the same time on different sensors after the same days of operation is suggesting me that is something related to the ENS160/BME280 card….

Any suggestions?

Thanks

I’d try increasing the wait between cycles (I worry that doing so every 4 minutes might throw off the internal calibration)

There is also a thread here that might help Sensor Outputs 0 in OPMODE"Normal operation" · Issue #8 · sciosense/ENS160_driver · GitHub

Are the 2 sensors on the one Pi connected to the same i2c bus? If so, you’ll need to disable one of the boards’ pull-up resistors