ledpanel

🌊 LED Pattern Studio 🌊

💧 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. 🫧

🐚 Features

🌊 File Structure

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)

🐚 Installation & Running

💧 Requirements

🌊 1. Install Dependencies

Run the following script to install the FastAPI and Uvicorn server dependencies:

python3 -m pip install -r requirements.txt

💧 2. Start the Server

Start the backend server on your host machine (e.g., Raspberry Pi):

uvicorn server:app --host 0.0.0.0 --port 8000

🫧 3. Open the Studio

🐚 Hardware Integration

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. 🌊

Deployment & Repository Status

{}