Skip to main content

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

  1. Select Season: Choose a season from 2021-2026
  2. Select Event: Pick a Grand Prix from the dropdown
  3. Select Session: Choose from available sessions (Practice, Qualifying, Race)
  4. 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:

  1. Check the GitHub Issues
  2. 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:

  1. Redis Cache - Fastest, 3600s TTL
  2. SQLite Database - Persistent local storage
  3. 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

f1_dash-0.2.3.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

f1_dash-0.2.3-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

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

Hashes for f1_dash-0.2.3.tar.gz
Algorithm Hash digest
SHA256 1f61f79ed791f41852bdfbe6b6c5af890fe26bee9f25b27bd0ef3e9367cd921a
MD5 c851c24e8aecef2bcd1fa0e1d7be1d98
BLAKE2b-256 ee1b0c458bd6294a221ff3ea3ef1e7beac615a5bf6226d7a33038d4f4a69bbe5

See more details on using hashes here.

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

Hashes for f1_dash-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 67a9ad56163e208cb54c939c5b76d6ae49854ce7beb8d3efb4b4f19704a34ef7
MD5 3de99935c1d2f42ef857d078f064d8a8
BLAKE2b-256 3475060a7c29c3c80f1e3d1a87d1a6b52a38fc8685de30ef0f46e882c8202721

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page