MICHAEL MORALEPORTFOLIO SET · 6 SHEETS
LINKEDIN

DETAIL 2 / E-201 — BENCHPROJECT 4 OF 7

Flipboard

SPLIT-FLAP DISPLAY · ANY TV BROWSER

A split-flap message board that runs on any TV browser. The NOW BUILDING strip on the cover borrows it.

DETAIL
2 / E-201
SHEET
E-201 · BENCH
STATUS
IN USE AT HOME
ZONE / LAYER
BENCH · SOFTWARE
BUILT WITH
Node, WebSockets, Swift
FIG. 4 — SPLIT-FLAP SKETCH + WIRING
CONTROLLER UI HTTP NODE SERVER WS TV DISPLAYS STATE: ONE JSON FILE

PROBLEM

I wanted a split-flap board at home without buying one. A streaming stick or Raspberry Pi behind any TV runs the display, and a web controller and plain HTTP API post messages by hand, on a schedule or from scripts.

BUILD

Three parts: a fullscreen display page, a controller web UI, and a Node/Express server that keeps state in one JSON file and pushes to displays over WebSockets. The flip cascades left to right with a landing bounce and caps the drum spin so long jumps stay quick. An RGB matrix mode renders messages as LED pixels. A Swift menu bar app bundles the server with its own Node runtime.

STATUS

In personal use at home, version 0.1.0. RGB matrix mode and the picture gallery were added September 7–8, 2026.

STACK

  • Node.js
  • Express 4
  • ws (WebSockets)
  • Vanilla JS, HTML, CSS
  • Web Audio API
  • Swift / AppKit
  • node:test
  • puppeteer-core

KEYNOTES · BUILD NOTES

  1. The flip sound is synthesized with no audio files: release click, landing tap, rattle and motor whir from sliced white noise.
  2. Group playlists drive member boards in lockstep, and schedules interrupt a rotation for one interval.
  3. Remote displays get per-board keys, timing-safe comparison and a 15-minute lockout after 10 failures.
  4. It respects reduced motion, and screen readers get the board as one image with a text label.

MICHAEL MORALE · DETAIL 2 — FLIPBOARD

DETAIL

2 / E-201

SHEET

E-201