Skip to Content

CTRL ONE

The CTRL ONE is a room controller with a touchscreen ePaper display, thermostat and environmental sensor in a single device. It mounts to a wall or stands on a surface, and displays temperature, humidity and CO2 while providing buttons and sliders for controlling a home through Home Assistant.

Its sensor is a factory-calibrated Sensirion SCD40 that measures temperature, humidity and CO2. The sensor is positioned in a corner cutout, separated from the heat-generating components and shielded from draughts and direct sunlight.

The firmware is ESPHome, and the ESPHome configuration is open source too. For a full feature overview, see the product page.

Documentation pages


This documentation is split into the following pages:

Specifications


Microcontroller

Espressif ESP32-C6, single-core RISC-V processor

Firmware

ESPHome 2026.7.0 or higher

Wireless connectivity

2.4 GHz WiFi 6 in the out-of-box firmware. Bluetooth 5 LE, Zigbee and Thread possible through configuration changes

Power input

5 V over the USB-C port, 4.5 V - 28 V DC through the add-on slot

USB connectivity

USB-C port exposing the flashing interface of the ESP32

Display

300 x 400 ePaper display with touchscreen and front light, supporting partial refresh

Display layout

4-column x 6-row grid of widgets (see the LVGL grid and widgets page)

Sensors

Sensirion SCD40 temperature, humidity and CO2 sensor; analog ambient light sensor (uncalibrated)

Measurement interval

30 s by default, configurable down to 5 s

Indicator

Rear-facing RGB indicator light

Expandability

8-pin add-on board slot exposing RX, TX, GPIO1, I2C and power

Sensor placement. The SCD40 is located in a corner cutout, separated from heat-generating components and shielded from draughts and direct sunlight.

Backlight. The front light switches on with touch input and adjusts its brightness automatically, staying off during the day and dimmed at night.

Firmware. Open source (GPLv3). The out-of-box firmware reads only its own sensors; widgets are added to read and control Home Assistant entities.

Note: this early revision has a misprint on the add-on slot. IO0 should read IO1, as it uses GPIO1 on the ESP32. It does not affect functionality.

Add-ons


An 8-pin header on the back of the device accepts official add-on modules, or custom hardware via the breakout board. GPIO, I2C and up to 28 V power input are supported. See the add-on connector page for the full pinout.

Source code and 3D models


All firmware configuration and 3D models are open source and hosted on Codeberg. See the ESPHome configuration page and the 3D models page for details and direct links.