Built my own smart home panel – Tessera

Some of my projects end in disappointment, but this one is a nice success.

I was scrolling AliExpress, as one does, when I came across a little 4-inch touchscreen with an ESP32 built right into the back of it, a Guition ESP32-S3-4848S040. A 480×480 color display, capacitive touch, WiFi, the works, for under 15 bucks, though the pricing is dynamic and shifts each visit. So cheap.


I wondered if I could turn it into a Home Assistant control panel. A quick conversation with Claude confirmed it was feasible, so into the cart it went.

I worked up a project plan with Claude and waited for its arrival. I named it Tessera, Latin for tiles, because I envisioned the interface as a mosaic of control tiles.

It took about two weeks from online order to the working panel on my desk.

A small smart home control panel display in a gold 3D-printed frame showing nine device tiles including lights, fans, and a Nest thermostat, with the time reading 7:06 PM and indoor/outdoor temperatures of 76° and 75°.


And a video of the panel in action:

June 28, 2026

No Description

When the panel arrived, the first job was flashing the hardware and getting any kinks out of that process. My desktop recognized it easily over USB. It ships with some demo firmware, but I didn’t need it at all (I backed up the original binary just in case, I’m no newb).

Claude helped break the project into manageable chunks: hardware setup, the display stack, Home Assistant integration, UI design, configuration, and testing. Working incrementally made the project surprisingly painless.

The biggest humps to get over were the initial flash, getting the screen refresh rate optimized, and calibrating the touchscreen. After that, it was a cakewalk.

I used Claude’s new Design feature to generate a prompt for Claude Code, which then iterated on the interface until it matched the look I wanted. The 3×3 grid seems to work well for my old eyes. I gave it a soft gradient-and-frosted-glass look similar to the current look of UIs these days.

Adding devices was simple once the panel could interface with Home Assistant. I proceeded slowly, adding one device at a time. After each reflash, the new device would be there on the grid, already knowing how to display its state and toggle itself. The Nest thermostat integration took a bit to get the UI and behavior the way I wanted it, but now it works great.

Some of my subtle preferences crept in: fans that start on low instead of roaring to full speed, lights that come on at a warm 3000K, the actual indoor and outdoor temperatures tucked into the header.

The panel runs off of USB-C power and connects via wifi, so you can put one pretty much anywhere. I wanted it to be upright on my desk, so I designed a little 3D-printed stand for it. The model’s on Thingiverse if you’d like one of your own.


The whole thing is open source. If you’ve got Home Assistant and decide to get one for yourself, the firmware, the config, and the stand are all up on GitHub. I suggest using an LLM to do the device assignment and flashing. Much easier than doing it by hand.

The main drawback is that you need to run Home Assistant to use this. Amazon Alexa, Google Home, and Apple HomeKit won’t allow the panel into their precious ecosystems.

Code: github.com/cruftbox/tessera – Stand: Thingiverse

Making a Security Zine for friends and family

Last week I printed a small booklet, folded it, stapled it, and mailed copies to friends and family. I used my sweet Dungeons & Dragons stamps!

Eight pages, in color. It’s the second volume of our Cruft Manor zine, and this time the subject is personal security.


Last Christmas, Michele and I made a zine to send out to family and friends. We loved doing it.

I wanted to make another zine to scratch that itch. As a topic, I decided on personal security because I kept having the same conversations with family, friends, and neighbors who don’t live in the technology world.

Someone calls because a text said their package could not be delivered and they are not sure if it is real. Someone forwards an email asking whether Facebook really locked their account. Someone wants to know if they should click the link.

These are not foolish people. They are living in a world that has quietly become hostile to anyone who is not paying close attention to how their devices work.

Most security advice is written for people who already care about security. It lives in long articles, on Reddit, and in videos that assume you know what a DNS record is. That is fine for the tech-savvy. It does nothing for the people I worry about, who are never going to spend an afternoon reading about end-to-end encryption or quantum-resistant cryptography.

A zine solves a problem that a blog post does not. It exists in the real world. You can hand it to someone. You can read the whole thing in the time it takes to drink a coffee. And because it is a physical object, it sits on the kitchen counter instead of disappearing into a browser tab you meant to come back to.

Vol. 2 covers what comes up most:

  • Spotting scams, and the one rule that catches most of them: urgency plus a link
  • Code words a family can agree on to signal trouble quietly
  • Signal, and why to use it for anything you want kept private
  • How a VPN works, and what it does and does not protect
  • Locking your phone so a face or a fingerprint cannot open it for you
  • Keeping your software updated, including the actual commands for Windows, Mac, and Linux

I tried to make it fun and easy to read. I didn’t want it to feel like homework. Security is important, but nobody wants to spend their Saturday studying it.

The goal is not to turn anyone into a security expert. It is to move a few people from “I have no idea” to “I know the basics,” which is most of the protection most people will ever need.

If you want a copy, the PDF is here.

You can print it yourself (print on both sides, flip on the short edge), and share it with your friends and family.

If it helps one person avoid one scam, one phishing link, or one bad decision made in a moment of panic, it was worth the postage.

AI vs. logic puzzles, part two

A little over a year ago, I experimented with seeing is the current AI models could do logic puzzles. I used to do these kind of puzzles often when I was a kid, in the pre-interweb era.

At the time I tested them, they all failed to solve the puzzles correctly.

Fast forward to today, and the release of Anthropic’s Claude Fable model.

I gave Fable the same logic puzzle that the earlier Claude model failed.


Here is my initial prompt. Took less than a minute for Fable to respond.


The answer was correct and even presented in a nice table. It even brags a little about it’s speed.

This kind of reasoning is difficult and this is a marked improvement from the last test.

LLMs still have a lot of issues with guessing, going down rabbit holes, and not sticking to Occam’s Razor, but improvements in this kind of reasoning is impressive.