SGP30 - TVOC output appears wildly inaccurate

I’m experimenting with the SEN-16531 SGP30 breakout, and it’s responding as expected to I2C (in particular, SGP30_GET_MEASURE_TEST responds with D400). On initial power-up, the CO2eq value is the expected 400 (0x190) value, but the TVOC value is ~0x5d00, which suggests I have a very high ~24000 ppb TVOC value in my home. I don’t have a reference meter to validate this reading but expect values under 100.

I tried using the SGP30_GET_TVOC_INCEPTIVE_BASELINE/SGP30_SET_TVOC_BASELINE on power-up, and get about the same value.

After ~12 hours of operation, the TVOC value drops to ~23000, which still seems rather high. I tried a second break-out with the same results.

I am wondering if the assembly and no-wash requirements are observed with these breakouts?

See https://www.sensirion.com/fileadmin/use … ctions.pdf

What TVOC readings are you seeing at SparkFun?

Thanks -

Dana

I looked at the production process and I didn’t see a point where the board gets washed. However, if we did… it would be with deionized water to prevent corrosive damage to the electronics.

There is no way to give you a baseline reading. It is extremely dependent on the relative environment; even breathing on the sensor will cause a “TVOC” MOx sensor to spike dramatically. I recommend getting something that will trigger the MOx sensor to spike (a butane lighter worked for me with the CCS811). Otherwise to get a baseline, you would need to use a inert gas and flush an air tight chamber (preferably a heavy one).

As a note, if you are in an area with a wildfire… like we are. That will also most likely cause the sensor to spike.

Well, big surprise, I had another look at my code and immediately spotted the issue: I was reading only 3 bytes - the CO2eq - of the Measure IAQ result. Now I’m seeing completely sane values. D’oh!

Thanks -

Dana

Glad you were able to work out the issue on your own.

Happy hacking!