See stale air before you feel it
Rising CO₂ often means exhaled air is building up. That's when rooms get stuffy, focus drops, and the "I need fresh air" feeling kicks in. KnowCO₂ makes that visible.
KnowCO₂ is a pocketable, open-source CO₂ monitor built on ESP32-S3. Ships with a high-precision SCD41 sensor — compatible with SCD4x and SCD30 series sensors. Designed for makers, educators, and anyone who wants to understand indoor air quality in real time.
CO₂ is more than a number. It's a proxy for ventilation, crowding, and how awake your brain feels in a room.
Rising CO₂ often means exhaled air is building up. That's when rooms get stuffy, focus drops, and the "I need fresh air" feeling kicks in. KnowCO₂ makes that visible.
Tunable thresholds map directly onto the TFT display and rolling chart. Three display modes — text summary, big number, and live graph — so you pick what fits your space.
Built using the ESP32-S3 Feather with an interchangeable CO₂ sensor — SCD41 by default, compatible with the full SCD4x family and SCD30. All firmware, PCB files, and 3D enclosure models are open so you can inspect, modify, and improve them.
Push readings to any MQTT broker (Home Assistant, Mosquitto), post JSON to a custom HTTP endpoint, or stream directly to Adafruit IO — all configurable from the built-in Wi-Fi portal.
Runs on USB-C or an optional Li-Po battery with live fuel-gauge display. Update the firmware wirelessly over Wi-Fi — no cables, no reflashing tools needed.
The web configuration portal is fully translated into 9 languages. Built with ARIA roles, keyboard navigation, and reduced-motion support throughout.
From sensor readings to graphs and Wi-Fi telemetry in a few simple layers.
The CO₂ sensor on I²C captures CO₂, temperature, and humidity every few seconds using high-accuracy NDIR technology. Ships with SCD41 — compatible with SCD4x and SCD30 series sensors.
The ESP32-S3 updates the TFT display with a smooth rolling chart, color-coded by your configured thresholds.
Built-in Wi-Fi lets you spin up an access point for configuration, or join your local network and push JSON to a cloud endpoint or local server.
Log readings, pipe them into dashboards, or contribute anonymized data to collaborative air-quality projects. Your device, your data pipeline.
KnowCO₂ is a kit-friendly platform that's simple enough for a first hardware project, but extensible enough for serious telemetry.
The default build uses off-the-shelf parts so anyone can assemble and flash the device without special tools.
Point the device at your API or MQTT bridge. Each reading arrives as a small JSON payload you can drop into any stack.
A few quick answers. You can always dive deeper in the docs and GitHub issues.
Yes — KnowCO₂ is a complete, ready-to-use device. What makes it different is that it's also fully repairable, extensible, and open. Every part can be replaced or 3D-printed, the firmware updates over Wi-Fi, and it integrates out of the box with Home Assistant, MQTT brokers, Adafruit IO, and any custom API. You own it completely — including the right to modify, repair, and extend it however you like.
KnowCO₂ ships with an SCD41 — a professional-grade NDIR CO₂ sensor. The firmware also supports the full SCD4x family and the SCD30, so you can swap in a different sensor depending on your accuracy or range needs. Calibration docs are in the repo.
Yes. Thresholds, chart scale, alert modes, and more are configurable via the Wi-Fi settings page and in firmware. The JSON configuration is stored on the device so you can tweak and re-deploy.
The device can create its own access point for first-time setup. From there, you can scan for networks, set the password, and configure your API endpoint or API key. If you skip Wi-Fi, it still works as a fully offline CO₂ display.
KnowCO₂ is designed to be fully user-serviceable. Every part is replaceable, every file is published, and you never need a specialist to fix or upgrade it.
All enclosure and sensor bracket files are published on GitHub. Print a replacement or customise the design for your own build.
The sensor uses a STEMMA QT cable over I²C — no soldering needed. Compatible with SCD30, SCD40, SCD41, and other SCD4x variants.
No USB cable or flashing tool needed. Upload a new firmware file directly from your browser while the device is on your local network.
KnowCO₂ runs on CircuitPython — a free, open-source programming language maintained by Adafruit and a global community. That means the software powering your device is fully auditable, improvable, and never locked to a vendor.
Once connected to Wi-Fi, the device is reachable by name via mDNS — no need to find its IP address. The 4-character ID is shown on the device display.
Three physical buttons control the display. No app or phone needed for day-to-day use.