Thomas Knout

Projects

Everything I've built so far, newest first.

Render of Trackside with a four-channel screen, three keys and four dice-capped faders.

Trackside

A desk mixer for per-app volume

Trackside is a USB desk mixer that gives Windows programs physical faders. Four 60 mm faders, three keys and a 2.79" bar display sit beside the keyboard. Each fader controls one program (Discord, Spotify, a game, the program in front) or the master volume. Banks switch the faders between sets of programs with one key.

The fader caps are dice, so the pips tell you which channel is which.

Hardware

  • Custom PCB designed in KiCad, assembled by JLCPCB
  • ESP32-S3
  • 16-bit ADC for the faders
  • Low-profile hot-swap keys
  • Addressable RGB lighting
Enclosure
Modelled parametrically in Fusion 360 and 3D printed.
Firmware
Tile-based screen rendering with cross-fades and a startup animation, a custom LED driver, a fader calibration wizard, and an app icon and colour for each fader on the display. Everything talks to the PC over a line-based USB protocol.
Desktop app
  • A pixel-exact mirror of the device's screen, checked against the firmware's own drawing code compiled for desktop.
  • A large view one click away to pin programs, adjust brightness and look up what each key does.
  • A settings window for banks, keys and the device.
  • Changes edit the settings file in place and keep the user's comments.
In progress
A media mode that turns the screen into a now-playing display with album art, and colour themes for the device.
Process
Every screen was mocked up and approved before it was built. About 3,800 automated tests cover the app, protocol and rendering.
Built with
KiCad, Fusion 360, ESP32-S3 (PlatformIO), Python (Tk, Pillow, pycaw, pywinrt)

As built

Flyover

A desktop flight radar. Hardware, firmware and cloud backend, June 2026 to now.

A palm-sized flight radar that sits on a desk and shows the real aircraft flying overhead, live. I designed and built it end to end: the enclosure, the ESP32 firmware, the backend that feeds it, and the tools that make and support it.

A round 2.1" touchscreen in a case styled after a cockpit gauge shows every aircraft near the owner's home. Setup happens from a phone in a couple of minutes, with no app and no account.

200+ sold on Etsy, in four languages.

Live traffic over Toronto, with the airports marked.
An A220 from Saskatoon, 7.8 nm out and descending into Toronto.

Three-screen photo display

ESP32, SPI displays, ESP-NOW

Three tiny screens in a scale model, flipping through photos one after another. A Valentine's Day gift for my girlfriend.

Each screen has its own ESP32, SPI TFT and microSD card. One unit runs the slideshow and broadcasts the timing over ESP-NOW so the other two stay in step.

Most of the work was in getting it reliable: a custom image pipeline for the microcontrollers, two devices sharing one SPI bus, display orientation, colour correction, and SD cards that kept dropping out.

FieldMesh

LoRa mesh, Raspberry Pi, FastAPI

A mesh communications and sensing kit that works with no internet at all. The nodes are LilyGO T-Beams (ESP32, LoRa and GPS) running Meshtastic, and each one is both a data source and a relay.

A Raspberry Pi Zero 2 W is plugged into one T-Beam over USB and hosts a Wi-Fi dashboard that opens in any browser. One FastAPI service connects the radio to that dashboard: it cleans up incoming packets, keeps live node state in memory with optional SQLite history, and streams updates over server-sent events behind a simple local login.

Full write-up (PDF)

PC case and GPU covers

Reverse engineering, ABS printing

The Lian-Li O11 Vision Compact has a large empty space above the motherboard. I measured and modelled the stock grommet cover, then designed a sculpted replacement that fills the gap, lines up with the case's own geometry and hides the cables.

The RTX 5090 came with a loud, angular paint job and no lighting. I modelled a tight-fitting ABS shroud that covers the stock styling and has a channel for an LED strip.