A Python-based display system for LED matrix panels for showing live sports scores, weather, clock, and more. It comes out of the box with support for most iPixel displays (any size). Feel free to contribute support for your adapter!
- 🔌 Plugin Architecture - Support for any LED panel via extensible adapters and layouts
- 🏀 Sports Scoreboards - Live scores (NHL, NBA, NFL, MLB)
- 📈 Stock Market Display - Real-time quotes via Yahoo Finance
- 🕐 Themed Clock - Customizable themes
- 🌤️ Weather Display - Current conditions + forecasts
- 🔋 Power Management - Scheduled on/off times
- 🔄 Intelligent Mode Switching - Auto-switches between modes
- 🎬 GIF Animations - Frame-by-frame animation support
- ** Scrolling Ticker** - Display data in a ticker-style
1. Install dependencies:
pip install -r requirements.txt2. Set up configuration:
cp config.yml.example config.yml
# Edit config.yml with your panel addresses and settings3. Run:
python3 display_manager.py- Features Guide - Detailed feature overview
- Configuration Guide - All configuration options
- Quick Start - 5-minute setup
- Architecture - System design overview
- Display Modes - How each mode works
- Creating Adapters - Support new hardware
- Troubleshooting - Common issues
- iPixel LED Panels (BLE) - Default adapter
- Panel Size: Configurable (64x20 default, supports 64x32, 64x64, 32x16, 20x20, etc.)
- Support: Single or multiple panels (1, 2, 3, 4+)
- Connection: Bluetooth Low Energy
Create an adapter for any LED panel type. See Creating Adapters.
- Python: 3.7+
- Dependencies: See
requirements.txt
led_panel/
├── adapters/ # Display protocol adapters
│ ├── base.py # DisplayAdapter interface
│ └── ipixel/ # iPixel BLE adapter
├── core/
│ ├── data/ # Data fetching (APIs)
│ └── rendering/ # PNG image generation
├── docs/ # Comprehensive guides
├── display_manager.py # Main application
├── config.yml # Your configuration
└── config_loader.py # Configuration system
All settings in config.yml:
display:
adapter: ipixel
ipixel:
ble_addresses:
- "ADDRESS-1"
- "ADDRESS-2"
weather:
api_key: "openweathermap-api-key"
city: "Detroit,US"
sports:
teams:
nhl: ["DET"]
nba: ["DET"]
nfl: ["DET"]
mlb: ["DET"]
stocks:
symbols: "AAPL,GOOGL,MSFT,TSLA"
display_modes:
clock_theme: "stranger_things"
cycle_modes: [clock, weather, stocks]
cycle_seconds: 15👉 Full Configuration Reference
Common issues and solutions in Troubleshooting Guide
See LICENSE file
- Sports Data - ESPN API
- Weather Data - OpenWeatherMap
- Stock Data - Yahoo Finance
- Panel Hardware - iPixel (default)
- Team Logos - https://www.stickpng.com/
- Python Libraries - bleak, pillow, pyyaml, httpx, yfinance
- iPixel CLI - CLI for interacting with iPixel displays
- Check the Troubleshooting Guide
- Read the Configuration Guide
- Review Architecture Overview