top | item 45346259

Reverse-Engineering the LCD Display Interface of the Nest 2nd Gen Thermostat

67 points| karagenit | 5 months ago |sett.homes

22 comments

order

userbinator|5 months ago

I immediately recognised many of the commands, both their names and byte values, as exactly the same as those of the Philips PCF8833 from 2 decades ago, an extremely common LCD controller for the tiny displays on mobile phones of the time.

The displays have 320 x 320px square addressable pixels, but only the circular portion is displayed - that is to say you can draw pixels as though they were there in the lower corner, past the radius of the circle, but nothing gets drawn.

Always thought round LCDs (and rounded corners on displays and now GUI windows) were stupid, and this explains exactly why. What would otherwise be perfectly usable pixels are missing, and the panel itself is still square.

gyomu|5 months ago

Is there some sort of ideological imperative to use every single pixel? If your product design doesn’t call for it because of low information density, who cares.

KPGv2|5 months ago

> Always thought round LCDs (and rounded corners on displays and now GUI windows) were stupid

If you've ever used a Nest thermostat before, you'd understand why a square display would be stupider.

It would either:

1. force a larger interface so the square display could have its diagonal fully enclosed by the diameter of the radial control (i.e., oafishly large thermostat too big for a human hand to easily manipulate)

2. force a smaller LCD to fit inside a normal hand-sized radial control, making it less readable to all but the spriteliest of youths

3. make a radial control that is a spinning rhombus, which is pretty ugly

Or we could just do what the Nest does and the only person who "suffers" is the original designer, one time, when they write the code

karlgkk|5 months ago

I don't think they're stupid, especially if the application isn't particularly information dense.

Like... this is a thing meant to be operated at arm's length. Some extra pixels aren't going to meaningfully improve how you view the current temperature.

z3ugma|5 months ago

Author here, if anyone has deeper questions

tchebb|5 months ago

Is there a reason you wired MOSI and MISO together with a resistor instead of setting the SPI_SIO bit in the ESP32C6's SPI controller? The reference manual[1] says that bit enables "3-line half-duplex communication, where MOSI and MISO signals share the same pin" (page 866). I'm not sure if it's suitable, since the half-duplex mode (see section 28.5.8.4) seems to be designed mainly for talking to SPI flash chips.

[1] https://www.espressif.com/sites/default/files/documentation/...

jon9544hn|5 months ago

Proud of your work! Keep it up

tiniuclx|5 months ago

Well done, seems like a very challenging project!

hdx19|5 months ago

[deleted]

minton|5 months ago

I love the idea of this. Keep perfectly working things from being made obsolete artificially. They should look at the old Nest Protect next.

pabs3|5 months ago

There is a constant stream of artificially obsolete devices, its a lot of work to keep up with that. Seems like we need a Reverse Engineers Anonymous co-operative to receive hardware and donations and pay people to do the work.

matteska|5 months ago

Pre-ordered! Thanks for the reverse engineering work!

Hobadee|5 months ago

I would love to see an open source/Home Assistant native version of the Nest, if the author or anyone else has further ambitions.

IMHO the Nest is hands-down the best thermostat hardware out there. It's a case study in simplicity, elegance, and intuitive UI. I have bought a couple of them, and am likely to buy more in the future should I need another thermostat for any reason.

Google locking it down more and more, and bricking old hardware versions, is a case study in hardware enshitification. For this reason I am very hesitant to buy more.

z3ugma|5 months ago

Yep that’s what we are working on at https://sett.homes - you can pre order the replacement for the Nest 2nd gen.

I agree that I want something aesthetically pleasing if it’s going to be displayed on the walls of my home where I entertain. Nest has always been the best for this, but the software has limited it. Hence, Sett - open source PCBs in the beautiful Nest enclosure