💧 A browser-based, interactive 16×96 LED pattern editor and playlist manager, designed to flow on a Raspberry Pi or PC and be accessed across your local network. 🫧
ledpanel/
├── server.py # FastAPI Python Server
├── requirements.txt # Server dependencies
├── data/
│ ├── presets.json # Stores all saved presets
│ └── playlist.json # Stores chronological playlist data
└── static/
├── index.html # Main Front-end structure
├── style.css # Vanilla CSS styling
└── script.js # Frontend logic (Canvas, Drag&Drop, State sync)
pip 🐚Run the following script to install the FastAPI and Uvicorn server dependencies:
python3 -m pip install -r requirements.txt
Start the backend server on your host machine (e.g., Raspberry Pi):
uvicorn server:app --host 0.0.0.0 --port 8000
http://localhost:8000 🌊http://<HOST_IP>:8000 (ensure devices are on the same Wi-Fi) 💧The MVP includes a stub endpoint designed for easy physical matrix pairing. Inside server.py, locate the POST /api/display endpoint: 🫧
@app.post("/api/display")
def display_frame(frame: Dict[str, Any]):
# Replace this stub with your GPIO/SPI push logic.
print(f"Received frame to display: ...")
return {"status": "acknowledged"}
Convert the frame.get("pixels") array into the exact data structure expected by your LED matrix driver (bitplanes, scan rows, etc.) and push it out via SPI or GPIO. 🌊
Be like water, my friend. It can flow or it can crash. 🌊
{}