CO₂
≤ 800ppm
Open a window or leave the door ajar
Why this range
Sleep studies see worse sleep from a night average of 1,000 ppm. The range follows ventilation research and Health Canada's residential limit. Sensor: Sensirion SCD41.
Open-source bedroom environment monitor
Five sensors, judged against sleep research. When something is off, it tells you the fix.
Bad CO₂ is out of range: open a window
What it measures
Judged against what sleep research asks of a bedroom, not office air standards. By day the app only judges CO₂ and noise.
≤ 800ppm
Open a window or leave the door ajar
Sleep studies see worse sleep from a night average of 1,000 ppm. The range follows ventilation research and Health Canada's residential limit. Sensor: Sensirion SCD41.
16–20°C at night
Turn the heating down or use a lighter duvet
Sleep efficiency falls above 25 °C. Comfort varies from person to person. Sensor: Bosch BME280.
40–60%
Use a humidifier or ventilate
Under 30 % dries your throat, over 70 % favours mould. Comfort varies from person to person. Sensor: Bosch BME280.
≤ 1lux asleep
Blackout curtains or a sleep mask
Light while you sleep disturbs your body clock. Sensor: Vishay VEML7700.
≤ 45dB(A)
Earplugs, or close the window
Sounds over 45 dB wake the brain even when you don't notice. From the WHO night noise guidelines; the night average should stay near 30 dB. Sensor: SPH0641 microphone.
The app
Each night opens with what went wrong and when. Tap a reading for its chart and the research behind the range.
Stuffy night
Over 1,000 ppm for 5 h 30 min, peaking at 1,276 ppm. Leave the door ajar tonight.
No account, no Wi-Fi, no server. Nobody else sees how you sleep.
From an hour before bed until you wake. By day, only unhealthy CO₂ or noise.
Tap a reading for its full chart and the research behind the range.
Open source
Hardware, firmware and app in one GPLv3 repository. Change the firmware in the Arduino IDE and flash it over USB.
One sample every 60 s by default (10 s to 10 min)
| Processor | nRF52840 (Seeed XIAO nRF52840 Plus) |
|---|---|
| Connection | Bluetooth Low Energy |
| CO₂ | Sensirion SCD41 |
| Temperature, humidity, pressure | Bosch BME280 |
| Light | VEML7700 |
| Noise | SPH0641 MEMS microphone, A-weighted |
| Display | 1.54″ e-ink, 152 × 152 |
| Storage | 64 Mb SPI flash |
| Power | 400 mAh LiPo, USB-C charging, deep sleep between samples |
| Sampling | 1, 5, 10 or 30 min, default 5 min |
| Firmware updates | Over USB: drag and drop one file |
| Licence | GPLv3 |
Temperature and humidity come from a BME280 that is powered only while it measures, so it doesn't warm itself up. There is no VOC sensor: it draws too much current for a battery device and its number is hard to act on.
I wanted data you can act on: high CO₂, open a window; too much light, use a sleep mask; too much noise, try earplugs.From the maker, who started Quiesco in 2026