AirGradient Pro kit and I2C pullups

I’m having some issues with my AirGradient Pro kits. I moved all the sensors and the microcontrollers over to my two new kits, added SGP30 sensors, and removed the I2C pullups on the SHT sensors. However I’m seeing reliability issues with the SHT sensors. I’ve tried 50kHz and 100kHz I2C bus speeds. The display and SGP30 sensors work fine but most of the time I see no response from the SHT. I threw my scope on the I2C lines and I’m seeing rise times of almost 1500ns, well outside the SHT’s spec of 300ns max, while fall times are less than 40ns. This would indicate to me insufficient pullup current on the I2C lines. I’m going to experiment with additional pullups to see what values bring the bus back in spec.

The OLED has about 55kOhm from the I2C lines to 3V3 (with everything else disconnected). Installing the SGP30 brings that to 7.5kOhm. Now is when things get weird, because the SHT3X is a 5V part…until now, SCL/SDA to 5V have been open. Installing the SHT3X (with the module’s external pullups removed) gets us about 4MOhm to 5V, and still 7.5k to 3V3. Plugging in the ESP now gives 80k to 5V and 7k to 3V3. I have not connected the SenseAir or Plantower at this point…
Aha, also of note, I’m seeing just 3.5V P-P on SCL and SDA. So I think that in my case, removing those 10k pullups on the SHT30 was detrimental, I’ll try to solder them back on.

Okay, 10k pull-ups are back on the SHT3X. I’ve now got 6.3k to 5V and 6.1k to 3V3. In this configuration nothing works. The bus fails to initialize. If I remove either the SGP or the SHT it works again (but the rise times are still very slow).

I also have a pro kit and removed the pull-ups from the SHT (and also have a display and a SGP30 connected to the I2C bus). It does work fine for me but the rise time seems to be below 300ns in my case (or at least not too far from the 300ns if I understand the definition correctly)

I have had this issue also but no scope to see the problem.

I finally just changed the SHT30 to 3.3v by adding a wire so it’s not connected to 5v. Now all my sensors: SHT30, SGP30, BME280 and the oled are connected on same bus with original 10k pullups which results in 2.9k total. When adding the ESP I can’t reliably measure the resistance because it keeps changings and the multimeter can’t keep up. There will become a scope quite handy.
After adding SHT30 the SGP30 stops working. I’ve tried 50, 100, 200, 400khz and added different resistor values to counteract. I calculated the required value. For all speeds all sensors worked except SGP30. The only thing that did work, was when the total resistance on the bus was above 4.1k(by removing a sensor) and SGP30 happily reports. I can’t make sense of that because a value of minimal 1k
total should work.
Edited because previous reply was incomplete.

And after another try. Removing BME280 to replace it only with 10k or 5.1k resistor the SGP30 still works at 100khz. Only when adding 2k SGP30 stops working again. So I’m starting to think the SGP30 has some other issue which I can’t measure without scope. Maybe noise or other interference? Could some of you look into this? This issue SGP30 - Unkown setup error · Issue #10 · nkitanov/iaq_board · GitHub looks the same to me.

Still trying out. I came on the idea of maybe the 3.3v power line isn’t stable enough for the LDO on the SGP30 to operate hence it doesn’t respond/error. I’ve added a 22uF cap between 3.3v and ground and all sensors are now working at 100khz. I’ll report after a few days too see if it’s stays working.

This is interesting. Yes, please report back with your results.

Well it didn’t last long. I’ve had 3 i2c bus hangs in 2 weeks. Only by powering off the bus it starts working again. But SGP30 is still flaky.
With or without capacitor for 3.3v or 5v or both didn’t make a noticeable change. I tried different size capacitors up to 500uF and/or adding decoupling capacitor 0.1uF. If someone has an oscilloscope to measure these things that would help understanding the problem. I can’t tell if there is too much pull-up or too much capacitance into play.
If I would need to make a guess, this SGP30 variant on this board isn’t up to specifications required to run with multiple devices on the same i2c bus.

I did try one other thing. Because the issue is with the SGP30 itself, the power/noise problem could be on the module board itself.
There is a LDO to bring down the voltage from 5v/3.3v down to 1.8v. Although I cannot measure it, I added an extra 10uF cap to the existing 10uF and 2x 0.1uF smd caps. It’s now working. Long term stability testing again.

Let us know how this goes as my temperature and humidity goes to zero sometimes and the tvoc value goes nuts

I’ve given up and bought a couple of Awair Element sensor units off eBay for about $60 each shipped. Some cryptocurrency based on air quality monitoring (what) went under so now a bunch of people are unloading them. Given all these problems with the current Pro I simply can’t recommend it to anyone, and would be extremely hesitant to purchase the outdoor Airgradient unit that’s in development.

Sorry to hear that. Once we recognized that some people have problems running the SGP30 reliably, we stopped selling it as part of the kit and over the last week have tested extensively with the SGP40.
I have the PRO kit running with the new SGP40 (AirGradient Version without pull-ups) since a few weeks and it works without problems. We also updated the PCB and the next version will have all i2c on 3.3v.

What is the solution for us early adopters? I also have completely unreliable TVOC readings and it also brings my co2 readings to crazy levels

1 Like

Please read my last message. Im still testing but all sensors are still working without any issues. Im hopeful.
I can make pictures next few days.

1 Like

Any update on the images and is it still working ? I had to remove the Voc chip module as I was getting constant bus errors even with the resistors removed on the other chip.

Would love it if the developer would chime in on some options as well as I have a unit that I paid for with no Voc monitor


Please contact our support team for a replacement / refund.

Hi, will you also post updated gerber files?

I’m using SGP41 and the TVOC reading (index, rather than ppb) seems fine so far. Removed the pull-up resistors from the SHT module.

My CO2 goes crazy every couple of days though (goes to 5 digits, then -1, then back to 5 digit).

Pom, where did you plug the SGP41 in - 3V or 5V slot?