Controller Firmware

LumiFur Controller

Real-time firmware for animating HUB75 LED matrices with sensor-driven interactions, BLE control, and OTA updates on the MatrixPortal ESP32-S3 platform.

LumiFur controller board

Firmware release

Current controller build and recent change notes.

Current version

v2.0.1

Released Dec 16, 2025

GitHub releaseLaunch firmware updater

Changelog highlights

  • Automated firmware build and release pipeline.
  • Web updater hosted on GitHub Pages.
  • Sensor performance tuning and BLE service refinements.
Full changelog

Physical details

Connector access, input controls, and enclosure layout designed for wearable installs.

Concept

Enclosure sketch

Early layout exploring a slim profile with accessible ports and clean cable routing for HUB75 panels.

Controller enclosure concept sketch
Close-up of the 12-pin ADC header on the controller

Expansion

12-pin ADC header

Dedicated analog header for external sensors, sliders, and custom inputs.

Side buttons on the LumiFur controller

Controls

Side button cluster

Tactile controls for quick expression changes, pairing, and brightness tweaks.

Side ports close-up on the LumiFur controller

I/O

Side ports

Accessible power and data ports for bench setup, updates, and maintenance.

Core capabilities

A performance-first firmware stack tuned for expressive LED wearables and interactive masks.

Visuals

Animated expression library

20+ real-time faces and effects including plasma, flame, fluid, and scrolling text tuned for dual HUB75 panels.

Sensors

Sensor-driven reactions

APDS9960 proximity and ambient light, LIS3DH gestures, and MEMS mic audio drive responsive animations.

Wireless

BLE command control

Switch expressions, toggle features, and adjust brightness remotely over NimBLE.

Updates

OTA firmware updates

Dedicated OTA characteristic plus web updater for fast wireless delivery.

Power

Power-aware runtime

Wake-on-motion, sleep dimming, ambient scaling, and persistent preferences in NVS.

Performance

Optimized HUB75 pipeline

DMA double buffering, optional virtual panel simulation, and extensible C++ effect modules.

Hardware + sensors

Reference hardware used by the firmware, ready for customization.

MatrixPortal ESP32-S3

ESP32-S3 controller board with APDS9960, LIS3DH, I2S MEMS mic, and a NeoPixel status LED onboard.

Dual 64x32 HUB75 panels

Two chained 64x32 RGB matrices (1/16 scan) for high-density face animations.

HUB75 ribbon + 5V power

Standard HUB75 ribbon cables plus dedicated 5V power delivery sized for LED load.

APDS9960 ambient light + proximity

Adaptive brightness plus proximity-triggered effects like blushing and eye bounce.

LIS3DH 3-axis accelerometer

Shake gestures, gravity-driven PixelDust physics, and wake-on-motion sensing.

I2S MEMS microphone

Onboard mic input for audio-reactive mouth animation.

NeoPixel status LED

Visual feedback for BLE advertising and connected states.

Onboard buttons + ADC header

View navigation buttons plus a 12-pin ADC header for external sensors.

Control + telemetry

Deep BLE control plus browser-based OTA tooling for quick updates.

  • GATT service exposes expression switching, brightness control, and feature toggles.
  • OTA characteristic streams firmware updates with live status acknowledgements.
  • Telemetry includes temperature, build metadata, and buffered log retrieval.
  • Web Bluetooth updater is hosted on the LumiFur site with a GitHub Pages fallback.