Aspect Pro
— BLE LED Controller
A React Native app controlling an LED matrix over Bluetooth Low Energy, from device discovery to real-time color control.








Overview
Aspect Pro is a React Native app that controls a physical LED matrix over Bluetooth Low Energy. Point the app at the device and you get real-time control over brightness and saturation, a library of predefined color schemes, and the ability to generate a color palette from any photo and push it straight to the hardware.
It’s a hardware-adjacent project end to end: the interesting problems live at the boundary between the mobile app and the device.
My Role
I built the app end-to-end.
- Implemented the full BLE lifecycle: device discovery, pairing, connection state management, and characteristic writes.
- Built real-time brightness and saturation controls with immediate feedback on the physical device.
- Wrote on-device color palette generation that extracts a palette from a user’s image and maps it onto the LED matrix.
Key Challenges
BLE state is messy. Connections drop, devices disappear mid-write, and platforms report state differently. The app had to model the full connection lifecycle explicitly so the UI always reflected reality.
Real-time control over a slow channel. Sliders that write over BLE need throttling and write-queue discipline — naive implementations flood the characteristic and the device lags behind the user’s finger.
Palette extraction on-device. Generating a usable palette from an arbitrary photo, fast enough to feel interactive, without shipping the image anywhere.
Outcome
A working controller that makes the hardware feel directly connected to your fingertips — and a deep dive into the BLE / hardware integration space I’m continuing to explore.