Difficulty getting SPS30 to work with I2C on ESP32 Thing Plus

I purchased a SPS30 and a SGP30 to use with a ESP32 Thing Plus running firmware created using ESPHome. However, I am unable to get the SPS30 to work via I2C on the ESP32. I’ve been using some example code provided via GitHub (https://github.com/paulvha/sps30/tree/master/examples). When I configure it to use UART (and plug in the connectors to the RX1 and TX1 pins on the ESP32 which are pins 16 and 17), it runs fine. When I configure it to use I2C (and plug in the connectors to SDA and SCL pins on the ESP32 which are pins 22 and 23), I cannot communicate with the SPS30.

Since ESPHome is only set up to communicate with the SPS30 via I2C, I’d really like to get I2C on the ESP32 Thing Plus working with the SPS30.

Additional troubleshooting information:

  • I can verify that the SPS30 works fine with I2C when testing with an Arduino Uno.

  • I can also verify that the ESP32 Thing Plus is able to communicate with the SGP30 via the Qwiic connector (which uses I2C) just fine.

  • I tested the ESP32 Thing Plus I2C communication with the SPS30 with the SGP30 disconnected (just in case it was interfering with communication).

Am I plugging the SPS30 into the wrong pins (22 and 23)? I tried reversing the connections so that white/purple were on 22/23 and 23/22 just in case I had something backwards. No luck. All pin numbers are described as based on the silkscreen on the back of the board.

Any other things I can try?

This might be a better question for posting a GitHub Issue so the engineer can have visibility on the problem when they are able to. Unfortunately since this driver and examples aren’t direct from SparkFun, we are unable to fully determine the issue.

Agree with Brandon, drop me a mail on the github. There are multiple options why it would not run and to overcome.