Skip to content

pdugan20/e-ink-scoreboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

172 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

E-Ink Scoreboard

CI Python 3.11+ License: MIT

Real-time MLB scores on a Pimoroni Inky e-ink display with auto-refresh and team news screensaver.

Features

  • Live MLB Scores - Real-time scores with on-base and out displays
  • Team News Screensaver - Displays team news when no games are scheduled
  • Clean Layout - Optimized for 800x480 e-ink displays, up to 15 games in a 3x5 grid
  • Auto-refresh - Configurable refresh interval with power-saving logic
  • Web Settings Panel - Configure teams, timezone, theme, and more from any browser
  • WiFi Management - Scan and switch WiFi networks from the settings page
  • Local Network Discovery - Access at scoreboard.local:5001 via mDNS

Hardware

Setup

The Raspberry Pi Setup Guide walks through everything from flashing the SD card to a working scoreboard.

If you already have a booted Pi with SSH access:

sudo apt update && sudo apt install -y git
git clone https://github.com/pdugan20/e-ink-scoreboard.git
cd e-ink-scoreboard
./scripts/setup.sh    # Install, configure, and enable services
sudo reboot           # Apply hardware changes, scoreboard starts automatically

After reboot, the scoreboard is accessible at http://scoreboard.local:5001.

Configuration

Open http://scoreboard.local:5001/settings from any browser on your network to configure teams, timezone, theme, refresh interval, WiFi, and more.

All settings changes take effect on the next display refresh. No SSH required.

Documentation

Guide Description
Raspberry Pi Setup Complete setup from SD card to working scoreboard
Troubleshooting Common issues and solutions
Services Systemd service architecture and management
API Reference Full API endpoint documentation
API Examples Curl examples and sample responses

Contributing

Development Environment

Clone the repo and set up a local dev environment on Mac:

git clone https://github.com/pdugan20/e-ink-scoreboard.git
cd e-ink-scoreboard
python3 -m venv venv
source venv/bin/activate
pip install -r requirements-dev.txt
playwright install chromium

Start the dev server and preview the display:

python src/dev_server.py --port 5001    # Start web server
python src/eink_display.py --once       # Take screenshot (in another terminal)

Code Quality

make install-hooks  # Install pre-commit hooks
make check          # Run all linters and formatters
make test           # Run all tests (Python + JavaScript)
make test-coverage  # Run with coverage reports

See CONTRIBUTING.md for code style, testing conventions, and CI requirements.

Project Structure

src/                       # Core application
├── api/                   # API endpoints and data fetching
├── display/               # Display controllers
├── services/              # Business logic
├── assets/logos/          # Team and league logos
├── static/                # CSS, JS, static assets
└── test-data/             # Test game data

tests/                     # Test suite (unit, integration, JS)
scripts/                   # Pi installation and setup scripts
docs/                      # Documentation

Additional Developer Docs

Guide Description
Testing Test patterns, conventions, and running tests
Logging Style Guide Log message formatting conventions
Timeout Architecture Screenshot timeout strategy deep-dive

About

A framed scoreboard that displays real-time MLB scores and team news on a color e-ink display.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors