In progress Android Embedded

VortexApp

BLE LED controller

An Android app paired with custom firmware for controlling BLE-connected LED strips. The app handles scanning, device management, and effect selection — the firmware handles everything else, running animations directly on the nRF52840 at 60 FPS.

AndroidJavaBLE / GATTC++PlatformIOnRF52840NeoPixel

VortexApp

Current device vortex_led
Current Neon Purple Suggested Transition
Brightness

Select Device

Effects

Solid Color

R G B
Saved colors
Custom color
#8E05C2

Status

Active development

Platform

Android 8.0+ · nRF52840

Features

BLE connection manager

Scan, connect, and manage multiple BLE devices with persistent state across sessions.

Animation selector

Scroll-wheel style picker for choosing LED animations — from Nebula Surge to Raw Noise.

Persistent preferences

Saved device list and settings survive app restarts via a custom PreferencesManager.

Modern interface

Clean, minimal UI with dark surfaces, purposeful use of color, and smooth interactions.

System architecture

VortexApp is one half of a two-part system. The Android app handles scanning, connection management, and UI — but all the actual LED logic runs on custom firmware (VortexCore) flashed to a Seeed XIAO nRF52840. The app sends simple BLE commands; the controller handles everything else.

VortexApp Android · Java BLEService Preferences BLE GATT Custom protocol SetAnimation · SetBrightness SetRgb · Ping · GetState VortexCore C++ · PlatformIO nRF52840 · 60 FPS EffectEngine StateStorage Adafruit NeoPixel up to 1024 LEDs LED strip
Roadmap

BLE service & device manager

Core connection handling, GATT communication

Animation selector UI

Scroll-wheel picker with overlay selection

VortexCore firmware

Custom BLE GATT service, EffectEngine, up to 1024 LEDs

UI redesign

In progress — refined layout and modern aesthetic

Brightness & effect controls

Fine-grained per-device control

Public release

APK + potential Play Store listing