Pico panels get static IPs on 10.1.1.10–14 with per-panel LED counts, Makefile deploy targets, and Python examples for animations, sync tests, and direct Pi SPI control. Co-authored-by: Cursor <cursoragent@cursor.com>
2.4 KiB
2.4 KiB
portal
WS2812 LED control for Raspberry Pi 5 and Pico panel adapters.
Panel IPs
Five panels on 10.1.1.10–10.1.1.14 (panel 0 → .10, panel 4 → .14). Examples drive all 5 by default.
Panel sizes
Panels are 9 rows tall; width varies by panel. Edit PANEL_WIDTH_BY_INDEX in leds/array_config.py:
| Panel | IP | Size | LEDs | Flash |
|---|---|---|---|---|
| 0 | 10.1.1.10 | 9×39 | 351 | make deploy PANEL_ID=0 NUM_LEDS=351 |
| 1 | 10.1.1.11 | 9×45 | 405 | make deploy PANEL_ID=1 NUM_LEDS=405 |
| 2 | 10.1.1.12 | 9×45 | 405 | make deploy PANEL_ID=2 NUM_LEDS=405 |
| 3 | 10.1.1.13 | 9×45 | 405 | make deploy PANEL_ID=3 NUM_LEDS=405 |
| 4 | 10.1.1.14 | 9×39? | 351 | make deploy PANEL_ID=4 NUM_LEDS=351 |
Panel 4 may be 38 or 39 wide — find the exact width:
make deploy PANEL_ID=4 NUM_LEDS=387 # 43 cols max for probe
pipenv run python examples/panel_sync_test.py --test width --panel-index 4
Last column that lights → set PANEL_WIDTH_BY_INDEX[4] in leds/array_config.py to column + 1, then re-flash with NUM_LEDS=width×9 (342 for 38, 351 for 39).
Animations render at each panel's own width automatically.
Examples
Pico panel (UDP)
| Command | What it does |
|---|---|
pipenv run python examples/panel_rgb_cycle.py |
Red / green / blue on all 5 panels |
pipenv run python examples/panel_color_test.py |
One-shot RGB + white test |
pipenv run python examples/panel_test.py |
Layout tests (corners, rows, chase) |
pipenv run python examples/panel_sync_test.py |
Positioning + sync across all panels |
pipenv run python examples/panel_animations.py |
All animations on all panels |
pipenv run python examples/panel_animations.py rolling |
One animation |
pipenv run python examples/panel_text.py |
Show your name |
pipenv run python examples/animations.py --panel |
Same as panel_animations |
Single panel only:
pipenv run python examples/panel_animations.py --panel-index 1 # 9×45 @ 10.1.1.11
Pi direct (SPI on GPIO 10)
| Command | What it does |
|---|---|
pipenv run python examples/animations.py |
All animations on matrix |
pipenv run python examples/matrix_demo.py |
Rainbow only |
pipenv run python examples/led_demo.py |
Dual-strip chase + rainbow |
Firmware
make deploy PANEL_ID=0 NUM_LEDS=351
make monitor