Change I2C address from default address on TSYS01 and MS5837

Hi everyone,

I am building a set of water quality sondes using the Celsius Fast-Response, ±0.1°C Temperature Sensor (TSYS01) and the Bar02 Ultra High Resolution 10m Depth/Pressure Sensor (MS5837). I want to daisy chain sets of these two sensors together on multiple sondes but all connected through the same i2c bus. I currently have three of each sensor (and would like to add more) and am using a Sparkfun Micromod Datalogging Carrier Board with an Artemis uC.

The issue that I am having is that the datasheets say that these two sensors only have two i2c address options, making it so that I can only have two of each sensor connected to the same bus. I would like to assign new i2c addresses to any additional sensors and not be limited to the two pre-programed addresses.

Is there a set of serial commands that I can use to assign new i2c addresses to these sensors? Or is my only option to use an i2c multiplexer?

Hi @Natalia, welcome to the forum! :slight_smile:

The TSYS01 has a chip select pin which allows choosing between two specified addresses, but the MS5837 only supports the single specified address (not two).

From the datasheets, neither sensor has the I2C address in writeable memory (or any writeable memory at all for that matter), so to use several of each sensor you’ll unfortunately need to use a multiplexer, or separate pins on your control board for each data line (the clock line can at least be shared, if you’re only planning to communicate with one at a time).