Перейти к содержимому

SP63BE (MixUp Backlight v2): протокол

  • BLE name обычно содержит SP63, но SPStellar — подтверждённый alias, см. ниже;
  • рекламируемый service (сканирование): E0FF;
  • GATT service (после подключения): FFE0;
  • characteristic: FFE1;
  • protocol: binary;
  • terminator и checksum отсутствуют.
53 CMD 00 01 00 LEN PAYLOAD...
Offset Поле
0 header 53
1 command
2..4 constants 00 01 00
5 payload length
6..N payload
Command Payload Назначение
02 01 status query (подтверждён на 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 скорость эффекта, SS = 0…10
53 03 01 выбрать scene 0
53 03 NN выбрать scene NN > 0
58 01 завершить выбор scene 0
58 00 завершить выбор scene NN > 0
Power on: 53 50 00 01 00 01 01
Power off: 53 50 00 01 00 01 00

Команда задаёт абсолютное состояние и является идемпотентной.

Для включения белой подсветки нужно выполнить три шага:

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

Преобразование:

WW = ceil(percent * 2.55)

Отправка только 51 / 01 WW без выбора white mode может не изменить видимый результат.

RGB также требует выбора режима:

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 — продуктовая шкала 0…10, а не произвольный байт. Интерфейс отображается на неё напрямую:

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

Применённую скорость показывает offset 42 в status. На FV4.0.27 наблюдались две нормализации: отправленный SS = 00 мог читаться обратно как 01, а всё выше 0A — как 0A. Прошивка ограничивает сохранённое значение десятью, поэтому значения выше 0A считайте выходом за диапазон. С семантикой нуля будьте осторожны — на разных режимах она неодинакова.

Status query:

53 02 00 01 00 01 01

На физическом SPStellar / FV4.0.27 он стабильно возвращает пакет 186 байт:

53 02 00 01 00 B4 <180 байт payload>

Дифференциальными трассами — когда за раз меняется ровно один параметр — подтверждены абсолютные offsets в полном пакете:

Offset Поле
10…18 firmware ASCII, например FV4.0.27
29 power: 00 OFF, 01 ON
32 mode: 01 static, 03 scene
33 scene ID при mode 03
36 white brightness WW
37…39 RGB
42 скорость эффекта