armhub.dev
Systems · 16 pages
Systems

Smart thermostat

Inside a Nest / ecobee class thermostat — Cortex-M33 + Wi-Fi/Thread radio, capacitive touch, e-paper or LCD, HVAC relays, Matter, and how to run on 24 VAC stolen-power.

3 min read · 727 wordsupdated · May 12, 2026

A smart thermostat is at the easy end of the embedded difficulty spectrum from a CPU standpoint — but at the hard end from a power-budget and power-stealing perspective. The chip is a comfortably-fast Cortex-M33; the system constraint is "run forever from 24 V AC drawn through an HVAC relay coil without tripping the HVAC controller's brown-out detection."

At a glance

At a glance
Product class
Connected residential thermostat (Wi-Fi + Matter/Thread)
Typical SoC
Silicon Labs EFR32MG24 (Cortex-M33 + Thread/Matter)
Alt SoC
Nordic nRF5340 + nRF7002 Wi-Fi coprocessor
RAM
256 KB
Flash
1.5 MB
Wireless
Wi-Fi 6 (via coprocessor), Thread 1.3, BLE 5.3, Matter 1.3
Display
Color LCD 240×240 or e-paper 200×200
Input
Capacitive touch (FT6336 / vendor IP), rotary encoder, IR proximity
Sensors
Temperature ±0.5 °C, humidity, ambient light, occupancy (PIR / radar)
HVAC outputs
4–8 isolated relays (W, Y, G, RC, RH, O/B, AUX)
Power
24 VAC from C-wire (~5 W) or stolen from W/Y wires
Certifications
FCC, CE, Matter Alliance certified, ENERGY STAR

The C-wire problem

Older US homes don't have a "common" (C) wire at the thermostat — only R, W, Y, G. The original mercury / bimetallic thermostats didn't need power. Smart thermostats do need 5–8 W continuously, and the C-wire is the only legit way to get it.

So vendors built power-stealing circuits: trickle a few mA through the W or Y wire when the HVAC isn't calling for heat/cool. The HVAC controller's relay coil draws ~150 mA when energized; if you sneak <10 mA through it while it's off, the relay doesn't pick up and you've got phantom power.

This places a hard constraint on average system power: ~0.5–2 W maximum stolen, plus brief bursts from a supercap for Wi-Fi TX. Hence the obsession with Cortex-M33 (low power) over Cortex-M7 (faster but ~3× the active power) for this market.

Block diagram

Matter smart thermostat — full system
corememoryradioperiph
SPI + I²CI²C / IRQIPCSPIBLEThreadMatter3.3 V24 VACenergize callburst VUser interfaceTFT LCD · cap-touchRoom sensorstemp/RH · PIR · ambient lightApp Cortex-M33F78 MHz · TZ · FPU · SRAMFlash + SRAM1.5 MB flash · 16 MB QSPIMatter credentialsTrustZone · secure elementThread/BLE radiocommission + meshWi-Fi coprocessornRF7002 over SPIPhoneBLE commissioningBorder routerApple TV · eero · EchoPower-stealing AFEtrickle through W/YSupercap reservoirabsorbs Wi-Fi TX burstsRelay driverW · Y · G · O/B · AUXHVAC controller24 VAC · R · C · W · Y · GMatter fabricApple / Google / Alexa
Most home thermostats have no C-wire, so the AFE 'steals' power by trickling current through the W/Y relay coil. A supercap reservoir absorbs Wi-Fi TX bursts so the steal current stays below the HVAC controller's relay-pickup threshold.

Matter — what it actually is

Matter is an application-layer protocol that runs over IP. The transports it supports are Wi-Fi, Thread (mesh over 802.15.4), and Ethernet. For thermostats, the two common combos:

  • Wi-Fi only — directly on home Wi-Fi. Higher power (Wi-Fi radio is hungry).
  • Thread (via a border router) — much lower power; needs a Thread Border Router on the network (Apple TV, Google Home Hub, Amazon eero work). Most C-wire-free thermostats pick this.

Matter device commissioning uses BLE for setup (you scan the QR code with your phone), then transitions to Wi-Fi or Thread for operation. The thermostat exposes Matter clusters:

  • Cluster 0x0201 — Thermostat (setpoint, mode, current temp)
  • Cluster 0x0405 — Relative Humidity Measurement
  • Cluster 0x0406 — Occupancy Sensing
  • Cluster 0x0202 — Fan Control (auto/manual, speed)

Any Matter controller (Apple Home, Google Home, Alexa, SmartThings, Home Assistant) can read and set these without vendor app dependency. That's the headline feature: no more vendor lock-in for HVAC control.

Software stack

Boot ROM → MCUboot → app image (Matter SDK + Zephyr base)
                          │
                          ▼
              ┌──────────────────────────┐
              │ Zephyr kernel             │ tickless, 32 kHz RTC tick
              │ Matter stack (Cluster impl)│
              │ Thread / Wi-Fi netstack    │
              │ LVGL (UI framework)        │
              │ Display thread             │ 30 fps refresh
              │ Touch thread               │ interrupt-driven
              │ Thermostat control thread  │ 1 Hz (HVAC is slow)
              │ Telemetry thread           │ aggregates + sends every ~60 s
              └──────────────────────────┘

LVGL is the standard for embedded GUI on color displays — it has a draw model, widget library, theming, and runs comfortably on a 78 MHz M33 if your scenes are simple. Most thermostat UIs are 4–6 screens (home, schedule, settings, away mode) so this is well within budget.

The control loop is slow because HVAC is slow: relay state changes every few minutes, not milliseconds. A hysteresis algorithm with 0.5–1 °F deadband is typical; more sophisticated firmware does PID + outdoor-temp-compensated learning (the original Nest claim to fame).

The auxiliary-heat smart bit

In heat-pump systems, the firmware decides when to engage auxiliary (resistive or gas) heat. Naive thermostats just kick in aux when the room is 2 °F below setpoint. Smart ones consider:

  • Outdoor temperature (over the internet) — heat pumps are inefficient below ~25 °F.
  • Indoor temperature trajectory — if temperature is rising at 1 °F/hour, no need for aux even if delta is large.
  • Electricity rate schedule — if you're on time-of-use, delay aux until off-peak.
  • Comfort tolerance — user preference.

This is where firmware companies differentiate. Same hardware, much smarter algorithms = lower utility bills.

Real products

ProductSoCWirelessNotes
Google Nest Learning Thermostat (4th gen)Vendor M-class + ESP32Wi-Fi + Thread (Matter)The category-creator; Nest's algorithms are proprietary
ecobee SmartThermostat PremiumCortex-M class + ESP32Wi-Fi + ThreadHas air-quality sensor, voice (Alexa) built-in
Honeywell T9 / T10 ProCortex-M classWi-Fi onlyPro install, multi-zone capable
Amazon Smart ThermostatnRF52 + Wi-Fi coprocessorWi-FiCheap ($60), no display polish
Mysa for Electric BaseboardsCortex-M classWi-FiSpecialized — controls 240V baseboard heat
Sinopé TH1124WF / Stelpro KICortex-M0+ classWi-Fi or ZigbeeCanadian-market high-voltage thermostats

DIY: Home Assistant + ESP32 + relay board lets you build your own. Less polished UI, full local control.

See also