Light Show
Found under GUI on the device's panel list.
Light Show
Picks one of the device's built-in LED patterns, or cycles through all of them automatically.
The screen
A single list fills the screen, captioned "Let's get Lit", of 14 built-in patterns. Selecting one applies it right away.
Controls
| Button | Action |
|---|---|
| Center (or tap) | Apply the highlighted pattern |
| Blue | Start or stop auto-cycling; label reads "cycle" or "stop" |
| Gray | Turn the LEDs off; label reads "off" |
| Cancel | This help page |
Yellow, Green and Red carry no label here and do nothing. HOME leaves the screen from here, as it does everywhere else in the menu.
The patterns
14 built-in patterns, fixed in the firmware rather than loaded from the SD card: manual, rainbow, snowstorm, redchase, rainbowchase, bluechase, greendot, palebluedot, bluesin, whitefade, mic level bar, zylon, mic spectrum, accelerometer. All seven of the board's LEDs are used by every pattern.
Mic level bar and mic spectrum are both driven by the onboard microphone but show different things. Mic level bar is a level meter: it fills the strip with a colour ramp, green to red, as the sound gets louder. Mic spectrum instead tracks the loudest frequency bin, filling the strip blue to white with that spectral peak rather than the overall volume.
Zylon sweeps a single red dot with a dim red tail from one end of the strip to the other and back, covering every LED with no gap at either end.
Accelerometer maps the X tilt axis across the whole strip - it picks which single LED lights - while Y and Z set that LED's colour (red from Y, blue from Z), using the full 0-255 brightness range. If the accelerometer is unavailable or its power rail is off, the strip stays dark instead of showing garbage.
Selecting palebluedot also plays a short built-in sound of the same name - that's by design, not a bug.
Auto-cycling
While cycling, each pattern runs for 5 seconds before moving to the next. Starting the cycle skips manual - if manual is selected when you start, it jumps to rainbow first - and wraps from the last pattern back to rainbow, never landing on manual again until you stop and pick it yourself. Stopping the cycle (Blue again) leaves whichever pattern was showing running; it does not blank the strip.
Set from elsewhere
If a received infrared code changes the active pattern while this screen is open, the highlighted selection here jumps to match it automatically.
Serial LEDs
The Page button switches to a second screen, "Serial LEDs", which configures up to 8 external addressable LED strips (WS2812 "RGB" or SK6812 "RGBW") driven from the main CPU's header GPIOs. Press Page again to return to the pattern picker.
External strips need the device's PSRAM; on a unit without it every change is refused and the strips stay off.
The screen
A list of 11 rows: strips 1-8, then Show, Auto Show, and Jambu Orca
setup. Each strip row reads like 3: GPIO11 30 RGB - its pin, LED
count, LED type, and inv if the data line is inverted. off means
the strip is disabled; "waiting for main..." clears as soon as the
main CPU answers with the current configuration.
Configuring a strip
Select a strip row and answer the chain of dialogs:
- GPIO - pick Off to disable the strip, or one of the header pins (8-17, 25, 26, 27). A disabled strip keeps its length, type and polarity for the next enable.
- LEDs (1-1024) - how many LEDs are on the strip.
- LED type - RGB (WS2812, 3 bytes per LED) or RGBW (SK6812, 4 bytes per LED).
- Polarity - Normal, or Inverted if the data line passes through an inverting driver.
Changes apply immediately and are saved on the main CPU, so they survive a power cycle.
Show and Auto Show
Show picks one of the same 14 patterns as the first screen and runs it on all strips (the choice is not saved across reboots). Auto Show toggles on the spot: while On, the external strips automatically follow whatever pattern is picked on the Light Show screen - from there, from the console, or by IR.
Jambu Orca setup
One-step preset for the Jambu Orca 8-channel LED breakout. Enter how many strips are plugged in (1-8) and strips 1-N are mapped to the breakout's channels in order; higher-numbered strips are disabled. Lengths and types already configured are kept (new strips default to 30 RGB LEDs) - adjust per strip afterwards if needed.
| Strip | Main GPIO | Strip | Main GPIO |
|---|---|---|---|
| 1 | 13 | 5 | 26 |
| 2 | 14 | 6 | 25 |
| 3 | 11 | 7 | 9 |
| 4 | 15 | 8 | 10 |
Power the breakout's 5V from its barrel jack (or its USB power select) when driving more than a handful of LEDs - the FreeWili itself cannot feed long strips.
Limits
Up to 8 strips and up to 1024 LEDs per strip. A full 1024-LED frame takes about 30-40 ms on the wire, so very long strips animate at a lower rate than short ones.
Power
The app declares the LED power zone (10), so opening the screen switches it on if it was off; the strip needs it to light at all. The accelerometer and microphone that drive some of the patterns are on other rails the app does not declare - if either is off, or the sensor itself isn't present, those patterns just go dark.