A friend of mine has commissioned me to make her a few light boxes in trade for some dresses for my daughter. Her niece loves Fortnite so I took a look around at what's here on MW and didn't see anything I liked so I made my own up. She told me her neice loves purple, so I used that instead of black (and the face is a little thicker than normal to account for less opaque material).
My critera were:
What I came up with is a three-piece light box that has a face, a base, and an insert (what I'm calling the “midplate”). There's a grand total of six color swaps between all three pieces, which print on two separate plates. You'll need a warm white, opaque (I used purple), and transparent/natural filament (I love FilaCube HT-PLA+ Natural for this!).
Throw WLED on your D1 and make sure it boots. I always suggest mocking your installation up before soldering and assembly just to save time troubleshooting later. I used 0.15.0-b3, if you want to use my configurations below.
IMPORTANT
I draw attention to it in the print profile but I want to mention it here as well: "transparent" filaments print clearer when printed hot and slow. In this I have two filament profiles for my natural filament - one that prints with a 15mm³/s MVS for a fogged-glass effect, and one that prints with a 5mm³/s for a much clearer result. I did not force a slow linear speed on the band object itself and instead chose to rely on a filament profile to force the material to print slower. When you apply your own filament profiles to this print, that may be lost so if you want clearer walls please double-check this! Using a faster filament profile will create a more opaque and diffusing band - which may or may not be desirable!
Despite the high wall speeds, the filament profile slows these lines down for maximum clarity.
Print the base and midplate out - in my profile both share a build plate and print by object, incurring only two color swaps. On the midplate, wrap some WS2812B LEDs around the outside of the standoff and apply two rows of the LEDs equally spaced out across the top. Using 60/m LEDs that gave me 28 around the sidewall and 26 (two rows of 13) across the face. This is in total just less than 1 meter of LEDs and at peak consumes ~4.2W (or ~840mA), so a 1A phone charger is fine for this light.
LED TIPS:
I ran the data wire for the side walls to GPIO 1 ("TX") and the data wire for the face through the hole to GPIO 5 ("D1") on a Wemos D1 Mini v3. By mistake I put my standoffs in upside-down, so the D1 goes in upside down as well - make sure your wires poke out the bottom of the D1! The D1 screws in using two M2.3x5 self-tapping screws. Solder all your 5V+ and GND together, give 'em a little heat shrink to prevent shorts.
For power, one of the normal snap-in USB-C connectors fits with a little finesse (I squeeze the prongs in with a pair of needle-nose pliers and gently wiggle it in), and I used a leftover power coupling from some other project just so I could pull the two pieces completely apart (this is optional but convenient).
From there, final assembly is literally a snap. Tuck your wires out of the way and lay the right end of the midplate in between the lip of the clear wall and the retainer notch.
Then gently push the left end (where the wires are) down until it clicks under it's retaining notch. You can gently push out on the wall of the base if it helps, but do not push too hard and risk breaking the opaque and transparent walls from each other!
The face plate has four little retainers along it's cardinal axes, just gently push it in to place and you're done!
Attached are the config and presets I used, renamed to .txt since I can't upload .json. Just rename them and remove “.txt” to upload them in to your light. When setting up your patterns, make use of the “mirror” function for the faceplate as it can make left-to-right sweeps instead of circular chasing patterns.