Skip to content

Instantly share code, notes, and snippets.

@mbullington
Created September 27, 2020 19:32
Show Gist options
  • Select an option

  • Save mbullington/37957501a07ad065b67d4e8d39bfe012 to your computer and use it in GitHub Desktop.

Select an option

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

@mbullington

Copy link
Copy Markdown
Author

@JonasHenkens Thanks so much for this documentation! 😄

The community since making this post has been awesome, and thanks to contributions there's now the comprehensive resource for the SP110e that I wish existed when I first bought it.

I think there's a typo in SET_STATIC_COLOR, where the example doesn't use 1E.

@JonasHenkens

Copy link
Copy Markdown

I'm glad to help!
I got mine recently and was also interested in trying to control it myself.

The typo should be fixed now. 😉

@markus-wolf

Copy link
Copy Markdown

@JonasHenkens awesome job, thank you !

@TheSilentProgrammer316

Copy link
Copy Markdown

Nice job. Did somebody managed to control the individual LEDs (maybe via a custom preset)?

@roslovets

Copy link
Copy Markdown

Thank you @mbullington and @JonasHenkens. What you have found allowed me to implement Python library to control SP110E.
https://github.com/roslovets/SP110E

@dungeon77

Copy link
Copy Markdown

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

@and7ey

and7ey commented Nov 1, 2022

Copy link
Copy Markdown

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

@atchoo78

Copy link
Copy Markdown

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

@atchoo78

Copy link
Copy Markdown

@chonker99

Copy link
Copy Markdown

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
Copy Markdown

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

chonker99 commented May 20, 2023 via email

Copy link
Copy Markdown

@ram-niwas1997

Copy link
Copy Markdown

@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?

@SimeonNew

Copy link
Copy Markdown

I had to add padding to my command when renaming for it to work correctly (8 Characters).

@Kochise

Kochise commented Sep 29, 2025

Copy link
Copy Markdown

Manufacturer's product page : https://sperll.com/product/80

SP110E certification documents : https://device.report/manual/2440514

Android "LED Hue" application : https://play.google.com/store/apps/details?id=com.spled.ppze

@ramizwd

ramizwd commented Dec 22, 2025

Copy link
Copy Markdown

Thank you for the thorough documentation! I've implemented a nicer version of the Android app called Lumen

At the moment, there are few core features missing, but I'm working on implementing all of them :)

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