I currently have a AHT20 temperature sensor and a 20x4 LCD on the I2C bus, which has been running great with the exception of the occasional LCD scramble that would sometimes occur when the Boron would connect to the cellular network.
I have needed to make a change and add one more temperature sensor. Adding the 3rd sensor was causing the board to crash and reboot, so I added a multiplexer TCA9548A to handle the data on the I2C. I powered the multiplexer from the 3.3v and originally left the input power to the sensor and the display on the 5v. I have not successfully been able to get everything working since getting all three on the I2C at the same time. It seems like moving all the sensor and LCD input power to the 3.3v bus would be the best way. I would have to revise the PCB to do this.
Should the sensor and LCD input power be the same as source as the I2C pullup or is the mixed voltage ok ?
Particle Workbench in VSC has me completely stuck today so I have been able to do limited troubleshooting and testing.
I attached a sketch which is what I am planning on changing the circuit to. Originally I did not have pullup resistors on channel 0 to the LCD, or on the SHT31 that is on channel 1. The SHT31 that is on channel 2 has built in pullup resistors. I misunderstood that I would need pullup resistors on the devices that are on the input channels of the multiplexer. I already had pullup resistors between the Boron and the multiplexer. The 5v power to all the 5v pullups, sensors, and LCD will be turned off via a transistor that is controlled by a digital output pin when the board goes into its sleep cycle. I did not have that on the sketch. Since I am using the multiplexer my understanding is I can use the 3.3v to power the multiplexer and pull up the I2C between the Boron and Multiplexer to 3.3v.