rawshn@local : ~/hustle/floro-sign-controller $

floro sign controller

A Web Bluetooth remote for FloRo neon signs: no native app, no build step, just a PWA on HTTPS.

  • stack: vanilla JS + Web Bluetooth
  • live: rawshn.com/sign-controller/
  • repo: private

What it is

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.

Features

Built for daily use with a real sign on the wall.

  • Reliable BLE writes

    Command queue with coalescing and automatic retry so mode and color changes land consistently.

  • One-tap reconnect

    Chrome getDevices() API reconnects to the last paired sign without scanning again.

  • Offline PWA

    Installable with cached assets via service worker. Platform-aware install prompts for iOS and Android.

  • Scene restore

    Saves tab, brightness, speed, color, and mode to localStorage. On connect, the UI matches what the sign displays.

Try it

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 →

← Back to hustle