Motivation and Early Research

Motivation and Early Research

In the fall of 2024, I got fed up with Google’s Nest support in Home Assistant. The integration had already been fragile for a while, but two things pushed me over the edge: the complexity of the setup and a the Nest SDM suddenly dropping support for issuing fan commands in an issue that never seemed to get resolved.

The setup alone felt like overkill for a single home user. To link a Nest thermostat into Home Assistant, you have to create and configure a Google Cloud Project, set up OAuth and a Pub/Sub topic, and then pay a fee just to access the Smart Device Management API. The official documentation makes it clear: there’s a US$5 registration cost for Device Access and a whole series of steps across the Google Cloud Console, Device Access Console, and Home Assistant’s credentials and subscription flow. This is enterprise-grade complexity cloud platform software - not exactly optimized for a single home user. 

The last straw for me was this long-standing bug: The SDM API stopped accepting key thermostat and fan commands. The Home Assistant maintainer pointed to the behavior being on Google’s side, and the issue lingered. It wasn’t just that one problem either; there’s a steady churn of user pain around the Nest integration - timeouts, Pub/Sub hiccups, authentication flakiness, backup bloat, and more. 

I came across iFixit’s teardown of the 2nd gen Nest . It explained how to disassemble the thermostat and showed what the components were: modular construction, a stainless-steel ring input pretending to be an optical mouse, a round 320×320 LCD, and a high repairability score. I'd always loved the design of the Nest, and the interface design with the ring. The teardown showed that I could reuse the housing and the iconic ring, display, and  mounting scheme.

So I took mine apart. That kicked off a measuring exercise: dimensions, the geometry of the ring and how turning it was measured, the clearances behind the display, and how best to route a new board that could drop in and re-use the original mechanicals. I dug into the display pinout and signaling to figure out what it would take to drive the round LCD reliably and at a decent refresh rate. I explored how to preserve the ring interaction and reverse-engineered the pinout of the bonus PCB on which the optical sensor is mounted.

From there, a plan emerged: reuse the Nest 2nd gen enclosure, ring, display, and mounts—but replace the brain with an open, locally controllable PCB built around an ESP32-C6. That gives you Wi‑Fi and BLE out of the box, plus 802.15.4 for Zigbee if that’s your preference. It also opens the door to Home Assistant via ESPHome or Zigbee, without Google’s cloud in the middle.

I was already planning all of this when I received an email from Google, retiring support for 1st and 2nd generation Nest thermostats on October 25, 2025. At that point it crossed from annoying to existential - my thermostat would be bricked if I didn't finish the PCBs. It's classic Google Graveyard and I don’t like throwing out great industrial design and solid components just because the software vendor dropped support.

Where things stand now: the faceplate PCB is working; the ring/encoder can respond to input; and the display is up, though my early driver code needs optimization to improve refresh performance.

The goal is to ship by mid-November so people can beat the retirement date. I’ll post regular development updates and open pre‑orders soon, and I’m planning an exchange option if you want to send in your existing Nest 2nd gen for a discount instead of letting it gather dust.

This project started as frustration with cloud-first design and brittle APIs. It’s turning into a way to keep good hardware alive, reduce e‑waste, and put control back in the hands of people who actually live with these devices. If you’re a tinkerer, a Home Assistant user, or just someone who hates throwing away perfectly serviceable gear, I think you’ll like where this is heading. Stay tuned.

 

 

Back to blog