Building Backyard TopGolf - ONGOING

October 1, 2024

Background - Solar powered golf ball detection setup

  • I just moved to Texas and my neighbors keep up a few golfing "greens" at a nearby park to practice shortgame and socialize.
  • I love TopGolf and being a good neighbor so I had the idea to throw a camera up that everyone could use to play a little "Backyard TopGolf."
  • Thought about making a golfball launch monitor, but I want to move quickly, and the internet says that has lots of pitfalls.
  • So I'm starting with something much more simple: recognizing golf balls on a green and scoring a round of 10 based on their proximity to the hole.

Green Preview

Day 1 - Selecting a camera, tech stack, and data

  • Researched solar cameras with FTP flexibility.
  • Talked to peers about a good tool stack.
    • Ultralytics (open source) for wide range of AI tasks, including detection, segmentation, classification, tracking. I used this quickstart.
  • Found some good golf related data.

Day 2 - Getting images off the camera and detecting objects

  • Wrestled FileZilla Server 505 errors and really it just came down to making sure the proper "Remote Directory" field was setup in the the ReoLink app (IE "Users/youruser/Desktop/exampleFTPDirectory")
  • Now images and videos are automatically sent to my local server when motion is detected. Woo!
  • Added object detection with YOLOv5 out of the box and it works pretty well.

Software is eating the world

Day 3 - RTSP + HTTP + custom golfball model

  • Need HTTP or RTSP to programatically determine when to take that snapshot instead of motion based...but it seems like this is the end of the road of trying to bend the commercial camera to my will.
    • It seems like ReoLink does not open the RTSP or HTTP ports for their battery powered cammeras, because it would just kill the battery to do any streaming.
    • I got this NeoLink library running that acts as a proxy between Reolink proprietary protocol and RTSP, but still can't get into the camera.
  • I returned the ReoLink and trying an Amcrest ASH22-W to see if I can use the RTSP/HTTP access I need, and it worked on the first try.
    • Notice the live time-stamp in the top right, as well as a newly detected golf-ball. golfballRTSP

Day 4 - Wifi boosting

  • Time for me to learn about signal "boosting." I need wifi or cellular connectivity to get the feed back to the golfer.
  • Its a hobby project, so I am going wifi, but how do I get wifi out to the field about 300 feet behind my house?
  • There are lots of YouTube videos of folks setting up their own Farm Wifi where they extend the reach of the wifi from their house out to a barn on the farside of the property using a variety of methods. But the one that intrigued me most was a unidirectional antenna, so I am going that route. Extended Wifi Video

Day 5 - Design a circuit to control the camera

  • Real-time streaming uses a lot of battery, so we don't want to leave the camera running all the time
  • I decided to use a low-power circuit to power a microcontroller that can receive a signal and switch a relay that powers the camera on and off
  • I ordered a relay that toggles power to the camera, and a buck converter which steps down the 1
  • I still might see how feasible it is to just dynamically put the camera in stand-by when

Day 6 - Pick a battery

  • Determine power draw
  • Voltage input requirements (exactly 12V?)

Next steps (feel free to let me know how you would approach):

  • Protype circuit and test relay
  • Waterproof camera housing
  • Golfer user interface (and leaderboard)

Bill of Materials