Tennis Ball Machine
August 2022 — June 2025
Contributors
Ben Jacobson
Doug Jacobson | Consultant
Teddy Millot | Consultant
Description
A DIY Tennis Ball Machine to help my family practice our strokes on the court. Controlled by Arduino, it features automated pan with double herringbone gears on a lazy susan, a leadscrew-based tilting mechanism, a detachable ball hopper with rotary carousel, and a servo-actuated ball indexer for precise timing control.
Showcasing the machine at Imagine RIT: Creativity and Innovation Festival
Test of the pan and tilt axis with Teknic’s integrated brushless servo motors controlled via an Arduino and serial communication
Workbench test of one of the first prototypes of the machine
Garage tests of the PID speed control and ball speed feedback
Overview
Background
My family all loves to play tennis. In 2022, my father brought up the idea of making our own tennis ball machine that could shoot balls at us from across the court. Machines like this already exist, but the challenge was to create one with all the features we wanted—automated pan, tilt, speed, spin, and feed rate control—at a competitive price.
Build
We began with a wooden prototype to prove the concept of using high-speed throw wheels to accelerate the tennis ball. The prototype featured carbon steel shafts, 3D-printed throw wheels with rubberized coatings, and a rotary carousel PVC pipe ball feeder. After testing it on the court, I took over the project and redesigned the system with an aluminum frame, detachable ball hopper, internal leadscrew-based tilting mechanism, double-herringbone gear pan mechanism, and a servo-actuated ball indexer for precise timing control. I also developed modular, object-oriented software running on Arduino to control integrated brushless servo motors and provide user-adjustable parameters via the control panel.
Result
The final machine delivers automated pan, tilt, speed, spin, and feed rate control—letting my family have fun training together on the court. I also had the opportunity to present it at Imagine RIT: Creativity and Innovation Festival in spring 2025.
Special thanks to my sponsors: RIT St. Jane and Dick Reeve Grant and Teknic.
The information below describes an earlier stage of my build. More updated information will be posted here soon.
A tennis ball machine is a device designed to hit tennis balls to you on the court to practice your stroke. These exist already, but are either really expensive, lacking crucial features, or both.
So I decided—as I usually do—to just make one at home.
Two years and countless of prototypes and revisions later, the machine is well on its way to ruling the court.
The t-slot extruded aluminum frame makes up the bulk of Tennis Ball Machine’s structure. It houses a large Lazy Susan style bearing that allows the internal tilting mechanism to pan back and forth. Eventually, it will also house the battery, electronics, and control panel.
A detachable aluminum framed ball hopper will slide on the top of the main frame and both mechanically and electrically connect to the rest of the machine in one interface.
The internal tilting mechanism is the heart of the machine and is responsible for launching the balls across the court.
Also based on aluminum t-slot, a DC motor drives a leadscrew to actuate the linear portion of a triangular tilting mechanism to control the launch elevation.
On the tilting frame lives two high-speed DC motors coupled to carbon steel shafts and custom 3D printed throw wheels with bolts added to optimize rotational inertia.
The wheels spin in opposite direction, accelerating the ball as it’s passed through.
The throw wheel motors have 3D printed half opaque, half transparent discs in the back that rotate through infrared gates, so the computer knows the precise speed of each wheel at all times.
I want Tennis Ball Machine to be able to deliver consistent topspin, backspin, or flat shots, which means wheel speed regulation is crucial. The machine uses a PID closed loop control system to keep each wheel spinning at its target, regardless of external factors like friction and battery voltage.
Mounted to the back of the frame is a 3D printed ramp, designed to guide a tennis ball into the throw wheels at any tilt angle.
As the balls are accelerated through the throwing mechanism, they pass through a speed tunnel equipped with infrared sensors so the computer (Arduino) can calculate the speed of the ball.