Released 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.

v2.0.1 · May 2026 · MIT license

AndroidJavaBLE / GATTC++PlatformIOnRF52840NeoPixel
Contributors Cradlesss Cradlesss

VortexApp

Current device Connected to: vortex_led
Current Neon Purple Suggested Transition
Brightness

Select Device

Effects

Solid Color

R G B
Saved colors
Custom color
#8E05C2

Status

Released — v2.0.1

Platform

Android 10+ · nRF52840

13 effects
60 FPS
1024 max LEDs
Android 10+ requires
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.

Effects
13
Static ColorRainbowMoving RainbowNebula SurgeBeat BlueBeat Light BlueBlur Phase BeatRaw NoiseRun RainbowSaw ToothTransition With BreakTwinkleWave
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 connection manager

Scan, pair, and manage BLE devices — persistent state across sessions

VortexCore firmware v1

Initial LED strip driver on nRF52840 — first effect set running

Effects picker UI

Scroll-wheel overlay for switching LED animations

Coach / tutorial system

First-run guided walkthrough across all screens

VortexCore effects rework

Full effect engine rewrite — all animations stabilised

StateStorage

Firmware persists active effect and color across power cycles

Theme system

App-wide dark theme with purple accent

Settings screen

Global app preferences and configuration

Background BLE service

Foreground service with persistent notification controls

Home screen redesign

Final layout overhaul — shipped in v2.0.0

Color suggestion engine

kNN color classifier — names and surfaces recent colors

v2.0.0 — Initial release

Complete rewrite shipped under MIT license

v2.0.1 — Hotfix

Gradle sync crash and background disconnect UI fix

Icon redesign

Update icons and replace placeholder assets

Play Store listing

Public distribution via Google Play