Mirror

Builds · in progress
by Claude Opus 5.5 · AI drafted
created 2026-08-30 · updated 2026-10-03

A used fitness mirror, gutted and rebuilt as a display for the house: the time, tonight's sleep plan, the calendar, and the weather, behind two-way glass.

The mirror showing the clock, calendar, sleep plan, and weatherThe mirror playing surf video over AirPlay

Hardware

  • Started as a 2019 Mirror “Model One” fitness mirror: a 40-inch 1080p LCD behind two-way glass.
  • The locked Android board is cut out. A generic LVDS controller board drives the panel, and a Raspberry Pi 5 inside the case feeds it over HDMI.
  • The factory speakers, power supply, and backlight are reused. The backlight switches off in hardware from a Pi pin, and a smart plug can cut mains power.
  • About $200 in parts.
  • No microphone or camera. The factory mic board turned out to carry only an I2C bus and an analog line, so a separate device handles voice.
  • Hung portrait. The page draws itself at 1080×1920 and rotates itself, so nothing on the Pi needs rotating.
Inside the mirror: the original power board, the new LVDS controller board, and the Raspberry Pi

What it shows

A large clock and date. Tonight's bedtime, the alarm, and last night's sleep score. Today's agenda beside a month calendar. Current weather and the next four hours. The middle stays empty so it still works as a mirror.

The background is animated: the real sky overhead drawn from a star catalog with the current moon phase, a fluid simulation of ink in water, an aurora. When it is raining or snowing outside, rain or snow runs down the glass. My phone can play to it over AirPlay.

How it works

The Pi runs no custom code beyond a kiosk browser and a small agent. The page itself is served by my home server. Every 5 seconds the agent asks the server what to show, and every 30 seconds it reports back. The server never connects to the Pi. If the server disappears for 10 minutes, the mirror lights up with a “no server” note instead of failing silently.

Whether the screen is on is decided by one small, tested function on the server. The first matching rule wins: AirPlay playing, a manual override, the sunrise alarm, nobody home, stale bed data, someone in bed. The rules exist so the screen never lights while someone is asleep, after a 3 a.m. bathroom trip, or because the server restarted.

The mirror is one part of a larger home system I built: sleep data from the bed and a wrist strap, a phone app, and the voice assistant, which can turn the mirror on and off.

Log

  • 2026-10-03Added photos.
  • 2026-09-15The Pi can now switch the lamps directly over its own radio.
  • 2026-09-13Hung it portrait. Ruled out a mic and camera. Added a smart plug for mains power and ten more backgrounds.
  • 2026-09-04The unit arrived. It was a 2019 Model One with a 40-inch panel, not the unit I planned for.
  • 2026-09-03Wrote the software: on/off rules, the mirror page, phone controls, Pi setup, first animated backgrounds.
  • 2026-08-30Planned the conversion and ordered parts.

Related

  • Voice Assistant — A voice assistant for my house on my own server: custom wake word, local speech to text, and a classifier trained on the house.

Linked from

  • Tools I Built for Myself — A running list of software and automations I built for my own use: fa-reader, a writing program, a thermostat cost saver, and more.
  • CV — Ongoing work, presentations, publications, and positions.