RGB Sunglasses

Programmable LED sunglasses you control from your phone over Bluetooth — colors, animations, and firmware updates, all open source.

View on GitHub Latest releases

Companion app

A React Native (Expo) app for Android and iOS that connects to the sunglasses over Bluetooth Low Energy to set colors, tune animations, and adjust device settings.

nRF5340 firmware

Zephyr RTOS firmware built on the Nordic Connect SDK, driving the LEDs and exposing controls and telemetry over a BLE GATT interface.

Over-the-air updates

Firmware images are published as GitHub Releases and can be flashed to the sunglasses straight from the app — no cables required. Need to recover a device over USB instead? See the firmware recovery guide.

Extension simulator

Run LED animation extensions right in your browser — no hardware. The simulator renders the real glasses layout, detects beats from your microphone with the actual firmware DSP, reads your phone's motion sensors, and loads your own .wasm extension builds by drag-and-drop.

Write your own animation

Animations are sandboxed extensions you can build in your own repo — no monorepo checkout, no Zephyr toolchain. The extension API reference documents the rgbx ABI and its C++ wrapper, with guides for writing an extension and publishing it to the community registry.

Open source

Firmware and app live together in one monorepo on GitHub. Browse the code, file issues, or build it yourself in the provided dev container.

About the project

RGB Sunglasses is a hobby hardware project: a pair of sunglasses with addressable RGB LEDs, driven by an nRF5340 and controlled wirelessly from a phone. The monorepo contains the Zephyr firmware, the React Native control app, and the tooling used to build and release both.

The companion app talks to the hardware entirely over Bluetooth. It collects no personal information — see the Privacy Policy for the details.