top of page
  • Writer's pictureJoe Linogao

Making a ping pong ball launcher pt. 2

Hello there! In today's blog, I will be showcasing my 90% completed ping pong ball launcher. I have created the main holder, the prop up (to keep the launcher elevated), and the ball magazine. Along with all the advancements, I will also be talking about all the mishaps that happened during the design process. Keep on reading to find out more!


Main Body

Where we left on the last time, I took the nerf gun apart and upgraded the internal components. Moving on from that, I sawed the front half of the gun to create space for the storage unit for the ping pong balls.

Although this completed the body, it highlighted a problem with the overall concept. Despite my upgrades, the fixed amount of air was not powerful enough to launch a ball with significant distance. While it seems that this would throw this idea into the water, there is a reason you saw a nerf gun at the start of this blog. You see, during my testing, I noticed that the orange "plunger" attachment would be moved forcefully when the trigger was pressed. You can see this orange piece in the picture below.

So, this ended being a blessing in disguise as this force was actually enough to launch the ping pong ball. "But Joe..." you may ask, "isn't this just a spring loader at this point?" While this may be true, one advantage that this has over a handspring is that the power exerted is constant. Since it is still fixed by the pullback system, the energy transferred will not vary between different launches. It also saves the effort of holding down a spring, allowing for movement of the launcher while being armed.


Launcher Housing

As seen in this CAD, I planned to saw some wood, nail them together, and allow the launcher to rotate freely between them via. some loose nails. So that is what I did.

Although my woodwork skills are VERY below average, I managed to find some scrap wood in the backyard, and go to work. The housing design just needed to be able to hold the launcher, so it was not too difficult. After a bit of patience and splinters, I created something that was pretty close to what I made in Solidworks. Now that I had a way to change the angle of the launcher, I needed a way to keep the launcher at my desired angle.


Launcher Prop Up Attachment

Since I record most of the work I do, I decided to use the flexible tripod as a prop-up stand for the launcher. To do this, I had to recreate the housing attachment on my camera for the launcher. Luckily, this was easily achieved with the 3D Printer that I bought.

The printer (Creality Ender 3 Pro if you were curious) made creating my designs so much easier and faster. After some quick measurement, I created the attachment for the tripod, and it fit perfectly into the pre-existing holes on the nerf gun. It turned out pretty well all things considered, and it was a nice way to get me comfortable with my 3D printer.


Ping Pong Ball Holder and Electronics

This part caused me the most amount of grief in the last two weeks I have been working on this. My idea was to create a round base with 40mm PVC pipe connectors to hold the ping pong balls. Then, this would hover over the projectile launcher, fire, and would rotate to the next ball using Arduino.

Firstly, I created the circle base in Solidworks then printed it over a three hour period. Unfortunately, I had to keep readjusting the dimensions as there were problems such as tight fits, and PVC pipe overlapping. You can see some of the rejected prints below.

But, after 2 days of troubleshooting and printing, I had the final base created. I also drilled a hole through the middle which will be used to secure the stepper motor to the base. Afterwards, I slid the PVC piping into the slots which were slightly less than their dimensions to ensure a tight fit.

To allow for rotation of the holder, I created a program in Arduino that would control a stepper motor. Once a button was pressed, the motor would rotate 90 degrees, which allows for the next ping pong ball to be fired. Below is a picture of the circuit, as well as an example of the code I used. Note that I used an "off the shelf" stepper motor board, and the corresponding library, which did most of the heavy lifting.

And, here's the code:

// Joe Linogao, Quarter turn stepper motor
/* Example sketch to control a 28BYJ-48 stepper motor with ULN2003 driver board and Arduino UNO. More info: */

// Include the Arduino Stepper.h library:
#include <Stepper.h>

// Define number of steps per rotation:
const int stepsPerRevolution = 2048;

// Intialise button pin
int buttonPin = 2;

// Wiring:
// Pin 8 to IN1 on the ULN2003 driver
// Pin 9 to IN2 on the ULN2003 driver
// Pin 10 to IN3 on the ULN2003 driver
// Pin 11 to IN4 on the ULN2003 driver

// Create stepper object called 'myStepper', note the pin order:
Stepper myStepper = Stepper(stepsPerRevolution, 8, 10, 9, 11);

void setup() {

  // Set the speed to 4 rpm:

  // setup input pullup
  pinMode(buttonPin, INPUT_PULLUP);
  // Begin Serial communication at a baud rate of 9600:

// stepper motor function 
void stepper90(){
    Serial.println("turn 90 degrees");
    // Move stepper motor a certain number of "steps" forward
    // Here, I've translated this to a quarter turn

void loop() {
  // Step one revolution in one direction:

  // if button is pressed, rotate stepper motor 90 degrees
  if (digitalRead(buttonPin)==0 ){

Finally, I created an attachment for the stepper motor that would allow it to be placed onto the nerf gun rails. I had to go through a few iterations, but my final print came out pretty well and fits perfectly onto the launcher rails.


So with ALL of that put together, I've managed to create a ping pong ball launcher that is 90% completed. I am very proud of all the work I put in, and I can't wait to see it work in the final obstacle course. There are some things that still need to be worked on. For example, I had to order a new nerf gun model to replace the old pullback system, since it is on the brink of breaking. I also need to figure out a way to store all the electronics alongside the launcher. But, if you keep up to date on my blogs and Instagram, you will see my work with all of that in the near future!

In the next blog, expect me to tell you how I put our assigned buggy together (yes it finally came), and I will also be giving you updates about my Rube Goldberg machine which I am excited to start building.

I am extremely tired now. Thank you so much for reading this far! Remember to follow my Instagram @joeceengineering, especially my new IGTV which pairs well with this blog. Until next time: stay safe and keep dreaming!

33 views0 comments

Recent Posts

See All


bottom of page