178 lines
8.6 KiB
Markdown
178 lines
8.6 KiB
Markdown
# 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 `100`–`111`.
|
||
|
||
### 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) |
|
||
| `100`–`111` | 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 `000`–`011` with either solid colors (`M=0`) or Multi (`M=1`, `BGR=000`). Hidden: palettes `001`/`010`/`011` and patterns `100`–`111`.
|
||
|
||
---
|
||
|
||
## Known (skipped by early sweep sketch)
|
||
|
||
- `PPP` `000`–`011`, `M=0`, any `BGR` → published Steady/Fade/Sparkle/Firefly × colors
|
||
- `PPP` `000`–`011`, `M=1`, `BGR=000` → Multi with those patterns
|
||
|
||
---
|
||
|
||
## Sweep results
|
||
|
||
### A) Multi + nonzero BGR (`PPP` `000`–`011`, `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` `100`–`111`)
|
||
|
||
| 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.
|