Skip to content
Using BLE beacons to robustly control multiple remote LED strips
C++ Shell
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.

Remote Controlled Shoes

These exist with some ubiquity, but at the prompting of a friend I thought it might be fun to design a system that would work more flexibly in different form factors. Ultimately, one device sits as a combination BLE beacon and peripheral that can pair with a phone and transmit the LED state via BLE advertising packets.



Device acting as BLE remote that scans for the beacon. Ordinarily this pairs with peripherals, but in this case simply scans for advertising packets, extracts the UUID, and if it is a match for its remote, will sync its state. Deployed to any number of synced devices beyond shoes, e.g. LED headphones synced with music.


Device acting as the BLE beacon — pairs with a control phone as a peripheral to set the button states, and then upon button presses will adjust its state and transmit this information via the BLE beacon minor value. BLE beacon architecture is as follows:

  • uuid: 16-byte identifier for all devices in a given family (e.g. LED shoes). In this case, the first 8-bytes represent the device family and the second 8-bytes are a unique identifier for this pair.

  • major: 2-byte device category of paired state (i.e. two shoes, 16 headphones, whatever)

  • minor: 2-byte system color state

In Action

Cycling Through Basics:

its working

You can’t perform that action at this time.