True Hockey’s Game On Ball
UPDATE: Won Bronze in the 2026 Cannes Lions for Sport Social Behavior!
In typical Hugh fashion, I got an email near the end of the year from Makers Roma Ahi asking if I wanted to talk about a project with them and being lead by Dentsu for True Hockey. I signed an NDA and was sent a pdf with a breakdown of a road hockey ball that makes Waze think there’s a traffic jam where a road hockey game is being played. This would then cause Waze to re-route traffic around the game.
Initial Tech
The initial concept technology had everything in the ball; SIM module, ESP32 controller, GPS module, vibration switch, and battery. All of which would be safely encased in PVC? After speaking with Dentsu’s tech lead, Daniel Vettorazi, and having a meeting with the broader team, we agreed to work together. The back-end system needed was initially written by Daniel in Python. I am not a Python guy. I asked Roma if she had anyone in mind for the Python work or could I source someone? Roma gave me the go-ahead and I contacted my friend James Eberhardt. I’ve known James for a very long time and knew he’d spent a significant amount of time with RaspberryPi and Python. James agreed to help out and we were off the races.
Updated Hardware
It’s typical to go from initial technical proof of concept, which Daniel had done using components on a desk, to needing an overhaul of how it all works. For one, putting electronics into a sealed ball that can survive a road hockey game? I recommended moving the important elements to a base station. Dentsu really wanted the ball to still be involved. I suggested keeping the vibration trigger in the ball, along with a rechargeable battery and ESP32 controller. When triggered by a ball drop, the ESP32 would wake from Deep Sleep, which would then send a signal to the base station through ESP-NOW. The base, would then send GPS co-ordinates to the back-end using the SIM module. Small data packets over cellular. This method of communication was a requirement to avoid needing any network setup. It is plug and play.
Back-End
Since I only scratched the surface of the back-end, I don’t have much to say on the matter and would leave it to smarter people than me. Well… more involved people than me. The gist of it is, once the system gets the GPS co-ordinates, it creates simulated vehicles at that location. This then is perceived by Waze as heavy congestion. Waze then reroutes traffic around that location. How’s that for concise?
Wireless charging
A lot of my effort goes into weird niche issues. For instance, once the ball is sealed, how does the controller stay powered? Deep Sleep or not, at some point the controller will need power. Enter wireless charging. It’s commonplace in charging our phones so it seemed a logical solve. All I’d need is transmitter in the base and receiver in the ball.


Controller to Controller Communication
Next up was ensuring the controller broadcasting would wake and sleep as needed. ESP-NOW has a very long range so that was less of a concern. But the wake up from the vibration switch mattered a lot to me. If the ball is being used, it needed to update the base to keep the game going. As seen below, it worked great.
Internal Structure
Ever wanted to cut open a road hockey ball, put electronics in it, then seal it up seamlessly? No? I recommend trying. It’s super difficult. How do you maintain alignment of the charging receiver, keep the vibration switch in position against the inner surface of the ball, indicate the trigger happened AND make the ball at least minimally playable?

I modelled an internal sphere that split in two, with a coupling. The bottom half had the charging receiver ring. Nestled into the center was a 400MAh LiPo battery. The ESPS2 TinyS3 controller was secured above the battery. The vibration switch was attached to upper shell using a coupling. It was set to touch the ball. If the ball was tapped hard enough (say by dropping it), the trigger would occur. I even added an LED that shone through the ball to indicate the switch was active.

The balance was remarkably good. The ball didn’t wobble too badly at all when rolled. I tried very hard to make any weight be centrally-located and it worked out well. The internal structure was all printed in PETG on my Elegoo Neptune 4 Max. A generous gift from engineering YouTuber, Engineezy. He happens to have a shop around the corner from me. When I was marvelling at his bank of Bambu printers, he asked if I wanted the Elegoo. “Uh, yes” is the quickest answer I’ve ever given.
I’ll admit the LED indicator was a last minute addition when I realized once I sealed the ball, I had no idea if it was working. Happy coincidence it looked awesome.
The Base
The base was its own problem. While I think of myself as a relatively good industrial designer (self-taught), I am minimalist in my approach. I designed a knock-off Apple TV, a round base, a base with a weird angled thing (not pictured below because jeez).


However, Dentsu wanted something gorgeous. In came Italian industrial designer (university-educated), Alessandro Pennese. Holy moley, he designed an phenomenal base. I worked with Alessandro to take his beautiful design and make it work in the real world.


Lighting
You’ll note the ring in all of these designs. In so many of my projects, all I have access to to communicate with people is light. So I design lighting animations that communicate states. I found these super small LED strips at 2.7mm.
Once everything was sorted, I had lighting states for a number of actions/reactions.
SIM module / Modem
One of the trickier elements was the modem. And not really for the reason you might think. Do you know SIM cards aren’t all the same? You can’t just slap a SIM from your phone into a module and it’ll work I discovered. You needed a particular SIM and data plan. That was beyond my pay grade to order but I researched and found out that Telus carries them at a reasonable price. Makers’ Jess Parson ordered them for me and they arrived with little issue.
But then the unexpected issue of the modem not connecting. The connection would start but then hang in the handshake. It took two days, with everyone stressing out as delivery was expected, to finally find a solution. I spoke with a telecom engineer. We ran through all the things that I could try. He was as stymied as I was. We got off the call and I felt utterly defeated. An hour later, he texted “What size is the battery? You said it works fine when plugged in. It might be that the battery is too small and can’t cope with the power draw on start up.” So yeah, I swapped the 100MAh battery for a 2,500MAh battery and problem solved!
It still took time to start up, which was expected, but it worked. As you can see, I built 3 copies of this and am stoked with how they turned out.
Anyway, let’s make some one of a kind stuff together. Thanks for the opportunity Makers and Dentsu!

