Golf Ball Speed Detector
I’m not a golfer but I do get to play every now and then. I’ve heard hitting the ball farther is all about club and golf ball speed but had no idea how fast I was hitting. I had an OmniPreSense radar sensor from Mouser and downloaded an app they have for detecting speeding cars and wondered if it would work on a golf ball. With a little configuring and testing I found it easily could detect ball speed and it’s a lot cheaper than some $500-$10,000 systems that are out there.
Supplies
1) Android App
2) Android phone or tablet (USB OTG support)
6) Tripod and 3D printed enclosure (optional)
7) PC with terminal program/configure sensor
8) Golf club, ball and place to hit
Download OmniPreSense App
The app provided is located here. It says it works on any Android phone or tablet which supports USB OTG (On the Go). USB OTG lets the phone or tablet power the device connected to it, in this case the sensor which doesn’t draw much power. However, it does seem to draw enough that you should have your phone/tablet fairly charged up, say 40% or more.
Android OTG Phone/Tablet & Cable
You’ll need an Android phone or tablet that supports USB OTG. It sounds like OTG is a pretty mainstream feature now. Samsung and LG phones/tablets all seem to support it. My cheap, old Samsung phone supported it.
In addition you will need a USB OTG cable which converts the micro USB to standard USB female connector. They’re available from Adafruit here for $2.50 or here’s a USB C version for $5.54.
Besides the USB OTG cable you'll need another standard USB micro cable. I had a 3' long version which allowed me to place the phone at a more convenient level.
I had a 3D printed enclosure that fit the size of the sensor and worked a small camera tri-pod to support it when facing the golf ball.
Configure the OPS243-A Sensor
You’ll need a PC to configure the sensor for detecting the golf ball. It can be a PC or Mac and you’ll need a terminal program such as Tera Term or Putty.
You’ll need to plug the sensor into your PC with the USB micro cable and bring up the terminal program. I use Tera Term which is nice because it automatically detects the COM port number. Once connected you can see data streaming by with a simple hand wave above the sensor.
The default units are meters and I wanted miles per hour (mph). There’s a simple API for changing to mph, just type the command US and now the data is reporting in mph (see picture).
I know the golf ball goes very fast, so I set the sensor to report data faster to make sure it captured the ball in flight. The default report rate was around 9 reports per second. But if a golf ball is traveling 100 mph that is 147 ft/s. The distance between reports would be 16 ft. and there would be a chance between reports the ball could be hit and out of detection range for the sensor.
To make sure this didn’t happen I increased the report rate. Change the sample rate to 50ksps (SC command) and use a smaller 512 buffer size (<S command). This increased the report rate to around 50-60 reports per second and I could be sure the golf ball would be picked up.
The final settings were to not report decimals (F0 command) and to save the settings in persistent memory (A! command). This way when I powered the sensor off and connected it to the phone the desired configuration was fixed in place.
Connect Sensor to Phone
Next connect the USB OTG cable to the phone followed by the USB micro cable to the sensor. Make sure the USB OTG cable is connected to the phone side. Even though the combination is a USB micro to micro cable, you can’t plug them in the other way, or it won’t work.
Download the app on your phone and start it. You should see the flashing green light on the sensor and with a hand wave again you can see numbers reading on the phone. The app shows the readings but with my setting they go by very quickly so hard to tell what is the real speed. Fortunately, there’s a max speed measured reading. Assuming the golf ball is the fastest thing moving in front of the sensor then the max reading will display the golf ball speed.
Tee Time Testing
Now it's time to test this out.
Find your nearest driving range to test out the set up. You’ll want to put the sensor around 3-4 feet behind where the golf ball is positioned and facing its direction of travel. Make sure it’s back far enough that you don’t hit it with your back swing.
Tee up a golf ball, take a swing, and note the max speed reading from the app. I was surprised I could hit as fast as 110mph. You can clear the max speed reading each swing to see the new value.
That’s it, a simple golf ball speed indicator made from a radar sensor for cars.
Extra points. Just as an aside, I wanted to look to see if the golf club speed could be seen as well. It looks like it in the video. I reconnected the sensor to the PC and Tera Term with the same settings as above but this time set the output to report multiple objects (O4 command for 4 reports) and captured it in a log file. Low and behold, there it was. I could see the back swing speed data as it was a positive value and then the forward swing at around 60-70 mph followed by the ball at 89 mph. It's from this data I was able to calculate that the sensor saw the ball for 10 ft. from where I hit it. Not very far but pretty good for such a small object.
Real Data (time, speed 1, speed 2, speed 3, speed 4)
200.438: 0
200.449: 0
200.461: -8.15
200.476: -73.32, -78.75, -67.89, -62.46
200.502: -40.73, -46.16, -89.61, -84.18
200.528: -89.61
200.545: -89.61
200.563: -89.61
200.581: -89.61
200.599: 0
200.611: 0