Hi everyone,
I’d like to formally introduce a project I’ve been building for the past months: Trueline, a timing system for BMX racing in Chile. Its core is the SparkFun Simultaneous RFID Reader (M7E Hecto) and a SparkFun UHF RFID antenna.
Why
BMX timing in Chile, as in much of the world, is dominated by MyLaps. It’s the industry standard, but here the experience has been rough. Clubs and riders regularly deal with wrong times, mixed-up positions and incorrect rider data. Clubs are fed up with it, and the federation has no real alternative to turn to.
So yes, this is very much a David vs. Goliath story: one independent developer with an Orange Pi and a SparkFun reader going up against the company that defines race timing. I know how that sounds, and I’m determined to win it anyway. I don’t plan to win by copying their system. I want to build something clubs can afford, run themselves and trust. No BMX track here has its own internet connection, so it also has to be portable and offline-first.
What’s in the case
- Orange Pi 5 Pro (RK3588S) running Armbian, with a Python/FastAPI backend and a local SQLite database.
- SparkFun M7E Hecto, driven over USB with python-mercuryapi. The RF chain is u.FL → RP-SMA → a 4 m RG-58 cable → the SparkFun antenna at the finish line.
- Reed switch on the start gate. It marks the exact moment the gate drops, and that’s t0 for every rider in the heat.
- A potentiometer read through an ADS1115, for adjusting read power in the field.
- A 7" touchscreen kiosk on the case, so the coach can pick riders, set up a heat and watch arrivals live without a phone or laptop.
- Offline-first sync: times are stored locally and pushed to the cloud whenever the case finds a connection.
How the reader is used
- Tags go on the bike’s fork, not on the helmet or number plate, so we’re working with on-metal UHF tags close to the ground.
- Dynamic power management: the reader sits in standby at 0 dBm and only goes to full power about 25 s after the gate drops, shortly before riders actually reach the finish. It drops back to standby when the heat closes. Power settings are never written to NVM.
- An EPC de-duplication buffer, so one tag crossing the line is registered as exactly one arrival.
- Module temperature is polled in the background and logged.
- A manual fallback always exists: the coach can mark the start and arrivals by hand if any sensor fails.
Current status
This is still a working prototype. The software (rider management, training sessions, the race-day heat sheet and season ranking) is already in use, and the case hardware is assembled and running on the bench. Photo-finish is not built yet. I still need to buy a high-speed camera for it, because RFID alone won’t settle close finishes in a sport where riders cross the line inches apart.
Next steps
In the coming weeks I expect to start testing on a real track with real riders. I’ll share the results here, including read rates per tag with a full gate of 8 riders, read-zone shape and how arrival order compares to what the judges see, along with any problems that come up. Technical feedback from people who have used the M7E in fast-moving, multi-tag scenarios would be really valuable, especially about antenna placement and reading tags on metal.
Thanks to SparkFun for making this kind of hardware accessible. It’s what made a project like this possible for a small, independent developer.
Felipe, Trueline (Chile)

