Skip to content
Architecture

Technical architecture for the LumiFur controller

The core controller decisions: ESP32-S3 silicon, BLE command design, browser OTA, sensor inputs, power behavior, and open-source licensing.

Platform decisions

The baseline choices that shape control, updates, sensing, security, and power behavior.

BLE

BLE-first control

Direct Bluetooth control is the default path for responsive wearable interaction and setup.

OTA

OTA maintenance

Firmware delivery uses a browser-based OTA flow so updates are not limited to a bench setup.

Security

Layered security

Protocol controls and ESP32-S3 features define the protection model for firmware, settings, and wireless access.

Sensors

Sensor-aware runtime

Ambient light, motion, proximity, and audio inputs are treated as core parts of the expression pipeline rather than optional extras.

Power

Power-aware behavior

Sleep dimming, motion wake, and runtime scaling support longer sessions on wearable power budgets.

Security architecture

How firmware protocols and ESP32-S3 capabilities contribute to the protection model.

Firmware

Firmware protections

Protocol-level controls around wireless access, OTA integrity, and persistent settings.

  • Bluetooth pairing is recommended for production access to the GATT service.
  • OTA updates stream start/data packets with status acknowledgements.
  • Preferences are stored in NVS for reliable, persistent configuration.

Hardware

ESP32-S3 silicon security

Hardware capabilities available for protecting code, credentials, and data at rest.

  • Secure boot support is available for signed firmware images.
  • XTS-AES flash encryption can protect firmware and data in external flash.
  • Hardware accelerators for AES, SHA, RSA, HMAC, and digital signature.
  • World Controller support for secure and non-secure execution domains.

ESP32-S3 capability snapshot

The compute, memory, wireless, USB, I/O, and power features behind the controller baseline.

Compute

Dual-core LX7 at 240 MHz

Xtensa LX7 cores deliver higher IPC for real-time animation workloads.

AI

SIMD vector extensions

Useful headroom for DSP-style effects, filters, and future animation experiments.

Memory

OPI flash + PSRAM

High-bandwidth memory interfaces for large frame buffers and assets.

Connectivity

Wi-Fi + Bluetooth LE 5.0

802.11 b/g/n with BLE 5.0 and Mesh support (no Bluetooth Classic).

USB

Native USB OTG

Built-in USB Serial/JTAG and USB 2.0 OTG without external bridges.

I/O

Display + sensor I/O

LCD/camera interface, 45 GPIOs, and capacitive touch inputs.

Power

ULP power modes

ULP RISC-V monitors sensors in deep sleep for instant wake events.

BLE control + OTA update path

NimBLE GATT services for live control, telemetry, and firmware maintenance.

GATT service highlights

  • Advertises as LumiFur_Controller with a dedicated GATT service.
  • Face and Config characteristics switch expressions and toggle features.
  • Brightness characteristic supports write and subscribe modes.
  • Telemetry exposes temperature, logs, and build metadata.
  • NeoPixel pulses blue while advertising and turns green when connected.

Web firmware updater

Hosted on the firmware updater page with a GitHub Pages fallback. Web Bluetooth requires Chrome or Edge on a supported platform.

  1. 1Open the firmware updater on the LumiFur site or the GitHub Pages fallback.
  2. 2Connect and select your LumiFur_Controller over Bluetooth.
  3. 3Choose a .bin firmware image and start the upload.
  4. 4Keep the page open until the controller reboots.

Sensors + power intelligence

Environmental inputs and efficiency features that support wearable operation.

Sensor

APDS9960 light + proximity

Ambient light scaling plus proximity-triggered blush and eye-bounce reactions.

Motion

LIS3DH accelerometer

Shake gestures, PixelDust physics, and wake-on-motion triggers.

Audio

I2S MEMS microphone

Audio-reactive mouth animation with sound-driven effects.

Power

Power-aware runtime

Sleep dimming, ambient scaling, and motion wake logic.

Storage

NVS preference storage

Persistent brightness and sleep settings across reboots.

Display

DMA HUB75 pipeline

Double-buffered rendering for dual 64x32 1/16 scan HUB75 panels.

Status

NeoPixel status LED

Instant visual feedback for advertising and connection states.

Open-source license

LumiFur Controller firmware is released under the BSD 3-Clause License. See the repository LICENSE file for full terms.