For this project, we need something to light up all the fiber optic stepping stones. The requirements are:
- Bright enough to light the stones
- Controllable on a per-stone basis
- Good PWM frequency (above 2kHz)
- Scalable (from 1 to 30 stones if we wanted, multiple locations)
- Easily reproducible, not requiring any hard-to-get parts
- Easily controllable from a phone
- wall-powered or battery powered
- Low maintenance
- Low cost
Hobby-scale fiber optics is a thing, but it seems to mostly be for people lighting up entire ceilings with fiber optic stars or lighting single, long side-glow fibers. For the entire ceilings and side-glow, it's mostly large light pumps with heat sinks and DMX controllable if you're lucky. I was able to find up to 4 channels of fiber illumination intended for side-glow fibers, but it was a niche product on AliExpress and that didn't seem super reproducible.
I opted to reuse my inventory of RGB LED strips as that would solve all the optical, reproducibility, scalability, PWM, cost, and power requirements. To make that work, I designed a 3D printable structure to align the fibers to an RGB LED strip of a specific LED stride (in this case 60 LEDs/meter). This takes bundles of fibers crimped with a wire ferrule, captures them in a 3D printed block which registers them to the structure, and also registers the LEDs to the structure. The fibers are able to rotate as a bundle in place, but not lose registration which makes it very easy to manipulate during installation. The only fiddly bit with this design is that each size ferrule has a matching block, however they're very small and quick to print on-the-fly. Crimping the fibers with wire ferrules is something I saw with a piece of fiber optic fabric that I bought. I didn't know what wire ferrules were when I saw it, but remembered them when got some for another project. I tried it out with the 1mm plastic fibers and it works great!
Up to 7 strands of 1mm optical fibers can be crimped in a 10AWG wire ferrule using a hex ferrule crimper (10AWG seemed to be the max for cheap ferrule crimpers). 10AWG also happens to line up nicely with the size of the LEDs and the brightness needed to be visible at night.
For different numbers of fibers, different sizes of ferrules are used, going all the way down to 18AWG for a single fiber. The ferrules hold all the fiber ends together tightly and provide a hard endpoint to latch onto in order to hold the fibers in position. Hex crimpers work better than square crimpers for this application due to circle-packing.
To drive the LED strips, I need something that is easy to use, doesn't require expensive infrastructure, and maybe even has the option for fancy programming down the road. This led me to discover WLED which seems perfectly suited for this job. I had some old ESP8266 boards and loaded WLED onto one. While unfortunately the board only has 512K of storage and isn't directly supported out-of-the-box with WLED, it seems to work alright after setting up custom build parameters and disabling a bunch of features. I may switch to an ESP32-based board with more storage, though, as the Sparkfun Thing seems to be pushed to its limit with this firmware.
To waterproof the whole thing, we'll be putting the electronics in little waterproof snack containers and potting all the holes with hot glue. I've used this technique before at burns, but those are only installed for a week or so. Hopefully it works well enough for this application too.
Putting it all together, our test big dipper stone can now be controlled via wifi via a phone!
Next up: making the constellation stones!