An enhanced F1 Live Position Dashboard with telemetry data
Project description
F1 Dashboard
An enhanced F1 Live Position Dashboard with SQLite persistence, Redis caching, and telemetry data visualization.
Features
- Season Selection: Choose from seasons 2021-2026
- Session Types: View FP1, FP2, FP3, Sprint, Qualifying, and Race sessions
- SQLite Persistence: Offline data storage for previously loaded sessions
- Redis Caching: Fast data retrieval with cache-aside pattern
- Lazy-loading Telemetry: RAM-optimized telemetry viewing for selected drivers
- Interactive TUI: Built with Textual for a modern terminal interface
Installation
From PyPI (Recommended)
pip install f1-dash
From Source
git clone https://github.com/suriya56/F1-Live-Dashboard.git
cd f1-dash
pip install .
Requirements
- Python 3.8+ (tested up to Python 3.12)
- Redis (optional, for caching - see below)
- Internet connection for initial data fetch
Redis Installation (Optional)
For optimal performance, install Redis:
Windows:
# Using WSL2 (recommended)
wsl --install
sudo apt update
sudo apt install redis-server
sudo service redis-server start
# Or using Docker
docker run -d -p 6379:6379 redis:latest
macOS/Linux:
# macOS
brew install redis
brew services start redis
# Linux (Ubuntu/Debian)
sudo apt update
sudo apt install redis-server
sudo service redis-server start
Note: The app will work without Redis, but caching provides faster data loading.
Usage
Run the dashboard:
f1-dash
Controls
- q - Quit the application
- r - Refresh data
- Tab - Switch between Positions and Telemetry tabs
Features
- Select Season: Choose a season from 2021-2026
- Select Event: Pick a Grand Prix from the dropdown
- Select Session: Choose from available sessions (Practice, Qualifying, Race)
- View Telemetry: Go to Telemetry tab, select a driver, and click "Load Telemetry"
Environment Variables
| Variable | Description | Default |
|---|---|---|
F1_DASH_DB_PATH |
Path to SQLite database | f1_data.db |
REDIS_URL |
Redis connection URL | redis://localhost:6379 |
REDIS_TTL |
Cache TTL in seconds | 3600 |
Optional: Redis Setup
For enhanced caching performance, install and run Redis:
# Docker
docker run -d -p 6379:6379 redis:latest
# Or install locally
# Ubuntu/Debian: sudo apt install redis-server
# macOS: brew install redis && brew services start redis
The app works without Redis (uses memory cache fallback).
Troubleshooting
Common Issues
Import Error with aioredis:
# If you encounter aioredis compatibility issues:
pip install "aioredis<2.0.0"
App hangs on startup:
- Ensure you have a stable internet connection
- Try running with verbose output:
python -m f1_dash.main
Redis connection failed:
- The app will continue to work without Redis
- Check if Redis is running:
redis-cli ping - Verify Redis URL:
echo $REDIS_URL
Permission errors:
- Ensure write permissions for the database file
- Try running from a different directory
Data not loading:
- FastF1 API may be rate limited
- Try again after a few minutes
- Check if the season/event has data available
Getting Help
If you encounter issues:
- Check the GitHub Issues
- Create a new issue with:
- Python version
- Operating system
- Error message
- Steps to reproduce
Requirements
- Python 3.8 or higher
- fastf1 >= 3.0.0
- textual >= 0.40.0
- pandas >= 1.5.0
- rich >= 13.0.0
- matplotlib >= 3.5.0
- aioredis < 2.0.0 (optional, for Redis caching)
- redis >= 4.0.0 (optional, for Redis caching)
License
MIT License - see LICENSE file for details.
Architecture
The app uses a tiered data retrieval system:
- Redis Cache - Fastest, 3600s TTL
- SQLite Database - Persistent local storage
- FastF1 API - Live data from Ergast/F1
Data flows: API → SQLite → Redis → UI
Changelog
v0.2.0 (2025-02-23)
- Added season selection (2021-2026)
- Added SQLite persistence layer
- Added Redis caching with cache-aside pattern
- Implemented lazy-loading telemetry for RAM optimization
- Suppressed library logging for clean TUI
v0.1.0 (Initial Release)
- Basic F1 dashboard with FastF1 API integration
- Telemetry viewer
- Session switching
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file f1_dash-0.2.3.tar.gz.
File metadata
- Download URL: f1_dash-0.2.3.tar.gz
- Upload date:
- Size: 21.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f61f79ed791f41852bdfbe6b6c5af890fe26bee9f25b27bd0ef3e9367cd921a
|
|
| MD5 |
c851c24e8aecef2bcd1fa0e1d7be1d98
|
|
| BLAKE2b-256 |
ee1b0c458bd6294a221ff3ea3ef1e7beac615a5bf6226d7a33038d4f4a69bbe5
|
File details
Details for the file f1_dash-0.2.3-py3-none-any.whl.
File metadata
- Download URL: f1_dash-0.2.3-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67a9ad56163e208cb54c939c5b76d6ae49854ce7beb8d3efb4b4f19704a34ef7
|
|
| MD5 |
3de99935c1d2f42ef857d078f064d8a8
|
|
| BLAKE2b-256 |
3475060a7c29c3c80f1e3d1a87d1a6b52a38fc8685de30ef0f46e882c8202721
|