Skip to content

SP63BE (MixUp Backlight v2): protocol

  • the BLE name usually contains SP63, but SPStellar is a confirmed alias — see below;
  • advertised service (scan): E0FF;
  • GATT service (after connecting): FFE0;
  • characteristic: FFE1;
  • protocol: binary;
  • no terminator and no checksum.
53 CMD 00 01 00 LEN PAYLOAD...
Offset Field
0 header 53
1 command
2..4 constants 00 01 00
5 payload length
6..N payload
Command Payload Purpose
02 01 status query (confirmed on FV4.0.27)
50 00 / 01 power off / on
53 01 01 static RGB mode
52 RR GG BB FF RGB
53 01 02 static white mode
51 01 WW white brightness
54 SS effect speed, SS = 0…10
53 03 01 select scene 0
53 03 NN select scene NN > 0
58 01 finish selecting scene 0
58 00 finish selecting scene NN > 0
Power on: 53 50 00 01 00 01 01
Power off: 53 50 00 01 00 01 00

The command sets an absolute state and is idempotent.

Turning the white light on takes three steps:

Power on: 53 50 00 01 00 01 01
Static white mode: 53 53 00 01 00 02 01 02
White 80%: 53 51 00 01 00 02 01 CC

Conversion:

WW = ceil(percent * 2.55)

Sending only 51 / 01 WW without selecting the white mode may not change the visible result.

RGB also requires selecting the mode:

Power on: 53 50 00 01 00 01 01
Static RGB: 53 53 00 01 00 02 01 01
RGB(255,0,0): 53 52 00 01 00 04 FF 00 00 FF

Scene 5:

53 53 00 01 00 02 03 05
53 58 00 01 00 01 00

Scene 0:

53 53 00 01 00 02 03 01
53 58 00 01 00 01 01
53 54 00 01 00 01 SS

SS is a product scale of 0…10, not a free byte. The UI maps onto it directly:

0, 10, 20, … 100% → SS 0, 1, 2, … 10

Status offset 42 reports the applied speed. Two normalisations were observed on FV4.0.27: sending SS = 00 could read back as 01, and anything above 0A read back as 0A. The firmware clamps the stored value at ten, so treat values above 0A as out of range — and be careful with the meaning of zero, which is not uniform across modes.

Status query:

53 02 00 01 00 01 01

On a physical SPStellar / FV4.0.27 this reliably returns a 186-byte packet:

53 02 00 01 00 B4 <180 payload bytes>

Differential traces — changing exactly one parameter at a time — confirmed these absolute offsets into the full packet:

Offset Field
10…18 firmware ASCII, e.g. FV4.0.27
29 power: 00 off, 01 on
32 mode: 01 static, 03 scene
33 scene ID when mode is 03
36 white brightness WW
37…39 RGB
42 effect speed