Use this forum to chat about hardware specific topics for the ESP8266 (peripherals, memory, clocks, JTAG, programming)

User avatar
By eriksl
#84116 I am also using CCS811's. They're not to difficult to drive (compared to e.g. the bme680). My gripe is that they tend to start alright, but after a few days they give 7219 ppm (the max) and stick there. Only after a restart they're showing realistic values. I am considering applying a frequent reset to prevent this.

How do you inquire the firmware version?

All my sensors are always on and always gathering, btw, they are connected to wired power. So no startup / warm-up times.

I've been looking at the SGP30 but I decided not to buy it. IIRC it was both expensive and there was some trouble with either supply or signal voltages, either being not 3.3V. Or a difficult way to calculate real world values (like the bme680). How did you resolve the issue? If you got it working I think I'll have a go.
User avatar
By btidey
#84117 The raw breakouts of the SGP30 need a 1.8V supply and the I2C runs at this so level shifters are needed.

The Adafruit version has the voltage regulator and level shifters built in for connection to regular microcontrollers running at 3.3V but you obviously pay a premium for that.

Adafruit has libraries for this which provide a good starting point.
User avatar
By davydnorris
#84122
eriksl wrote:I am also using CCS811's. They're not to difficult to drive (compared to e.g. the bme680). My gripe is that they tend to start alright, but after a few days they give 7219 ppm (the max) and stick there. Only after a restart they're showing realistic values. I am considering applying a frequent reset to prevent this.

How do you inquire the firmware version?

All my sensors are always on and always gathering, btw, they are connected to wired power. So no startup / warm-up times.

I've been looking at the SGP30 but I decided not to buy it. IIRC it was both expensive and there was some trouble with either supply or signal voltages, either being not 3.3V. Or a difficult way to calculate real world values (like the bme680). How did you resolve the issue? If you got it working I think I'll have a go.


My whole sensor board currently runs at either 2.8 or 1.8V - I have a bunch of 1.8V sensors, so I have level shifters on the lines and half my board runs on a 1.8V I2C chain.

It sounds like your driver for the CCS811 may not be quite right - the 1.0 firmware had a problem where the app would crash and it would go back to boot mode, and so any data reading would show the error bit and code set, and data would be all ones. If you aren't checking the error then you would see a number like that. The trick is to catch the error and restart the app. I haven't had the v2.0 firmware show that same problem yet that I know of.

I'm deep sleeping so that also helps.
User avatar
By eriksl
#84123 My firmware does all the checks and the hoops. There are no errors. The value comes back completely ok, but it's just maxed out.

Maybe I'll have to dive into the generation and restore of "baseline data".

How do you guys assert whether you're dealing with v1 or v2 firmware?