“You may have seen various “infinity dodecahedrons” or other polyhedra across internet, such as here, here, here, or here. They are all mesmerizing in their own way. However, each of them has, for me, one major problem. They are all waaay too big. All of them are about the size of a basketball, if not larger. This is fine if you’re going to a festival, or are going to hang them from a ceiling, but if you’d like to put one on a desk or a shelf, it’s probably not going to be very practical. I wanted a desktop friendly version, so I set about making one.
My end result is a dodecahedron that is a bit bigger than a softball. Without the stand, it measures about 150mm from corner to corner, or 124mm from face to face. With the stand, it is about 203mm tall. You can see it compared to a fresh pencil in the pictures. It is small enough to have on a desk, while still having plenty of LEDs, and being build-able by hand.
The dodecahedron uses strips of mini (3535 SMD size) SK6812 addressable LEDs. These are more or less the same as the more common WS2812B (aka Neopixel) LEDs, but are more compact. They are arranged into lengths of seven LEDs on each of the dodecahedron’s 30 edges, for a total of 210 LEDs. To drive the LEDs I used a Wemos D1 Mini mounted on a custom PCB housed in the dodecahedron’s base. Everything is powered from a common 5V, 2A wall power adapter.
I have written code to drive the LEDs, including 18 different animations/effects.
If you have never worked with WS2812B style LEDs before, taking a look at the Adafruit Guide may be helpful.
Both the dodecahedron and the base are assembled entirely from 3D printed parts. The faces of the dodecahedron are laser cut from 1/8” or 3mm acrylic and are coated in one way mirror film.
For pretty much all “infinity” polyhedra, the tricky part is connecting the LED strips at the polyhedron’s corners. Most people connect the strips with wires, but this quickly gets tedious, especially at smaller sizes. To make the connections a bit easier, I designed special corner PCBs that solder directly onto the strip ends, connecting all of them at once. These were for the most part successful, but I did have some tolerance issues that required some extra soldering.
Overall, this is a bit of a tricky build, especially when it comes to soldering. I would not recommend this project to a beginner, but if you have experience soldering in tight places you shouldn’t have too many problems. Likewise, there are a few steps where it will be very helpful to have an extra person around to lend a spare pair of hands. I encourage reading through the whole Instructable thoroughly to help plan your build.
You can find all the files for the project at my Github here, and here (last link is for the Wemos control PCB).
If you would like to view schematics of the PCBs you can find them here and here.
Finally, if you have any questions about anything in this instructable, please leave a comment, and I’ll get back to you.
To keep everything compact, you’ll need to order a few of my custom PCBs (Click the download link on the right side of the screen to download them):
One Wemos D1 Mini Control Board: Found here
20 Common Corner PCBs: Found here
One Base Corner PCB: Found here
If you’ve never ordered a custom PCB before, it’s easy. I briefly go over it in Step 2 of one of my other instructable here. For the Control Board, all the ordering defaults should be fine. For the Corner PCBs you should try to get them made with a 0.6-0.8mm board thickness. Given that the boards are quite small, not all PCB manufactures will be able to do this. I used JLC PCB who were able to make them just fine. You may want to get a few extras in case some get damaged/lost.
You can find the cut files for the dodecahedron’s faces here. You’ll need 12 faces in total, cut from 1/8” or 3mm thick clear acrylic.I used a local laser cutting service to have mine cut. I’ve included files for both individual faces and an entire set. You may want to order a few extra as spares (the set includes one extra face). I think some services might charge you differently for single pieces vs the whole set, so you should check both. For reference, the faces are pentagons measuring 49mm along each edge.
If you are experienced with cutting acrylic you could try to cut them by hand from an acrylic sheet. I initially tried to do this, but quickly gave up! I designed a 3D printable tool which may help guide your cuts. You can find it here. Keep in mind that the tolerances for the dodecahedron are fairly tight; your face edges should be very flat and straight.
(You might be able to find most of the parts for lower cost at places like Aliexpress, Ebay, Banggood, etc)
Two meters of 144 LEDs/M SK6812 3535 (mini) led strip. Be sure to get a non-waterproof strip where the LEDs are full exposed and not covered in silicone. Should be 8mm wide. If you can find strips without adhesive backing, use them. Found here.
One Wemos D1 Mini. V3 or greater preferred. Found here.
One 74AHCT125N logic level converter. Found here.
Three 3-pin 2.54mm female JST-XH connectors. Found here.
Three 3-pin 2.54mm male JST-XH connectors. Found here.
Twelve JST crimp connectors. Found here.
One 1000uf, 10V electrolytic capacitor. Found here.
One three pin male-male Dupont jumper cable (for testing).
One 19 x 6 x 13mm Slide Switch (these are pretty common, the actuator should be 4-5mm tall). Found here. If you want to drive the LEDs at full brightness you’ll want a larger switch like this one. (You shouldn’t need to tho)
One 5.5 x 2.1mm female DC Jack. Found here, or here.
If you stick to my code and brightness settings, you can use a 5V 2A adapter. Found here. Could also use a phone charger with a USB to 2.1mm DC jack cable. Found here. If you want to drive the LEDs at full brightness, you’ll need a 5V, 10A wall adapter with a 2.1mm DC jack. Found here.
22Ga stranded wire. (and 18Ga if you want to run at full brightness)
26Ga stranded wire.
26/22Ga solid wire (important that it’s solid core!)
Heat shrink tubing, 3mm Dia.
One way mirror film. Found here.
Film application solution Found here. (although apparently dish soap and water works too)
Three 8mm M3 screws.
Three 5mm M3 screws.
Three M3 nuts.
Three 5mm M2 standoffs. Set Found here. (Optional; you could make do with some stacked M2 nuts)
Two M2 nuts.
Three 5mm M2 screws (or 8mm if you’re not using the standoffs)
Soldering iron with fine tip + solder.
Hot-glue-gun + hot-glue
Crimping tool for JST terminals. Found here
Wire cutters and strippers.
Tweezers. (as a soldering aid)
Scissors / hobby knife.
Old credit card or squeegee. (for smoothing out mirror film)
Clear Scotch tape.
Gloves and filter mask. (for working with epoxy)
5 or 15 min epoxy. (see Step 5)
Small popsicle stick or silicone brush (for applying epoxy)
Acetone and Windex. (for cleaning mirror faces)
Heat gun. (for heat shrink)”