Your personal multi-use RGB light solution in an elegant enclosure.
Show your availability for others, receive status indications, or simply enjoy a variety of light effects. With a handful of modes and animated effects. Open-source hardware and firmware.
Manage your light from a native Linux & Windows app — presets, live monitoring, and firmware updates
Script and automate over USB & BLE with the Rust-based Attentio CLI for power users
Works independently without external devices. Just plug in an USB-C cable and go!
Standalone modes: Solid Color, Brightness, Blinking, Pulsation, Effects, Traffic Light, and Night Light
Standalone effects: Rainbow, Color Cycle, Breathing, Candle, Fire, Lava Lamp, Day/Night, Ocean, Northern Lights, Thunder Storm, Police, Health Pulse, Memory
Soft and even light distribution through 3D-printed diffuser top
Modular 3D-printed enclosure with easy swapping of different diffuser top sizes
Show your availability in real-life with the easy Traffic Light mode (Green/Yellow/Red)
Elegant and intuitive control with a single button for all standalone functions
Power and serial communication via modern USB-C connector. Debug output available over USB serial port
Update firmware over USB using DFU (Device Firmware Upgrade) protocol with bootloader. No special programmer needed
Special designed bootloader with CRC32 integrity check, version management, and seamless firmware upgrade support
Settings saved to internal flash with CRC32 integrity checking
Power off with low power mode, keeping previous activities intact
ESP32-C3 module onboard for future wireless connectivity and smart integrations
Hardware (KiCad), firmware (ChibiOS), and enclosure (OnShape) designs all publicly available
Operate your AttentioLight in two ways — standalone with a single button, or remotely from your computer over USB-C or Bluetooth using the Attentio CLI or Desktop app.
Control everything directly on the device with a single button — no app or external device needed. Just plug in USB-C power and go.
Connect over USB-C or Bluetooth Low Energy and control your device from a computer using the Attentio CLI or Desktop app.
Cycle through options in the current mode (color, speed, brightness, effects, etc.)
Switch to next mode (white flash indicates threshold reached at 2s)
Power off the device (indicated with the power-down animation)
Long press to wake device from sleep (indicated with the power-up animation)
Modes cycle via long press (wraps after last mode):
Display a single static color. Short press cycles through 12 available colors.
Adjust the global brightness level. Short press cycles through brightness levels.
Blink the current color on and off. Short press cycles through different blink speeds.
Smoothly fade brightness up and down. Short press cycles through different pulse speeds.
Animated lighting effects. Short press cycles through 13 different effects.
Quick availability indicator. Short press cycles through green, yellow, and red.
Warm, dim light for nighttime use. Short press adjusts the warm white intensity.
Companion apps to manage and control your AttentioLight from a computer — over USB-C or Bluetooth Low Energy
A native desktop app for Linux & Windows — built with Flutter + Rust, connecting over USB & BLE
Set colors with RGB & HSV pickers and fine-tune brightness in real time.
Save and recall your favorite colors — presets persist between sessions.
Real-time two-pane protocol & serial view for live diagnostics.
Flash new firmware over USB using the DFU protocol — no programmer needed.
Customize theme and accent color, and enable autostart on login.
Minimize to tray and keep quick access without cluttering your desktop.
More from the app
A fast command-line tool built in Rust — control and script your devices over USB & BLE
PCB designed in KiCad featuring STM32C071RB MCU and ESP32-C3 wireless module
Enclosure designed with OnShape and 3D-printed in three parts: translucent diffuser top, solid base, and user button
57 x 57 x 41 mm (W x L x H), 58 mm (L) w/ button
Translucent top piece for soft and even light distribution
Simplistic and elegant housing for the internal components
Intuitive button integrated in front of the enclosure
For mechanical ruggedness, ensuring durable user button and USB-C connector
Tool-free assembly with snap-fit joints for the base and diffuser top
Pinhole on the back for reset button
Real-time firmware built with ChibiOS/RT on the STM32C071 host and ESP-IDF + FreeRTOS on the ESP32-C3 wireless module, bridged by a UART link. USB DFU bootloader integration for the host.
The Wireless Module (ESP32-C3) bridges the STM32 host to wireless control over a 921600 baud UART link. It runs a NimBLE BLE peripheral advertising as AttentioLight-1 with Just-Works pairing, LE Secure Connections, and bonding persisted in NVS — so a phone or host can drive the device with the same Attentio Protocol used over USB.
Everything you need to build your own AttentioLight from PCB fabrication to final assembly
Designed for manual and production pick-and-place assembly
Recommended print settings for the enclosure:
PETG Translucent / PC Transparent
PLA
0.4mm
0.16mm
None
Follow these steps to assemble your AttentioLight:
For more details about flashing the firmware, visit the firmware repository.
Pictures from development and production
Interested in working together or have questions about the project?
Whether you're interested in collaboration, need consultation on embedded systems, firmware, or hardware design, or simply have questions about the project — I'd love to hear from you. Feel free to reach out and let's start a conversation.