Project 04 · Hardware

ESP32 Desk Display

A small touchscreen that lives on my desk and talks to my Mac.

My role
Parts, wiring, firmware direction
Hardware
ESP32-S3, LD2410C, SCD41
Status
Working, both sensors running
Software
Arduino firmware, macOS bridge
Swiping through the pages: home, Mac system stats, Mac controls, an info card with a QR code, and AI coding-agent usage. The air and presence pages are not in this video yet.

What it does

  • Clock and live wallpaper. I pick a video in the browser, the Mac converts it, and the display plays it from its own SD card, even when the Mac is off.
  • Air and presence. A Sensirion SCD41 reads CO₂, temperature and humidity; an LD2410C radar keeps the screen awake while someone is within a metre and dims it after five minutes away. If the room stays above 1,500 ppm CO₂ for five minutes while someone is there, it says so.
  • Mac controls. Volume, audio output, Bluetooth devices, Wi-Fi and AirDrop from the touchscreen, through a bridge app on the Mac.
  • Work status. Progress of long-running terminal tasks and how much of my AI coding-agent quota is left.
  • Safe updates. Over-the-air firmware updates need a long press on the screen to confirm, and roll back if the new firmware fails to start.

Building it

The board is an ESP32-S3 with a 480×320 touchscreen. I chose and bought the parts, wired the sensors to the board myself with Dupont jumper wires, and mapped which GPIO pins are actually free on this particular board, with a hardware guide anyone can follow to rebuild it. The firmware and the Mac bridge were written with AI coding agents, with offline tests on the host before anything is flashed.

Status, October 2026: the latest firmware is on the device, both sensors (the LD2410C radar and the SCD41 CO₂ sensor) are wired in and running, and proximity wake-up and the air-history graph work in daily use. I have not filmed a new demo yet, and I have not measured the board's power margins with a meter. The repository says exactly what has and has not been checked on hardware.