Able to run from root folder

making it easier to run
This commit is contained in:
Chuck
2025-04-07 21:03:44 -05:00
parent cafab55cb2
commit f7a8f75172
2 changed files with 67 additions and 75 deletions

136
README.md
View File

@@ -1,85 +1,36 @@
# LED Matrix Clock
# LEDSportsMatrix
A simple, modular clock application for Raspberry Pi using Adafruit LED Matrix displays.
A modular LED matrix display system for sports information using Raspberry Pi and RGB LED matrices.
## Hardware Requirements
- Raspberry Pi 3
- 2x Adafruit 64x32 LED Matrices
- Adafruit Pi LED Matrix Bonnet
- Raspberry Pi 3 or newer
- Adafruit RGB Matrix Bonnet/HAT
- LED Matrix panels (64x32)
## Installation
1. Install required system packages:
1. Clone this repository:
```bash
sudo apt-get update
sudo apt-get install -y python3-pip python3-dev python3-setuptools
sudo apt-get install -y build-essential git
sudo apt-get install -y python3-pil python3-pil.imagetk
sudo apt-get install -y cython3
git clone https://github.com/yourusername/LEDSportsMatrix.git
cd LEDSportsMatrix
```
2. Install the rpi-rgb-led-matrix library and Python bindings:
2. Install dependencies:
```bash
# Make sure you're in the main project directory
cd ~/LEDSportsMatrix/rpi-rgb-led-matrix-master
# Build the C++ library first
make
# Build and install Python bindings
cd bindings/python
sudo python3 setup.py install
cd ../..
# Install the library files
sudo cp -r lib/* /usr/local/lib/
sudo cp -r include/* /usr/local/include/
sudo ldconfig
cd ..
```
3. Install additional Python packages:
```bash
sudo python3 -m pip install pytz
```
4. Install the DejaVu Sans font:
```bash
sudo apt-get install -y fonts-dejavu
```
## Performance Optimization
To reduce flickering and improve display quality:
1. Edit `/boot/firmware/cmdline.txt`:
```bash
sudo nano /boot/firmware/cmdline.txt
```
2. Add `isolcpus=3` at the end of the line
3. Save and reboot:
```bash
sudo reboot
pip3 install -r requirements.txt
```
## Configuration
Edit the `config/config.json` file to customize:
- Timezone
- Display settings (brightness, dimensions)
- Clock format and update interval
1. Copy the example configuration:
```bash
cp config/config.example.json config/config.json
```
For sensitive settings like API keys:
1. Copy the template: `cp config/config_secrets.template.json config/config_secrets.json`
2. Edit `config/config_secrets.json` with your API keys
2. Edit `config/config.json` with your preferences
## Important: Sound Module Configuration
The LED matrix library is known to conflict with the Raspberry Pi's built-in sound module. To prevent issues:
1. Remove unnecessary services that might interfere with the LED matrix:
```bash
sudo apt-get remove bluez bluez-firmware pi-bluetooth triggerhappy pigpio
@@ -99,6 +50,52 @@ sudo update-initramfs -u
sudo reboot
```
## Running the Display
From the project root directory:
```bash
sudo python3 display_controller.py
```
The display will alternate between showing:
- Current time
- Weather information (requires API key configuration)
## Development
The project structure is organized as follows:
```
LEDSportsMatrix/
├── config/ # Configuration files
│ ├── config.json # Main configuration
│ └── config_secrets.json# API keys and sensitive data
├── src/ # Source code
│ ├── display_manager.py # LED matrix display handling
│ ├── clock.py # Clock display module
│ └── weather.py # Weather display module
└── display_controller.py # Main entry point
```
## Performance Optimization
To reduce flickering and improve display quality:
1. Edit `/boot/firmware/cmdline.txt`:
```bash
sudo nano /boot/firmware/cmdline.txt
```
2. Add `isolcpus=3` at the end of the line
3. Save and reboot:
```bash
sudo reboot
```
For sensitive settings like API keys:
1. Copy the template: `cp config/config_secrets.template.json config/config_secrets.json`
2. Edit `config/config_secrets.json` with your API keys
Note: If you still experience issues, you can additionally disable the audio hardware by editing `/boot/firmware/config.txt`:
```bash
sudo nano /boot/firmware/config.txt
@@ -112,17 +109,6 @@ Alternatively, you can:
- Use external USB sound adapters if you need audio
- Run the program with `--led-no-hardware-pulse` flag (may cause more flicker)
## Running the Clock
The program must be run with root privileges to access the LED matrix hardware:
```bash
cd src
sudo python3 display_controller.py
```
To stop the clock, press Ctrl+C.
## Project Structure
- `src/`

6
display_controller.py Normal file
View File

@@ -0,0 +1,6 @@
#!/usr/bin/env python3
from src.display_controller import main
if __name__ == "__main__":
main()