Back to Projects
Python Raspberry Pi UHF RFID Laravel WebSockets

RFID Race Timing System

A custom-built race timing solution using Raspberry Pi and UHF RFID technology, providing live results for fell running events.

Completed 10 November 2023
RFID Race Timing System

The Challenge

Local fell running clubs were timing races manually with stopwatches and clipboards. For events with 100+ runners, this meant long waits for results and potential for human error. They needed an affordable, portable timing system that could work in remote locations without reliable internet.

The Solution

I designed and built a complete timing system using off-the-shelf hardware and custom software:

Hardware:

  • Raspberry Pi as the main controller
  • UHF RFID reader for detecting runner tags
  • Timing mat with embedded antennas
  • Battery power for remote locations
  • Rugged case for outdoor conditions

Software:

  • Python application on the Pi for tag detection and local timing
  • Laravel backend for results management and web display
  • WebSocket connections for live result updates
  • Offline-first design - syncs when connectivity available

Technical Details

The system needed to handle the specific challenges of fell running:

  • Muddy conditions: Waterproof enclosures and robust connectors
  • No mains power: Runs for 8+ hours on a single battery
  • Spotty connectivity: Works entirely offline, syncs results later
  • Multiple timing points: Support for split times at checkpoints

Accuracy:

  • Sub-second timing precision
  • Handles multiple runners crossing together
  • Automatic detection of duplicate reads

Results

  • Used at 10+ local fell running events
  • Handles 150+ runners per event reliably
  • Results available in real-time when connected
  • Significant cost saving vs commercial timing systems