It’s a 4 meter strip of 60/m WS2812B wrapped around a section of 3" PVC pipe, which just barely fits snugly inside a small IKEA KVARNÅ table lamp. Driven with a Teensy 3.1 and FastLED (of course). Controlled with an IR remote.
I’m going to try 2.5" PVC pipe next, as I’d like a little more height and more distance between the LEDs and the frosted glass, for more diffusion.
A great animation collection! Just a curious question: How does the backside of the torch look like? Do you mirror the animations or is there a discontinuity at the line where the right side of the xy mapping meets the left end?
Thanks, everyone! I definitely agree, it needs more space for diffusion, that’s next on my to do list. Stefan, for the noise, fire, and wave patterns, I’m using non-serpentine XY mapping. There’s a “seam” at the back where the left and right edges of the virtual matrix wrap around and meet. Other patterns, such as sinelon, just treat it as the 1D strip that it really is, physically.
One of the fire patterns is a slightly modified version of MessageTorch, which really inspired me for this build: https://github.com/plan44/messagetorch
I know the problem with the seam. My thoughts were the following: on a cylinder I can only see the half of the surface. So I rendered only half of the perimeter and mirrored the result onto the other half. Result: the seam disappears and looks like a simple caleidoscope instead. From the “right” viewing point (basically now we have 2 of them) it looks exactely as in your video. From other viewing positions one can see a part of the original and a part of the mirrored picture. The seam disappeared (and it saved calculation time).
Cool idea! I’ll have to try that out now, thanks! I may try adding it as an option, and map one of the buttons on the IR remote to toggle it on/off. I also plan to try getting your noise smearing working on it.
Something I’ve done on circular led layouts: if you have (say) 10 pixels in a circle, declare NUM_LEDS to be a few more, say, 13. Render all your animations into the array of 13 CRGBs.
The, just before calling show(), blend the “extra” CRGBs onto the low-numbered end of the LED array, like this(ish)
Basically, you’re overlapping the ends of the strip and blending them together. Definitely helps hide the seam, better for some animations than others.
@Antonio_Valenti It has a theoretical max draw of 14.4A. I’m just using a 5V 10A power supply, which isn’t quite enough to run it at full brightness, all white. So I just avoid doing that.
No, I haven’t tried it on something exept 32x32. I remember my code was horrible, full of magic numbers and hard coded parameters. Last week I tried to understand what I was doing there and was lucky to find my own explanation in the SmartMatrix community. I think the code needs a complete refactoring to be universal usable. I might do that one day but I better don’t announce anything that might not happen.