A comprehensive web-based control system for FIRST Robotics Competition (FRC) events, providing real-time match management, scoring, and display capabilities.
- Complete match setup with team assignments
- Automated 2:15 match timer with endgame indicators
- Field fault handling and timer pause/resume
- Ability to stop match and reset incase of accidental start
- Match review and post-match analysis
- Real-time teleoperated scoring (buckets, human player)
- Endgame scoring (park, ramp, climb)
- AND ONE bonus period activation and tracking
- Penalty management (fouls, tech fouls)
- Automatic calculation of win, tele-op, and climb ranking points
- Real-time RP updates during matches
- FTA Panel: Match setup, timer control, field fault management
- Referee Panel: Live scoring controls for both alliances
- Display Panel: Real-time scoreboard with pre-match, live, and post-match views
- SQLite database for persistent match data
- WebSocket-based real-time updates across all interfaces
- Event logging and match history
- Audio notifications for match events
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python app.py
-
Access interfaces:
- Main Display:
http://localhost:5000/ - FTA Panel:
http://localhost:5000/fta - Referee Panel:
http://localhost:5000/referee
To make development and dependency installation consistent, you can create a Python 3.12.7 virtual environment for this project.
-
From File Explorer, double-click:
scripts\create_venv_3.12.7.bat— This will create.venv-3.12.7in the repo root and install dependencies fromrequirements.txt. It usespy -3.12if available, orpythonon PATH when it is Python 3.12.
-
To open a new PowerShell window with the venv already activated, double-click:
scripts\open_venv_3.12.7.bat— This launches PowerShell and runs the virtual environment'sActivate.ps1file.
-
OR, from an existing PowerShell session in the project root, run:
. .\.venv-3.12.7\Scripts\Activate.ps1
Notes:
- If you don't yet have Python 3.12.7 installed, the create script will prompt you to download and install Python 3.12.7 from https://www.python.org/downloads/release/python-3127/.
- Some Windows systems prevent PowerShell scripts from executing by default. The batch script launches PowerShell with
-ExecutionPolicy Bypassso activation can run without changing system policies. - The venv is created in
.venv-3.12.7so you can have multiple venvs for different Python versions.
- Main Display:
- Backend: Flask with Socket.IO
- Database: SQLAlchemy with SQLite
- Frontend: HTML/CSS/JavaScript
- Real-time: WebSocket communication
-
You may occasionally see stack traces in development logs similar to:
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machineThis typically happens when a client cancels a request (for example, a browser cancels an audio file range download). It is harmless and happens inside the WSGI server (eventlet) while writing a response.
-
If you want to reduce or remove these stack traces in logs, the app now suppresses these specific exceptions in server logs. Alternatively, you can:
- Install/upgrade
eventletto the latest version:pip install --upgrade eventlet - Switch to
geventas your async server inrequirements.txtand setSocketIO(..., async_mode='gevent')inapp.py.
- Install/upgrade
-
If you see repeated aborted connections, check:
- Client behavior (browser or app disconnects, stopping audio playback)
- Local antivirus or firewall software that might be interrupting connections
- Network instability that causes clients to drop connections