update readme

This commit is contained in:
Chuck
2025-05-26 14:36:23 -05:00
parent dee7fcfd49
commit a1861c166c

View File

@@ -1,15 +1,73 @@
# LEDMatrix
A sophisticated LED matrix display system that provides real-time information display capabilities for various data sources. The system is highly configurable and supports multiple display modes that can be enabled or disabled based on user preferences.
A modular LED matrix display system for sports information using Raspberry Pi and RGB LED matrices.
## Core Features
### Time and Weather
- Real-time clock display
- Weather information with custom icons
- Google Calendar event display
### Sports Information
The system supports live, recent, and upcoming game information for multiple sports leagues:
- NHL (Hockey)
- NBA (Basketball)
- MLB (Baseball)
- NFL (Football)
- NCAA Football
- NCAA Men's Basketball
- NCAA Men's Baseball
- Soccer
(Note, some of these sports seasons were not active during development and might need fine tuning when games are active)
### Financial Information
- Near real-time stock & crypto price updates
- Stock news headlines
- Customizable stock & crypto watchlists
### Entertainment
- Music playback information from multiple sources:
- Spotify integration
- YouTube Music integration
- Album art display
- Now playing information with scrolling text
### Custom Display Features
- Text display capabilities
- Font testing and customization
- Configurable display modes
- Cache management for improved performance
## System Architecture
The system is built with a modular architecture that allows for easy extension and maintenance:
- `DisplayController`: Main orchestrator managing all display modes
- Individual managers for each feature (sports, weather, music, etc.)
- Separate authentication handlers for different services
- Configurable display modes and rotation patterns
## Configuration
The system can be configured through a JSON configuration file that allows users to:
- Enable/disable specific features
- Set display durations
- Configure API keys and endpoints
- Customize display modes and rotation patterns
- Set preferred music sources
- Configure sports team preferences
# Work in Progress, things may break. I'll try to keep the main branch as stable as I can but this is absolutely in a pre-release state. There are also a ton of commits as it's an easy way to get the changes to the rpi for testing.
## Hardware Requirements
- Raspberry Pi 4 or older
- Raspberry Pi 3b or 4
- Amazon Affiliate Links:
- Adafruit RGB Matrix Bonnet/HAT
- 2x LED Matrix panels (64x32)
- DC Power Supply for Adafruit RGB HAT
-----------------------------------------------------------------------------------
## Installation
1. Clone this repository:
@@ -27,12 +85,7 @@ pip3 install --break-system-packages -r requirements.txt
## Configuration
1. Copy the example configuration:
```bash
cp config/config.example.json config/config.json
```
2. Edit `config/config.json` with your preferences
1.Edit `config/config.json` with your preferences via `sudo nano config/config.json`
## Important: Sound Module Configuration
@@ -370,7 +423,6 @@ The Music Display module shows information about the currently playing track fro
2. **YouTube Music (YTM):**
* Requires the [YouTube Music Desktop App](https://ytmdesktop.app/) (YTMD) to be installed and running on a computer on the *same network* as the Raspberry Pi.
* In YTMD settings, enable the "Companion Server" under Integration options. Note the URL it provides (usually `http://localhost:9863` if running on the same machine, or `http://<YTMD-Computer-IP>:9863` if running on a different computer).
* Note, The YTM Display seems to most reliably update on the display switch INTO the MusicManager Display. Song changes after this are less reliable in updating on time. I am trying to figure this quirk out but shouldn't be too disruptive. Spotify doesn't have this issue.
**Configuration:**
@@ -414,6 +466,7 @@ The Music Display module shows information about the currently playing track fro
**`preferred_source` Options:**
* `"auto"`: (Default) Checks Spotify first. If Spotify is playing, shows its track. If not, checks YTM.
* `"spotify"`: Only uses Spotify. Ignores YTM.
* `"ytm"`: Only uses the YTM Companion Server. Ignores Spotify.