This project really began many years ago. I like to build things but I'm also a hockey player. At tournaments I had seen a game called TopShot, where plastic pucks can be shot at an array of 9 back-lit targets. They have games such as tic-tac-toe that entertain kids for hours.
While that system is a ton of fun, it has a bunch of downsides that I was inspired to fix. In order to be used for real training, a better design would need to survive full speed shots with real pucks. TopShot is also very large and heavy, and I saw no reason this system couldn't be small, lightweight, and modular.
With these goals in mind, there are a few requirements for the system.
- Wireless connectivity -- Each target should be self contained and able to talk to many other targets
- Indication feedback -- The targets should light up in some way to provide feedback to the user
- Sensing -- Each target must be able to sense impact on itself
- Robustness -- The targets must handle full-speed shots with real pucks. Hockey pucks are 6 ounces of hard vulcanized rubber, and if you've ever blocked a shot you know how hard the impacts are. Shots from professionals can exceed 100mph, while amateurs regularly shoot over 80mph.
While I was at MIT, I worked on developing some early prototypes of these hockey targets. I got busy with other things before working out all the details, but reviewing that hardware provides a good look into the first attempt.
The prototype I built used an atmega328p as the microcontroller, nrf24l01+ as the radio, 4 WS2812 "neopixel" digitally addressable RGB LEDs for feedback, and a discrete vibration switch (basically a flexible contactor in a tube that closes when shaken). The output of a single alkaline AAA battery was boosted to 5V to run the system. The assembled PCB was mounted between two layers of white 10x10x0.25" HDPE sheet. These panels are similar to the material used in the boards of hockey rinks, and known to be very impact resistant. They also diffuse the LEDs quite nicely.
These prototypes generally worked OK. The LED diffusion looked good, and sensing was reliable. I never risked shooting full speed at them since I only had 2 and needed them for demos, but at least the cover is robust (PCB not so much, and battery would surely have fallen out). However, the devices could not reliably transmit data. I believe this was due to the peak current draw from the NRF24L01+ when transmitting. Boosting a single AAA battery to 5V to run a radio, microcontroller, and 4 high-ish power LEDs was a bad idea in hindsight. They could receive data though, so I could demo the hardware by sending commands from a radio connected to my computer to make the targets respond as desired.
I want to build some better devices now, and from my experience with ESP-NOW, using ESP32s is a cheap and easy way to do the communication part. They would also then be able to communicate to a phone (at least in theory) for setup and game selection. ESP32s are very power hungry, but easy to design for, easy to use, and cheap. I also don't need to place separate microcontroller and radio subsystems on my PCB.
For power, I plan to use lithium 14500 cells (AA size). I've been using them in my solar sensing project with good success. They can easily provide the power needed and have large enough capacity to run the targets for a few hours before charging. I plan to have USB charging onboard. The lithium cells will be ziptied onto the board, since they are the heaviest component.
For sensing, I will use an accelerometer. Although the digital switch was stupid simple and reliable and cheap, I like the concept that I could estimate shot speed from acceleration. I'm not convinced that will work well, but I'm curious to find out. It will also allow adjustable thresholding to eliminate false positives (e.g. a hard shot off the nearby post could shake the old targets hard enough to trigger detection.)