Ping Pong Ball Led Display

About the project

These are the files an advanced maker could use to make a Ping Pong display. Custom PCBs, large 3D prints, and laser cut parts are used to simplify the design and construction significantly.

Items used in this project

Hardware components

Light Stick PCBs Light Stick PCBs Sourced from JLCPCB x 20
5050 SMD LEDs such as SK6812 or WS2812B 5050 SMD LEDs such as SK6812 or WS2812B Should support 'neopixel' daisy chain control x 128
38mm Ping Pong Balls 38mm Ping Pong Balls Beer pong balls work too - cheaper is better because they're made of less flamable plastic x 128
M3x4 Hex socket bolts M3x4 Hex socket bolts x 40
Hook-up Wire - Black (22 AWG) Hook-up Wire - Black (22 AWG) x 1
Arduino Uno - R3 Arduino Uno - R3 Any µController will work. x 1
RTC module RTC module If needed. D1307 is sufficient x 1
5V 10A Switching Power Supply 5V 10A Switching Power Supply x 1
3D printer filament - 3Kg 3D printer filament - 3Kg PLA is fine. x 1
36"x24" Acrylic sheet 36"x24" Acrylic sheet x 1

View all

Hand tools and fabrication machines

3d printer (large build volume) 3d printer (large build volume) x 1
Laser cutter (large cutting area) Laser cutter (large cutting area) x 1
Soldering and electronics tools Soldering and electronics tools x 1


These are the files I used to make a ping-pong ball display! This is for somewhat advanced makers and assumes some knowledge to put everything together as well as access to tools. It attempts to simplify other designs out there for similar displays by using large, 3d printed parts to hold the diffusers, Custom PCBs to get the spacing right, and a laser cut back plane for ease of assembly.

Things you will need:

* 20 PCBs - I got mine from JLCPCB 30 boards for $9.30* 128 5050 SMD LEDs that use the standard data format. I used SK6812's because I wanted true white. I bought 1000 of them for $80 on eBay - meaning I used about $10.00 worth for this project. I would suggest buying some extra. * 128 38mm ping (or beer) pong balls. I got plastic so they wouldn't be as flammable as real ping pong balls. Read reviews - if everyone is complaining that they don't bounce right they're perfect for this! (eBay, $15)* 40 M3x4 hex screws (~$5)* Wire* Arduino Uno (or µController of choice)* RTC Module if necessary - I had an old Adafruit D1307 kicking around - $8* 5V 10A power supply (Alitove, Amazon, $20)* I used about 3Kg of filament - ~$60 * 36"x24" Acrylic sheet - ~$10Total is ~$80 hardware and $85 materials for roughly $165


General idea should be straight-forward from the photos. Assemble the PCBs (it might make sense to pay JLCPCB to do it for you), install them, wire them up!Some build tips:* Test each strip of LEDs before installing it to the board* The ground pin of the LEDs is the most difficult to solder - if it's bad you'll see garbage data after the LED with a bad ground connection* You can cut the PCBs along the lines to make shorter ones for the shorter diagonals - I used a band saw but a coping saw works too* The power is wired in 5 groups of four strips. This is to be mindful of too much current in an single wire* The wires are doubled up in some (many) holes* Install the PCBs to the backplane before wiring

Diffuser Panel

* Print at whatever settings - Rough is fine.* Insert all of the balls before cutting them - that way they hold pressure* Each ball has a seam - best to keep it turned out of the way* Cut a hole in the bottom of each ball with a sharp hobby knife* Once they're cut they will dent easily - be careful with them


I printed the frame in four pieces, mirror two of them. I don't love it - I think replacing with wood would look a lot nicer. Be mindful of warping on the corners.


I have a bunch of Unos sitting around so I just used what I had on hand - an ESP32 or something would be super nice for this!I also have an old RTC for the time, again, a better µcontroller would eliminate that need.The DC power supply comes with a barrel-jack-screw-terminal thing that you can use. I made a small PCB that is a partial shield that holds the RTC and distributes the power to the LEDs. It puts the two barrel jacks right next to each other for maximum confusion. The code I've uploaded is super barebones and not very good. It displays the time. It's more or less commented. I will upload better code if I ever write it, but I would rather someone remix this with good code I use VScode + PIO to upload but I think it will work with Arduino Studio.


Let me know what questions/concerns/necessary information I might have missed. I will help where I can.

CAD, enclosures and custom parts

All files

Since this site cannot host the PCB files or the STL files you will have to get everything from the original Thingiverse page.

Go to download


Clock Code

Very basic function displaying the time taken from an RTC


Photo of pyrohmstr


I run a university engineering-focused makerspace and teach undergraduate Additive Manufacturing and Prototyping classes


Leave your feedback...