Skip to content
Wirelessly control LEDs from Android
Java C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
android Split into android and arduino directories May 13, 2018
arduino Split into android and arduino directories May 13, 2018
eagle Add eagle project May 13, 2018
images Use mirror GIF instead of image May 28, 2018
.gitignore Update dependencies and clean up unused files Apr 30, 2018
LICENSE Add Medium link to README text May 28, 2018


Design and source code for controlling a ring of LEDs via Bluetooth LE. More context for the project here.



The light ring PCB design is defined in an Eagle project ready for fabrication. It uses APA102 5050 RGB LEDs.



The PCB (5V) is connected to an Adafruit Feather with BLE (3.3V) with a logic level converter. After board setup select Adafruit Feather 32u4 as the board and USBtinyISP as the programmer.

The Arduino code contains the pin definitions and has three library dependencies:



The Android Studio project builds an apk with a background service maintaining the BLE connection.

Bind to the service from another app and send commands using the AIDL interface.

You can also use the debug UI or send intents to the debug service:

adb shell am startservice net.maxbraun.lights/.DebugService
adb shell am broadcast -a net.maxbraun.lights.ALL_WHITE


Copyright 2017 Max Braun

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

You can’t perform that action at this time.