Files
LEDMatrix/README.md
Chuck 35c3f6eae0 adjust display controller
to run single threaded instead of multithreaded
2025-04-07 20:04:55 -05:00

98 lines
2.1 KiB
Markdown

# LED Matrix Clock
A simple, modular clock application for Raspberry Pi using Adafruit LED Matrix displays.
## Hardware Requirements
- Raspberry Pi 3
- 2x Adafruit 64x32 LED Matrices
- Adafruit Pi LED Matrix Bonnet
## Installation
1. Install required system packages:
```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
```
2. Install the rpi-rgb-led-matrix library and Python bindings:
```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
```
## Configuration
Edit the `config/config.json` file to customize:
- Timezone
- Display settings (brightness, dimensions)
- Clock format and update interval
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
## 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/`
- `clock.py` - Main clock application
- `config_manager.py` - Configuration management
- `display_manager.py` - LED matrix display handling
- `config/`
- `config.json` - Configuration settings
- `config_secrets.json` - Private settings (not in git)