Sensors and issues with I2C

The alpha design that we first put together in October 2021 with a ESP8266 and two i2c sensors on a single channel provided reliable data capture. It was possible to leave the system running during the day collecting valid data.

In order to run multiple sensors with the same i2c address (where multiple addresses are not available on the device) we introduced a Adafruit TCA9548A 1-to-8 I2C Multiplexer Breakout. The introduction of this alongside multiple sensors (8 in total during development) we started to experience the well-documented i2c lockup phenomena that we had hoped to avoid. Despite multiple delays to allow i2c communications to complete the i2c bus would lock up and prevent further transfers from taking place.

The beta design of summer 2022 looked at using non-i2c sensors such as SPI and Analog which has proven to be more reliable but the downside being poorer choice.

There are so many sensors available to the maker community its overwhelming and its particularly difficult to keep track of which sensors use which communication method. The following table highlights some of the sensors that we have evaluated.

LabelDescriptionTypeLinkNotes
SHT31-DTemperature & Humidity Sensori2c (QT)±2% relative humidity
±0.3°C accuracy.
SGP30TVOC/eCO2 Gas Sensori2c (QT)Adafruit_SGP30 Class ReferenceVolatile Organic Compounds (VOCs) and H2,
Total Volatile Organic Compound (TVOC),
Equivalent carbon dioxide reading (eCO2).
LTR390ALS/UV Sensori2c (QT)Low cost UV sensor with both ambient light and UVA sensing
DSP310Barometric Pressure / Altitude Sensori2c (QT)High precision barometric sensor
MPL115A2Barometric Pressure & Temperature Sensori2cAdafruit GithubBest for barometric sensing only
SI1145Digital UV Index / IR / Visible Light Sensori2cAdafruit Learn
TSL2561Luminosity Sensor Breakouti2cRetired.
BMP180Barometric Pressure Sensor Breakouti2cRetired
ML8511UV SensorAnaSparkfun LearnRetired
GUVA-S12SDUV SensorAnaElectropeakFaulty Sensor maybe? Doesn’t seem to work.
BME280Temp + Humidity & Pressurei2c + SPIAdafruit Learn
MiCS-5524GasAna
MAX31856Thermocouple AmplifierSPIAdafruit Learnallows for a range of thermocouples to be connected

Some of you might be wondering why not design a PCB with all these sensors with their associated circuits laid out on a single board. Its definitely an option for the future if demand exists but for now its about simplicity and accessibility.

Leave a Reply

Your email address will not be published. Required fields are marked *