The Vornado EOS 9 on Home Assistant

I’m on a mission to automate my life, and I over-engineer it along the way. Lately I’ve also been Claude maxxing, which is why there are so many posts. The first post ended with the fan’s remote decoded and a plan to put the fan on Home Assistant. The fan has a perfectly good remote, so none of this needs to exist. I wanted it anyway. I used to leave the fan running all day. What I wanted was every button in Home Assistant, a few automations so it runs only when it should, and one cable for data and power. ...

October 11, 2026 · 10 min · Derek Welty

What Limits Local AI Speed on an Arduino, a Raspberry Pi and a Mac Mini

I wanted to know what actually limits how fast a small language model runs, and I wanted numbers I could trust. The usual answer is two rules: memory capacity decides which model fits, and memory bandwidth decides how fast it writes. I spent two weeks testing how far that goes on the three devices I had: an Arduino UNO Q, a Raspberry Pi 5 and a Mac mini with an M4, each writing one answer at a time (single-stream decoding; batching has its own section). Claude Code wrote the harness and ran most of the measurements. I’m a systems electrical engineer, not an ML person, so I wanted a method that rests on real data. ...

October 9, 2026 · 27 min · Derek Welty

TRMNL X, Part 2: Weather, Bike, Muni and Trash Duty

In the first post the server was running and the display was still in the mail. It showed up in July and did nothing. The screen sat on a static “install dock and USB-C” image, it didn’t react to power, and no TRMNL Wi-Fi network appeared. I tried the dock in different positions, a few USB-C cables, a wall adapter and a laptop port, then wrote to TRMNL support asking for a replacement. ...

October 6, 2026 · 10 min · Derek Welty

Game Night: Ogle on My TV, With Our Phones as Controllers

Ogle runs on my TV now: the board on the big screen, everyone tracing words on their own phone, and a small server on the Mac mini keeping score. That’s how Netflix runs its party games, and it’s how I wanted to play Ogle with friends in the same room. Ogle already has our dictionary and our rules, and Dial already puts my own app on the TV, so game night was the piece in between: our game, on our TV, scored by our own backend. ...

October 4, 2026 · 9 min · Derek Welty

A Samsung TV App for My HDHomeRun, Built During One Football Game

There’s no HDHomeRun app in Samsung’s store, so I built one with Claude Code during a football game. The Apple TV app exists, but it lists channels like files in a folder that you click through, and my Apple TV isn’t even set up right now. I’d been watching through VLC network streams on my phone or laptop. I wanted the TV itself to behave like a TV: open on a channel, flip with Ch+ and Ch-, see what’s on. As far as I could find, that didn’t exist. (SiliconDust has a sideload-only test build on their forum that I never tried.) ...

October 4, 2026 · 10 min · Derek Welty

Ogle: A Daily Boggle for My Friends, With House Rules

On a trip to Tahoe my friends and I got hooked on Netflix’s Boggle. The best part was the end of each round, when it reveals the words and their points one at a time. The part I’d change was the dictionary: Netflix leaves out slang and rude words. So I had Claude Code build our own. The point was to set our own rules and dictionary, and to grow it into a private league for the five of us instead of making a clone. My friends ogled over that game in Tahoe, so ours is called Ogle. It’s live at play.derek.engineer/ogle, and it went from first commit to live between Sunday night and Wednesday morning. ...

September 30, 2026 · 6 min · Derek Welty

aperture: the mystery signal at 916 MHz was my own dongle

This picks up captures from Aug 3-5 and Sep 24-25 on my RTL-SDR Blog V4 dongle; the first post has the full setup, the versions and how I chose the antenna’s element lengths. The short version of the setup: every capture used the dongle with the bias tee off and no external LNA or filter, on the Mac mini, with Homebrew’s librtlsdr 2.0.2 (the mainline library, not the RTL-SDR Blog fork) and rtl_433 25.12. I didn’t record where the antenna sat, how high, or which cable it used. The elements were 5.5 in for the runs on Aug 3-4, 2.5 in for the Aug 5 runs and 9.5 in for the Sep 24-25 runs; in between, on Aug 6-7, they were 16 in for the ship and aircraft tracking in the ships and aircraft post. The antenna was in a V shape until 08:45 on Aug 4 (runs M1, M2, D1 and D2) and straight vertical after that. Times are PDT (UTC-7) unless they say UTC; after 17:00 PDT the UTC date is the next day. ...

September 28, 2026 · 12 min · Derek Welty

aperture: what's on the air from 500 kHz to 1.77 GHz

I’ve already written up two things I did with this $25 RTL-SDR Blog V4 dongle in San Francisco: three 433 MHz weather sensors and ships and aircraft over SF Bay. This post is the wider look at what’s on the air around me: the V4’s whole 500 kHz to 1.766 GHz range (datasheet), whether strong FM stations overload the receiver, and a 1560 kHz AM station that turned out to be an empty channel. ...

September 26, 2026 · 16 min · Derek Welty

Using an OTA TV Antenna as a Rain Gauge (It Didn't Work)

Rain attenuates radio signals, so in theory a TV antenna and a tuner that reports signal strength should make a rain gauge. A UHF broadcast at a fixed frequency should drop when precipitation is in the path between the transmitter and the antenna. Compare it against a VHF channel, which is much less affected by rain, and you can separate weather effects from transmitter issues. Same principle as dual-band GPS receivers canceling ionospheric delay by differencing L1 and L2. ...

September 17, 2026 · 5 min · Derek Welty

aperture: tracking ships and aircraft over SF Bay with a $25 SDR dongle

After a few days of 433 MHz weather sensors, I pointed the same RTL-SDR Blog V4 ($25, secondhand off Craigslist) at San Francisco Bay: three long AIS runs for ships (they broadcast around 162 MHz) and one ADS-B run for aircraft (1090 MHz). I’m an electrical engineer but new to software-defined radio, so parts of this are me finding things out; outside knowledge is linked inline. Where I could, I compared what the software decoded with something outside my own capture, and every run’s date and time is in the table at the end so my numbers can be checked. ...

September 9, 2026 · 22 min · Derek Welty