Embedded systems, Patch 2024
ForceField
An impact sensor for hurling helmets that scores concussion risk in real time, carried over a mesh network I wrote from scratch in 8KB of RAM.
- datapoints per second
- 6,000
- mesh range per peer
- 100m+
- firmware RAM budget
- 8KB
- hardware cost per unit
- €35
The problem
Concussion in contact sport is serious and easy to miss. In hurling, a heavy clash of the ash can rattle a player’s head and the game just keeps going. The signs are subtle, the sideline is busy, and nobody has the numbers in front of them.
The instinct is to put a sensor in the helmet. The hard part is everything after that: getting the data off a moving player, across a full pitch, in time to matter, on hardware cheap enough that a club could actually buy a set.
A mesh of players
The off-the-shelf answer is Bluetooth, which gives you maybe 20m before the link drops. A hurling pitch is closer to 140m end to end, so that was never going to hold.
So every helmet is a relay. I wrote a WiFi-mesh protocol in C++ on the ESP-32, where each player’s node re-broadcasts what it hears and the signal hops across the team to the sideline. That pushes usable range past 100m per peer, and the more players on the pitch, the stronger the network gets.
The open-source mesh libraries all leaned on dynamic memory allocation the ESP-32 couldn’t spare, so the protocol is hand-built: nodes join on a setup broadcast, and every message is chunked and tagged so the access point can tell who hit what and reassemble it in order.
ForceField: a sliotar mark for a system built around the hurling helmet.
Live linear and angular acceleration, streamed off the helmet as it happens.
6,000 datapoints a second
Each helmet pairs an ADXL375 high-G accelerometer with an LSM6DSOX gyroscope, capturing both the linear hit and the rotational snap that does the real damage. The two run at matched rates and feed buffer arrays that the firmware sweeps for heavy impacts.
All of that moves at 6,000 datapoints per second, and the firmware was hand-optimised to live inside 8KB of RAM. That constraint set the tone for the whole codebase: no allocations you can’t account for, no buffer you don’t need.
From hit to risk score
Raw acceleration is not the same as danger, so the access point scores each impact against the concussion risk function from Campolettano et al., which combines linear and rotational acceleration into a single likelihood.
The companion app, written in React Native, identifies each player and shows their impacts as mild, moderate and major counts with a live risk band. Any session can be reloaded later, so a coach or a doctor can go back over exactly what a player took, hours or weeks after the match.
A live session: impact counts per player with a running risk band.
The app opens straight onto starting or reloading a session.
Patch, and a hard deadline
ForceField was built over six weeks at Patch, the youth accelerator, where I was co-founder and chief software engineer. The whole thing went from a problem statement to working helmets, a custom mesh, and a live app in that window.
We co-designed the hardware to land at roughly €35 a unit, cheap enough to kit out a squad rather than a single test rig. At the end of the programme I presented the system to John Collison, co-founder of Stripe.