Skip to content

Instantly share code, notes, and snippets.

@mbullington
Created September 27, 2020 19:32
Show Gist options
  • Save mbullington/37957501a07ad065b67d4e8d39bfe012 to your computer and use it in GitHub Desktop.
Save mbullington/37957501a07ad065b67d4e8d39bfe012 to your computer and use it in GitHub Desktop.

Reverse Engineering SP110e LED Controller

Through Bluetooth sniffing, using this method I've been able to (semi reliably) control the SP110e controller via Homebridge.

You can find this controller for very cheap here: https://www.aliexpress.com/item/4000773623427.html?spm=a2g0o.productlist.0.0.4f09329cJ7C1H4&algo_pvid=542e757b-587f-4540-8652-2195883f1349&algo_expid=542e757b-587f-4540-8652-2195883f1349-0&btsid=0bb0622a16012309671478585ed4bd&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

This entire guide is for Bluetooth LE libraries, and uses hexidecimal.

LE configuration

Service ID can be found with ffe0. Under this is two characteristics, ffe1 and ffe2.

Important:

Upon connection, you immediately need to write data in this order to prevent the connection from closing.

I'm not honestly sure why.

ffe2: 01 00 ffe1: 01 b7 e3 d5

Controlling after Connected

All of these commands should be written to the ffe1 characteristics.

VV, RR, GG, and BB in this case are hex strings between 0-255.

Turn on:

fa 0e c7 aa

Turn off:

b0 4f c2 ab

Change color:

RR GG BB 1e

Control brightness:

VV ed 29 2a

Change to preset::

VV 09 fa 2c

Change speed of preset::

VV 10 34 03

@dungeon77
Copy link

Michael, what do you think about the sp107e controller? is it possible to manage it somehow?

@and7ey
Copy link

and7ey commented Nov 1, 2022

@dungeon77 I've collected some of my SP107E findings there https://gist.github.com/and7ey/c299ff2e34ac714621b2ef4f4eeb4ae3

@atchoo78
Copy link

I just wanted to chime in and say thanks to everyone (@mbullington, @roslovets, @JonasHenkens ++) for the research and dedication.
I’m currently making a humble macOS app for controlling the SP110E 😀

Screenshot (work in progress):

Screenshot-app

@chonker99
Copy link

Did anyone found out how to control individual led pixels? As an example, I have 50 pixel LEDs, I want to turn ON pixel 5, 11, 26 and set custom colors to each one. Any ideas?

@atchoo78
Copy link

Did anyone found out how to control individual led pixels? As an example, I have 50 pixel LEDs, I want to turn ON pixel 5, 11, 26 and set custom colors to each one. Any ideas?

Not possible with the SP110e as far as I know. If you don’t re-program it, that is, but it would be just as easy to use a small microcontroller with circuitpython or micropython (Raspberry Pi Pico, ESP32 etc) for the purpose.

@chonker99
Copy link

chonker99 commented May 20, 2023 via email

@ram-niwas1997
Copy link

@chonker99 @mbullington What are your thoughts on the SP105E controller? Is it possible to manage it in some way? Do you have any suggestions on how I can control a SP105e controller? And what is the format of the commands?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment