This repo hosts all of the code and files related to Terrier Ride Engineering Club's (TREC) Ride Control Computer (RCC) project for the Ride Engineering Competition (REC) 25-26 season.
The RCC is a Raspberry Pi-based control system for an amusement ride, built for the Ride Engineering Competition. It coordinates motor control, safety monitoring, operator controls, and theming elements to safely operate a ride from dispatch through cycle completion.
ride_control_computer/
├── RCC.py # Main controller, safety logic, state machine
├── main.py # Entry point, logging setup
├── loop_timer.py # Timing utility
├── motor_controller/ # Motor control (RoboClaw, Mock)
├── control_panel/ # Operator inputs (Mock)
├── theming_controller/ # Show control (Mock)
└── webserver/ # Status dashboard (Flask, Mock)
Each subsystem has an abstract interface (ABC) and a Mock implementation for testing w/o hardware.
Project Credits:
Jackson Justus - Electrical Lead -- jackjust@bu.edu
Liam Mertens - Electrical Member -- lmertens@bu.edu
Club Leadership:
Electrical Lead: Jackson Justus (jackjust@bu.edu)
Mechanical Lead: Daniel Ulrich (dculrich@bu.edu)
Design Lead: Jon Chuang (chuangj@bu.edu)
- Python 3.13.5
- Raspberry Pi 5 (production) or macOS/Windows/Linux (development)
# Create and activate virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install the package and dependencies
pip install -e .
# Or with dev tools (pytest, ruff, black)
pip install -e ".[dev]"# Create and activate virtual environment
python -m venv .venv
.venv\Scripts\activate
# Install the package and dependencies
pip install -e .
# Or with dev tools (pytest, ruff, black)
pip install -e ".[dev]"rcc # Uses mock implementations (default, safe for development)
rcc --hardware # Uses hardware implementations (Pi deployment)pytest# Clone to /opt/rcc
sudo mkdir -p /opt/rcc
sudo chown $USER:$USER /opt/rcc
git clone https://github.com/Terrier-Ride-Engineering-Club/ride-control-computer.git /opt/rcc
# Create venv and install
cd /opt/rcc
sudo apt install liblgpio-dev swig libgpiod-dev python3-dev # install system deps for gpio
python3 -m venv .venv
.venv/bin/pip install .On boot, shows a 5-second prompt. Press any key for desktop, otherwise launches Chrome kiosk with the RCC webserver.
# Make scripts executable
chmod +x /opt/rcc/scripts/*.shOption A: Desktop Auto-Login (GUI)
mkdir -p ~/.config/autostart
cp /opt/rcc/scripts/rcc-boot.desktop ~/.config/autostart/Option B: Console Auto-Login (headless)
sudo raspi-config
# Navigate: System Options → Boot / Auto Login → Console Autologin
# Add startup script to bashrc (only if not already present)
grep -qxF '/opt/rcc/scripts/rcc-boot.sh' ~/.bashrc || echo '/opt/rcc/scripts/rcc-boot.sh' >> ~/.bashrcReboot to test.