Reliable BLE writes
Command queue with coalescing and automatic retry so mode and color changes land consistently.
A Web Bluetooth remote for FloRo neon signs: no native app, no build step, just a PWA on HTTPS.
FloRo Sign Controller is a progressive web app I built to control FloRo neon signs over Web Bluetooth. Connect from Chrome or Edge on desktop or Android, adjust brightness and speed, pick colors, and switch between 200 built-in animation modes, all without installing a native app.
The BLE protocol was reverse-engineered from Neon Attack. Commands go over the Nordic UART Service as ASCII strings for brightness, speed, RGB color, and animation mode. The app handles write queuing, reconnect, wake lock, favorites, and scene restore so the remote stays in sync with what the sign is actually showing.
Built for daily use with a real sign on the wall.
Command queue with coalescing and automatic retry so mode and color changes land consistently.
Chrome getDevices() API reconnects to the last paired sign without scanning again.
Installable with cached assets via service worker. Platform-aware install prompts for iOS and Android.
Saves tab, brightness, speed, color, and mode to localStorage. On connect, the UI matches what the sign displays.
Live app
Web Bluetooth requires HTTPS and Chrome or Edge. Safari and Firefox are not supported. Enable Bluetooth, power on your FloRo sign, then tap Scan & Connect.
Open FloRo Sign Controller →