กลับไปหน้ารวมไฟล์
rfid-race-timer-06a2f2-en.md

I am a distance runner and have always been fascinated by the timing equipment used to score races. Athletes wear a UHF RFID chip, and antennas read the chip when the athlete crosses the finish line. The "chip" usually has a bib number or some piece of information to identify the runner. I wanted to host my own race and use this type of system to time it. However, professional kits cost over $10,000, and I didn't want to spend that much money. In addition, many of these big proprietary systems such as IPICO, MyLaps, and ChronoTrack require the use of their proprietary chips and equipment. As cool and feature-packed as they are, I didn't need them because I wasn't timing races with hundreds of runners.

So, I bought the SparkFun Simultaneous RFID reader and hookup accessories, and built my own timing system! Yes, I know you might not want to spend the $200+ for the reader and equipment, but trust me, it's the best option. When I was researching to build this project, I looked at almost every reader and antenna under the sun, and this was the best option. It makes managing the RFID easy, and it is fairly well documented and easy to program for.

With this system, I can program athletes' names or bib numbers into chips, and when they cross the finish line, their names and times are printed! It is a very reliable system and makes timing small races easy.

Timing a race by hand with a stopwatch is prone to human error. The RFID Race Timer eliminates the human element entirely. By utilizing the 13.56MHz Radio Frequency Identification protocol, the Arduino can instantly read, identify, and timestamp dozens of unique runners within the blink of an eye.

13.56MHz SPI Communication (MFRC522)

The most popular hobbyist module is the MFRC522, but unlike I2C which uses 2 wires, this chip requires the high-speed SPI Data Bus (MISO, MOSI, SCK, SS).

  1. The Unique Identifier (UID): Every single blue keychain tag or white plastic card has a unique factory-burned 4-byte serial number inside it (e.g., 04 EA F1 2B).
  2. The Database Array: In your code, you create a lookup table: String Runner1 = "04 EA F1 2B"; String Runner2 = "7A 9C 11 DE";
  3. The Scan: A marathon runner has the white card pinned to their shirt. As they run past the massive scanner arch at the finish line, the MFRC522 card emits a magnetic field that powers the unpowered card. The chip instantly blasts its UID back!

Sub-Second Timestamping

When the Arduino detects the card, it must log the time perfectly.

  1. The Arduino queries the connected DS3231 RTC Module.
  2. It fetches the exact Hour:Min:Sec. But races are won by fractions of a second!
  3. To achieve millimeter accuracy, the Arduino combines the RTC time with the millis() offset, calculating that Runner 1 finished at exactly 14:23:45.342.
  4. The system prints this data directly to the Serial terminal or writes it to an onboard MicroSD Card CSV file for the judges to analyze later!

Necessary Timing Hardware

  • Arduino Mega: Required for the deep RAM array of the massive runner database list.
  • MFRC522 RFID Reader Writer Module.
  • RFID 13.56MHz Tokens or Cards (One for every runner).
  • DS3231 RTC Module and MicroSD module.
  • (Note: Professional marathon timing systems use massive UHF frequency scanners capable of reading cards from 10 feet away. The standard RC522 requires the runner to bring the card within 3 centimeters of the reader).

Project Tutorial coming soon! (I'm very busy so I don't really have time to sit down and make a tutorial... I'm just working on it in my spare time)

Here is a video of how it works:

RFID Timing Demo

Enclosure

I had this SKB i-series camera case lying around, so I repurposed it to hold my timing system more securely and be more robust. It also just looks cooler and more like systems from MyLaps and Chronotrack. It also makes the system more robust and easy to manage.

Timing Box

Comments, Questions, Concerns?

Leave a comment below and I'll reply as soon as I can!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "jammcooter"
category: "Sports & Fitness"
components:
  - "1x Jumper wires (generic)"
  - "1x Arduino UNO"
  - "1x UHF RFID tags"
  - "1x Soldering iron (generic)"
  - "1x Toggle Switch, Toggle"
  - "1x SparkFun Simultaneous RFID Reader - M6E Nano"
  - "2x Pushbutton Switch, Momentary"
  - "1x 3D Printer (generic)"
  - "2x Resistor 10k ohm"
description: "Track the athletes! Construct an automatic lap-timing system that identifies incredibly fast unique runners as they speed past a scanner, logging their millimeter-accurate finish times."
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://projects.arduinocontent.cc/51b30159-a5ce-4c8e-a89e-7a772ee889e0.ino"
  - "https://projects.arduinocontent.cc/51b30159-a5ce-4c8e-a89e-7a772ee889e0.ino"
  - "https://projects.arduinocontent.cc/b059f1f9-05e5-4a54-857e-34f3d4195d74.ino"
encryptedPayload: "U2FsdGVkX18FTiuDnU7seEyCzDD/8bu6VTU4YZdnW98Gd7ivr8rCXY5VlmF+vi8fH0MWD3gwcplqaUG0G1qbJhC650QmHjmMIO4bnDKiBCQ="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/rfid-race-timer-06a2f2_cover.jpg"
lang: "en"
likes: 14
passwordHash: "ce7480c02af19ec11894caad0b4825f88fc553056ab00f1c970d173e47eed01f"
price: 1499
seoDescription: "A professional RFID race timing system to track and identify athletes with high precision."
tags:
  - "rfid"
  - "timing"
  - "health"
title: "RFID Race timer"
tools: []
videoLinks:
  - "https://www.youtube.com/embed/ZR0S8E9Uby8"
views: 6916