Skip to content

tomunderwood99/CharlieBoard

Repository files navigation

The CharlieBoard

License: MIT Python Version Hardware: Raspberry Pi Contributions Welcome

An open-source LED display system for the MBTA that runs on Raspberry Pi Zero 2W with WS2812B LEDs. Features real-time transit data visualization, web control interface, and geographically accurate station mapping. PCBs for the Blue, Orange, and Green Lines are in progress!

CharlieBoard Display

Quick Start

Prerequisites: Raspberry Pi Zero 2W with Raspberry Pi OS, a WS2812B LED strip or custom PCB, WiFi configured, SSH enabled (RPI Connect recommended), and an MBTA API key. For assembly instructions, see the Hardware Assembly Guide.

Run the following commands to install and initialize the display.

sudo apt update && sudo apt install -y git python3-pip
cd ~
git clone --filter=blob:none --sparse https://github.com/tomunderwood99/CharlieBoard.git
cd mbta_led_controller
git sparse-checkout set --no-cone '/*' '!hardware'
chmod +x deployment/quick_start/setup_mbta_controller.sh
sudo ./deployment/quick_start/setup_mbta_controller.sh

The setup script will prompt for your MBTA API key and various setting inputs. After completion, access the web interface at http://your-hostname.local:8000 on your local network.

Optional enhancement: Set up a reverse proxy to access the web interface at http://hostname.local without the port number. See the nginx reverse proxy setup guide.

Note: The sparse-checkout excludes the hardware/ directory (PCB design files) to speed up cloning. This setting persists across future git pull operations. If you need the hardware files, run: git sparse-checkout disable

Features

  • Real-time Transit Data: Live vehicle positions, occupancy, and speed data
  • Geographically Accurate: LED display system with geographic station mapping
  • Web Control Interface: Remote control from any device on your network
  • Customizable Display: Adjustable brightness, colors, and display hours
  • Reliable Operation: Automatic recovery, health monitoring, and maintenance

Hardware

Component Notes
Raspberry Pi Zero 2W Main controller
WS2812B LEDs Custom PCB (~$120 for 5) or LED strips (~$20)
5V 4A Power Supply Powers Pi and LEDs
MicroSD Card (16GB+) For OS and software
Display Enclosure Picture frame or custom case

Total Cost: $50–180 depending on LED choice

Complete PCB design files (Gerber + KiCad) are available in hardware/PCB Production/. See the Bill of Materials for detailed pricing and sourcing.

Documentation

Guide Description
Quick Start Guide Step-by-step setup walkthrough
Complete Setup Guide Detailed manual configuration
Bill of Materials Hardware pricing and sourcing
Hardware Assembly PCB assembly instructions
Operations & Troubleshooting Maintenance and problem solving
Transit System Adaptation Adapt for other transit systems
Map Making with QGIS Create custom transit maps (example project)

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Test on Raspberry Pi Zero 2W hardware
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push and open a Pull Request

Follow existing code style, update documentation for new features, and add comments for complex logic.

License

MIT License – See LICENSE for details.

Copyright © 2025 Thomas Underwood

Disclaimers & Attributions

AI Assistance

This project was developed with the assistance of AI coding tools. All code has been reviewed, tested, and validated on actual hardware.

Data Sources

This project uses data from:

  • MBTA and MassDOT – Transit data via MBTA V3 API
  • MassGIS – Geographic and mapping data

All data is provided "as is" without warranties. This project is not affiliated with, endorsed by, or sponsored by MBTA, MassDOT, MassGIS, or the Commonwealth of Massachusetts.

Support

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published