Files
2026-07-20 03:05:31 -06:00

8.6 KiB
Raw Permalink Blame History

7-bit command sweep notes

Revised protocol (after sweep)

Layout: PPP M BGR (7 bits, MSB first). Same pulse timing as before.

Field Bits Meaning
PPP 3 Pattern (8 modes — not 4)
M 1 Palette / multi flag
BGR 3 Color or palette select

The old write-up treated this as 0 PP M BGR (leading bit always 0 + 2 pattern bits). The leading bit is actually pattern bit 2; the app simply never used patterns 100111.

Patterns (PPP)

PPP Name (working) Behavior
000 Steady Solid color / palette
001 Fade Fade (OEM “Fade”)
010 Sparkle Sparkle to white (OEM)
011 Firefly Firefly (OEM)
100 Twinkle Mostly off; random bulbs flash on in color (colored sparkles on dark)
101 Fast sparkle Like Sparkle but faster
110 Anti-sparkle Base color on; sparkles turn bulbs off (black sparkles)
111 Fast twinkle Faster version of Twinkle (100)

Color / palette (M + BGR)

When M=0, BGR is a normal solid color (same as before):

BGR Color
000 Off
001 Red
010 Green
011 Yellow
100 Blue
101 Magenta
110 Cyan
111 White

When M=1, BGR selects a palette (not a single RGB mix):

BGR Palette
000 Classic multi (per-bulb random across colors)
001 Christmas — red / white / green
010 July 4th — red / white / blue
011 Same as classic multi (indistinguishable from 000 in testing)
100111 Often off or pattern-dependent (see tables; Fade/Firefly sometimes treat these as solid B/M/C/W)

Palette behavior depends on pattern (e.g. Steady+Multi+1xx → off; Fade+Multi+1xx → solid colors; Sparkle+Multi+1xx → dark with white sparkles).

OEM / app subset

The phone app only used PPP in 000011 with either solid colors (M=0) or Multi (M=1, BGR=000). Hidden: palettes 001/010/011 and patterns 100111.


Known (skipped by early sweep sketch)

  • PPP 000011, M=0, any BGR → published Steady/Fade/Sparkle/Firefly × colors
  • PPP 000011, M=1, BGR=000 → Multi with those patterns

Sweep results

A) Multi + nonzero BGR (PPP 000011, M=1, BGR≠000)

Dec Binary PPP M BGR PPP M BGR Observed
9 000 1 001 Steady 1 001 red/white/green
10 000 1 010 Steady 1 010 red/white/blue
11 000 1 011 Steady 1 011 classic multi (same as 000)
12 000 1 100 Steady 1 100 off
13 000 1 101 Steady 1 101 off
14 000 1 110 Steady 1 110 off
15 000 1 111 Steady 1 111 off
25 001 1 001 Fade 1 001 red/white/green
26 001 1 010 Fade 1 010 red/white/blue
27 001 1 011 Fade 1 011 classic multi (same as 000)
28 001 1 100 Fade 1 100 blue
29 001 1 101 Fade 1 101 magenta
30 001 1 110 Fade 1 110 cyan
31 001 1 111 Fade 1 111 white
41 010 1 001 Sparkle 1 001 red/white/green
42 010 1 010 Sparkle 1 010 red/white/blue
43 010 1 011 Sparkle 1 011 classic multi (same as 000)
44 010 1 100 Sparkle 1 100 all off but still white sparkle
45 010 1 101 Sparkle 1 101 ditto
46 010 1 110 Sparkle 1 110 ditto
47 010 1 111 Sparkle 1 111 ditto
57 011 1 001 Firefly 1 001 red/white/green
58 011 1 010 Firefly 1 010 red/white/blue
59 011 1 011 Firefly 1 011 classic multi (same as 000)
60 011 1 100 Firefly 1 100 blue
61 011 1 101 Firefly 1 101 magenta
62 011 1 110 Firefly 1 110 cyan
63 011 1 111 Firefly 1 111 white

B) Alternate patterns (PPP 100111)

Dec Binary PPP M BGR PPP M BGR Observed
64 100 0 000 Twinkle 0 000 off
65 100 0 001 Twinkle 0 001 all off but red sparkle
66 100 0 010 Twinkle 0 010 ditto but green sparkle
67 100 0 011 Twinkle 0 011 ditto but yellow
68 100 0 100 Twinkle 0 100 ditto blue
69 100 0 101 Twinkle 0 101 ditto magenta
70 100 0 110 Twinkle 0 110 ditto cyan
71 100 0 111 Twinkle 0 111 ditto white
72 100 1 000 Twinkle 1 000 ditto but the sparkles are multi
73 100 1 001 Twinkle 1 001 ditto but sparkles are red/white/green
74 100 1 010 Twinkle 1 010 ditto but red/white/blue
75 100 1 011 Twinkle 1 011 ditto classic multi (same as 000)
76 100 1 100 Twinkle 1 100 off
77 100 1 101 Twinkle 1 101 off
78 100 1 110 Twinkle 1 110 off
79 100 1 111 Twinkle 1 111 off
80 101 0 000 Fast sparkle 0 000 all off but fast white sparkles
81 101 0 001 Fast sparkle 0 001 red and fast white sparkles
82 101 0 010 Fast sparkle 0 010 ditto green
83 101 0 011 Fast sparkle 0 011 ditto yellow
84 101 0 100 Fast sparkle 0 100 ditto blue
85 101 0 101 Fast sparkle 0 101 ditto magenta
86 101 0 110 Fast sparkle 0 110 ditto cyan
87 101 0 111 Fast sparkle 0 111 ditto but white (normal white is slightly dim and sparkles are brighter)
88 101 1 000 Fast sparkle 1 000 multi and fast sparkles
89 101 1 001 Fast sparkle 1 001 red/white/green and fast sparkles
90 101 1 010 Fast sparkle 1 010 ditto red/white/blue
91 101 1 011 Fast sparkle 1 011 classic multi and fast sparkles (same as 000)
92 101 1 100 Fast sparkle 1 100 off and fast sparkles
93 101 1 101 Fast sparkle 1 101 ditto
94 101 1 110 Fast sparkle 1 110 ditto
95 101 1 111 Fast sparkle 1 111 ditto
96 110 0 000 Anti-sparkle 0 000 off
97 110 0 001 Anti-sparkle 0 001 red and anti-sparkles (black sparkles)
98 110 0 010 Anti-sparkle 0 010 ditto green
99 110 0 011 Anti-sparkle 0 011 ditto yellow
100 110 0 100 Anti-sparkle 0 100 ditto blue
101 110 0 101 Anti-sparkle 0 101 ditto magenta
102 110 0 110 Anti-sparkle 0 110 ditto cyan
103 110 0 111 Anti-sparkle 0 111 ditto white
104 110 1 000 Anti-sparkle 1 000 ditto multi
105 110 1 001 Anti-sparkle 1 001 ditto red/white/green
106 110 1 010 Anti-sparkle 1 010 ditto red/white/blue
107 110 1 011 Anti-sparkle 1 011 ditto classic multi (same as 000)
108 110 1 100 Anti-sparkle 1 100 off
109 110 1 101 Anti-sparkle 1 101 off
110 110 1 110 Anti-sparkle 1 110 off
111 110 1 111 Anti-sparkle 1 111 off
112 111 0 000 Fast twinkle 0 000 off
113 111 0 001 Fast twinkle 0 001 all off but fast red sparkles
114 111 0 010 Fast twinkle 0 010 ditto green
115 111 0 011 Fast twinkle 0 011 ditto yellow
116 111 0 100 Fast twinkle 0 100 ditto blue
117 111 0 101 Fast twinkle 0 101 ditto magenta
118 111 0 110 Fast twinkle 0 110 ditto cyan
119 111 0 111 Fast twinkle 0 111 ditto white
120 111 1 000 Fast twinkle 1 000 ditto multi
121 111 1 001 Fast twinkle 1 001 ditto red/white/green
122 111 1 010 Fast twinkle 1 010 ditto red/white/blue
123 111 1 011 Fast twinkle 1 011 ditto classic multi (same as 000)
124 111 1 100 Fast twinkle 1 100 off
125 111 1 101 Fast twinkle 1 101 off
126 111 1 110 Fast twinkle 1 110 off
127 111 1 111 Fast twinkle 1 111 off

Summary

  • 8 patterns, not 4 — high bit selects the alternate set (twinkle / fast sparkle / anti-sparkle / fast twinkle).
  • M=1 is palette mode: 000/011 classic multi, 001 Christmas R/W/G, 010 July 4th R/W/B; 1xx is pattern-dependent (often off).
  • Fade/Firefly + Multi + 1xx oddly map to solid B/M/C/W — possible alias or shared decode path.
  • Names above (Twinkle, Fast sparkle, etc.) are working labels from observation, not OEM names.