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

Self-Hosted Obsidian Sync on a Raspberry Pi with Tailscale

Two spare Pis sitting around. Already running AdGuard, so Pi-hole was off the table. I wanted something actually useful. I’ve been paying $10/month for Obsidian Sync. The vault lives on my hardware anyway — it felt like paying rent on my own stuff. The alternative: run CouchDB on a Pi, point the Self-hosted LiveSync plugin at it, and use Tailscale to make the Pi reachable from anywhere without port forwarding or a public IP. E2E encrypted, zero ongoing cost, fully under my control. ...

June 26, 2026 · 8 min · Derek Welty

DIY Ambilight Part 2: Capture Working, LEDs Are Next!

The splitter finally showed up. This session was about seeing if the signal chain actually worked end to end — Apple TV → splitter → TV + B101 — and getting at least one real captured frame out of it. No LEDs wired yet, just proving the capture side works and figuring out the layout. Getting the B101 to see the signal First step after wiring everything up was setting the EDID so the B101 knows what kind of signal to advertise to the Apple TV: ...

May 3, 2026 · 6 min · Derek Welty

Building a DIY Ambilight on a Raspberry Pi 3 with an Auvidea B101

Correction, October 2026: this post and its summary made the project sound further along than it was. HDMI timing detection worked and the capture device showed up, but VIDIOC_STREAMON failed, so no frame was captured here. Part 2 is where a frame finally came out, at 1080p30. The LEDs are not wired yet either. I saw a FancyLEDs sponsorship on YouTube and figured I could build the same thing myself for less, with hardware I already had — including a B101 capture board from a prior project I never finished. Govee makes something similar but it only works with their own app — useless with an Apple TV or anything else plugged into HDMI. I wanted something source-agnostic, fully local, no subscription. This is a working log: capture pipeline is proven, splitter arrives tomorrow, LEDs not yet wired. ...

May 1, 2026 · 16 min · Derek Welty