Extend Device to Support Carbon Monoxide (CO) Sensor

Could the current AirGradient board support the addition of a Carbon Monoxide (CO) sensor?


I don’t have experience with CO2 sensors but there are I/Os available on the board so it should be easy to add.

1 Like

I am also interested in having that as an option for the indoor kit

1 Like

It looks like there is support for a chip that could report Carbon Monoxide in ESPHome, but as the note says, you need the specific one they link to, and not search AliExpress for the same name which isn’t I2C compatible

MiCS 4514 Gas Sensor — ESPHome

1 Like

You should be able to add any of the DFRobot gravity calibrated gas sensors like the CO2 and use i2c, you’ll just need to modify the source to suit. I was tempted until I saw the cost haha

1 Like

Thank you for the information.

So just to confirm, this is the sensor you are referring to?:

And it should be compatible with the AirGradient ONE board?

Yes, that is the sensor that ESPHome shows support for.

As far as being compatible with AirGradient ONE, it isn’t something that is natively supported by their code, and since it uses a different connector type, you won’t just plug it in without some modification, but it wouldn’t take much.
The listing on dfrobot shows a plug that goes to dupont connector plugs, so you could solder on pin headers to your ONE board, then connect the wires so the labels match.
Then you need to update some code to support it. With ESPHome, the example is already in the link I posted earlier, but you would have to do that on your side, as the AirGradient repositories don’t have this chip in mind.

But this is the beauty of an open-source design is that you are able to take what has been provided, and modify it to meet your needs, the tradeoff being that you have to invest some time and knowledge to it.

1 Like

Thanks again for the clarifications. Very much appreciated.

Will update this thread as I progress with these mods. Please be patient as I have a few other things on the burner.


So I recently got annoyed trying to find a carbon monoxide alarm that gave a digital read out of CO ppm for my house. In the end UL2034 pretty much made it so alarms didn’t show a value below 30-35ppm and you would have to find something like a “low level carbon monoxide monitor”.

In my journey I found that figaro CO sensor tgs5042 used in “Defender LL6170 Low Level CO Monitor” and “First Alert CO600 Plug-In Carbon Monoxide Detector”. I don’t know if I could use that sensor so I looked around and saw that ESPHOME supported mics_4514 and bme680_bsec. I could also buy the MQ-7, Adafruit MiCS5524, Adafruit BME680 or Adafruit BME688 Carbon Monoxide sensors but some aren’t supported by ESPHOME.

So I will probably end up picking up an all the Adafruit sensors and just see how their values differ sometime by the end of the year. It would be great if AirGradient had an option to add a Carbon Monoxide sensor that they have vetted and done research on. Anyways I recommend reading this article about Carbon Monoxide sensors.

@MallocArray Thanks for the airgradient yamls configs btw.

Carbon Monoxide Sensors

Defender LL6170 Low Level CO Monitor - lists the sensor it uses
Carbon monoxide alarm vs low level CO monitor - talks about UL2034
Carbon Monoxide Detectors-When Zero Doesn’t Mean Zero - UL2034 in affect
What’s Inside a Carbon Monoxide Detector - shows life alert using figarosensor tgs5042 sensor
Carbon monoxide sensor in Home Assistant - Used an MQ-7 and it was flaky based on comments

Be careful with the MiCS and MQ sensors. They have an extremely high cross sensitivity. So even the specs say they measure CO, it will most likely be triggered also by other gases or chemicals.

Did you test these different sensors/add them successfully? How did it go? Any lessons learned you would like to share?

I am starting down this path myself.