# Integrate the Carbon Dioxide (CO2) Module

# Integrate the Carbon Dioxide (CO2) Module

Enhance your Everything Presence Pro with CO₂ monitoring for air quality awareness.

## What You Need

* **Everything Presence Pro** (powered off)
* **CO₂ sensor module** (SCD40, sold separately, [available here](https://shop.everythingsmart.io/products/everything-presence-one-lite-co2-add-on?_pos=1&_psq=co2&_ss=e&_v=1.0))

## Remove the front cover

We need to remove the front cover of the EP Pro first to install the CO2 sensor. Find more details [here](https://docs.everythingsmart.io/doc/using-the-ceiling-mount-TowjOjLVa4#h-disassembling-the-original-enclosure) on the best way to do that.

## Install the CO₂ Sensor

### Locate the GPIO Header


1. Remove power from your Pro device
2. Locate the **GPIO header** on the Pro board

 ![](https://docs.everythingsmart.io/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2U1MTYzNjNkLThhMWItNDI0Zi1hOTk5LTI0ZDFmMDUxZDNhZi82ODBiZjNjOC0yOTFlLTRhYTYtOWQ1YS0xNDFhN2M1YTAzZWIvZXZlcnl0aGluZy1wcmVzZW5jZS1wcm8tY28yLW1vZHVsZS1waW5zLmpwZyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkzNjc1NzAwLCJleHAiOjE3OTM3NjIxMDB9.b2rw1y7CE8lskE2SXltEgNht-q_V0ajHJaI14Ov6HGg)

### Connect the Module


1. Align the **CO₂ sensor module** with the GPIO pins, ensuring:
   * **3.3V** on the sensor matches **3.3V** on the board
   * **GND** on the sensor matches **GND** on the board
   * **SDA** (GPIO4) and **SCL** (GPIO16) pins are correctly aligned
2. Firmly **push the CO₂ module onto the GPIO pins**

 ![](https://docs.everythingsmart.io/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2U1MTYzNjNkLThhMWItNDI0Zi1hOTk5LTI0ZDFmMDUxZDNhZi81ZDY0ZmNkNS03ZjFkLTRlYzUtOWIxMi1iZDAxMWQxYjAzZTYvZXZlcnl0aGluZy1wcmVzZW5jZS1wcm8tY28yLWluc3RhbGxlZC5qcGciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MzY3NTcwMCwiZXhwIjoxNzkzNzYyMTAwfQ._XaixolTRypdA8XsA58pwbDv5z5OWbTIBTjNkObNEPE)


:::warning
**Important:** The module only fits one way. Do not force it if the pins don't align.

:::


:::tip
There is a foam cushion that will sit on the PCB to support the CO2 sensor pre-installed.

:::


---

## Enable CO₂ in Firmware

After physically installing the module, you need to enable CO₂ support in the firmware.

### Option 1: Switch Firmware from Home Assistant (Recommended)

If your Pro is already connected to Home Assistant:


1. Go to **Settings** → **Devices & Services** → **ESPHome**
2. Find your Pro device and click **Configure**
3. Locate the **CO2 Sensor** select entity
4. Change from **Disabled** to **Enabled**
5. Press the **Apply update** button
6. Wait for the device to update and restart (takes 1-2 minutes)

The CO₂ sensor entities will appear automatically after the restart.

### Option 2: Flash via Web Browser


:::warning
This option will be available soon, use option 1 for now.

:::

If you prefer to flash directly or are setting up for the first time:


1. Connect your Pro to your computer via USB-C
2. Visit the firmware flasher below
3. Select your options:
   * **Network**: WiFi or Ethernet (match your current setup)
   * **CO2 Module**: Yes
   * **Bluetooth Proxy**: Your preference
4. Click **Connect** and follow the on-screen instructions

[https://docs.everythingsmart.io/flash/everything-presence-pro.html](https://docs.everythingsmart.io/flash/everything-presence-pro.html)


---

## Verify in Home Assistant

Once the firmware update is complete, the CO₂ sensor should automatically appear in Home Assistant:

* **CO2** - Carbon dioxide concentration in ppm
* **Calibrate CO2** - Button to calibrate the sensor


---

## Understanding CO₂ Readings

The CO₂ sensor measures carbon dioxide concentration in parts per million (ppm). Here's what typical readings mean:

| CO₂ Level | Air Quality | Action |
|-----------|-------------|--------|
| 400-450 ppm | Fresh outdoor air | Ideal  |
| 450-700 ppm | Good indoor air | No action needed |
| 700-1000 ppm | Acceptable  | Consider ventilation |
| 1000-2000 ppm | Poor        | Open windows |
| 2000+ ppm | Very poor   | Improve ventilation immediately |

**Tip:** CO₂ levels are an excellent indicator of ventilation quality. Use automations to trigger fans, send notifications, or change the LED colour when levels exceed your preferred threshold.


---

## LED Environmental Mode

With the CO₂ module installed, you can use **Environmental Mode** for the RGB LED:


1. Set **LED Mode** to "Environmental" or "Environmental + Presence"
2. The LED will indicate air quality:
   * **Green** (steady) - Good air quality (< 800 ppm)
   * **Yellow** (slow pulse) - Moderate (800-1200 ppm)
   * **Red** (fast pulse) - Poor (> 1200 ppm)

See [LED Modes & Customization](/doc/e3365f20-a77d-4336-b0c1-dc15b821fbc1) for more details.


---

## Calibrating the CO₂ Sensor

The SCD40 CO₂ sensor is factory-calibrated but may need recalibration over time for best accuracy.

### When to Calibrate

* After installing the sensor for the first time
* If readings seem consistently off by more than 50-100 ppm
* After the sensor has been stored for extended periods
* Periodically (every 6-12 months) for best accuracy

### How to Calibrate


1. Place the Pro in **fresh outdoor air**, or near an open window with good airflow
2. Wait at least **5 minutes** for the sensor to stabilize
3. In Home Assistant, find the **Calibrate CO2** button entity
4. Press the button to calibrate to 419 ppm (current atmospheric CO₂ average)

**Important:** The sensor must be exposed to fresh air during calibration. Indoor air typically has higher CO₂ levels due to human respiration.


---

## Troubleshooting

### CO₂ Entity Not Appearing


1. Verify the module is firmly seated on the GPIO pins
2. Check that CO₂ firmware is installed (CO2 Sensor entity should show "Enabled")
3. Restart the device from Home Assistant
4. If still not working, try reflashing the CO₂ firmware via USB

### Readings Seem Inaccurate

* Allow 24-48 hours for the sensor to stabilize after first install
* Calibrate the sensor in fresh outdoor air
* Ensure the sensor isn't near heat sources or in direct sunlight

### Environmental LED Mode Not Working

Environmental LED mode requires the CO₂ module to be installed and the CO₂ firmware variant enabled. Without the module, this mode has no effect.

---

**Documents**

- [EP1 vs EPL: Which Sensor is Right for You?](https://docs.everythingsmart.io/s/products/doc/ep1-vs-epl-which-sensor-is-right-for-you-5B3RxiY3Kp)
- [Everything Presence One (EP1)](https://docs.everythingsmart.io/s/products/doc/everything-presence-one-ep1-3R178yZSUP)
- [Everything Presence Pro](https://docs.everythingsmart.io/s/products/doc/everything-presence-pro-nh3fIXmow9)
- [Everything Presence Lite (EPL)](https://docs.everythingsmart.io/s/products/doc/everything-presence-lite-epl-ZVnBzYzuX2)
- [Zone Configurator](https://docs.everythingsmart.io/s/products/doc/zone-configurator-93b9scGsa2)
- [Knowledge Base Articles](https://docs.everythingsmart.io/s/products/doc/knowledge-base-articles-KnRRmk4zvt)