r/led•
chrisgagne

A 438 (soon to be ~890) LED "disco" suit, hand made and coded with Processing

Posted Sep 2, 2021, 3:57 AM UTC

21226
chrisgagneOP•

Please "steal" all of my research and ideas for this, just please tell me what you learn in the process. <3

This is a handmade, 438-LED "disco suit." I used some custom-ordered "fairy light" style WS2812's from BTF Lighting, each 6.4 meters with a LED every 10 centimeters. The outfit is a "Hard Yakka" Men's poly/cotton overall typically worn by trade workers like mechanics, etc. The polyester should make it more durable and stain/shrink resistant. I used an X-Acto knife to gently cut the thread around most of the pockets and remove them so I don't have to push LEDs through them, but otherwise, it's bog-standard.

Sadly the LED wiring is solid-core, not stranded-core, so it turned out to be quite brittle and broke twice before I even wore it. I realized this fault after wiring the first couple of strands and became more gentle with my handling of subsequent strands to notable effect. I did get a full evening out of the suit without breakage until the very end, but I think I would order the stranded-core product from BTF next time. I don't really know if I will wire the back with the other 450 LEDs (there's room for another ~10 LEDs on the back versus the front given there isn't a neckline back there) since it's already so fragile. I may start entirely from scratch on a new pair of overalls with the stranded core wire strings at a cost of ~US$300 plus ~80 hours of time (these strands may still be available upon request, not sure).

I can power it all night, including the Raspberry Pi controlling it, with a single USB battery that has 3 2A outputs. The LEDs can run at a maximum brightness of 90% for 4W/0.8A a strand, which really surprised me; getting that last 10% took 2-3x the power which overwhelmed my power supply. In writing this post I realized the USB ports are good for 2A, not 2.4A, so I'll recalibrate my maximum brightness to draw no more than .65A/channel. The battery did cut power to the LEDs mid-use, presumably due to overload...

Every circuit is fused with a 2 amp glass-bead fuse (~2.5x factor, bit of an odd duck part) just in case something shorts. I'd rather the fuse blows and needs 15 minutes to replace at home than something catch on fire. That was probably overkill, but I am wearing the damn thing and fire would suck. I am aware that there are biggger/heavier inline fuse holders that would make field replacements easier, but if something blows it was for a reason and I'm probably not going to be able to fix it at a club.

There is very little sewing involved other than to securely attach the 3 conductor 20AWG silicon-coated wire (expensive but very flexible, durable, and high margin of error with respect to voltage drop) leading from the battery/control pack to the first LED on each channel. This would help reduce the pulling on the very delicate LED strands. I measured each wire so that it would terminate at roughly the back of my neck plus a foot or two. I used heat-shrink solder sleeves (white ring, 24-26 AWG so a tight fit) to connect the LED strings and the JST connectors to the silicone-coated wire, then covered these three lines with a larger diameter piece of heat shrink tubing.

The LEDs are threaded through two slits at each point made with a 3D-printed jig that holds two X-Acto blades at exactly the right distance apart. I also painted a small white dot behind where each LED would go to slightly improve the perceived brightness. Each LED is held in place with a drop of CA glue. The wiring is protected on the inside with meters and meters of 30mm wide single-sided fusible interfacing, whose heat-melt glue frankly wasn't up to the task. If I were to do this again, I'd almost certainly sew in a liner but goodness that'd be even more work.

The mapping of the patterns was done entirely by hand; I created a Google Sheet and entered the LED index number at various coordinates with different colors to denote each channel, then used a second sheet with some scaling and string concatenation formulas to generate the Processing commands that would place each single LED somewhere on the canvas. A little regular expression work cleaned it up enough to paste into Processing,

I am using a newer version of this software I wrote that does not rely on Fadecandy's buggy in-built gamma/brightness control command: https://github.com/chrisgagne/ColorCyclingLEDs. (Basically, instead of using Fadecandy's command, I overlaid the pattern with a black box of varying opacity to simulate a decrease in brightness before capturing the colors and sending them to the LEDs via the Fadecandy.) A small RF keyboard permitted control over colors, overall pattern, brightness, sound sensitivity, beat sensitivity, gradients, pause/resume, etc. (List of commands.) There was no reason to deal with creating a WiFi access point and building a web interface for my phone when the keyboard was sufficient.

All in all, it was a fun project and was well-received, but this wiring is extremely fragile and it was a very tedious process to assemble. Everything else worked fine.

Happy to answer any questions about the build. There are a lot of details I've left out but I'd rather save the typing unless someone is interested.

If I were to do this again I'd at least use the stranded core wire. I would probably update my program to use videos rather than static gifs. I'd probably maintain the beat detection and color cycling effect I first leveraged in 2014 (this effect goes back to the Amiga days if not earlier, but I first encountered it with the Nirvana Engine in the late '90s, I'll leave it up to you to translate if interested).

More about the physical aspects of the build as promised

https://i.imgur.com/sttN1PH.jpeg - The overall without pockets. There's a piece of paper for scale. I opened this image up in Autodesk Fusion 360. I calibrated the scale using the distance between the hip seam and the bottom of the leg. I then traced the outline of the overalls. I was then able to measure the area of the front of the suit in square centimeters and double that to include the back. I divided that by about 950 LEDs. From there I worked out that I needed an LED every 20 square cm or so (I forget my exact measurements but you get the idea).

https://i.imgur.com/TouCUnH.jpeg - I then designed, printed, laminated, and cut a stencil that would give me the correct LED spacing. I then used a piece of ordinary chalk to start placing LED locations. If I don't like the placement I could "erase" the mark with a wet paper towel and try again.

https://i.imgur.com/Cf3UUGO.jpeg https://i.imgur.com/zmbUWii.jpeg Marking with the chalk continues. The white gaffers tape indicates the start point for a 64-LED string channel. Once I am happy with the placement, I place a dot at each LED point with an opaque white paint pen.

https://i.imgur.com/aN9DSzD.jpeg The process repeats on the front.

https://i.imgur.com/pAOUfOm.jpeg I think this is after washing and drying in cold water to get the chalk off, leaving only the white paint pen marks behind.

https://i.imgur.com/cZfnHVi.jpeg I scanned an X-Acto blade to get the dimensions, then designed and 3D-printed a jig to hold two X-Acto blades at the correct distance apart. Not seen are the M2 brass heat-set inserts that the M2 screws are going into.

https://i.imgur.com/8c4mGBg.jpeg After painting on some white acrylic paint using a blunt-nosed needle on a syringe. This gave me a fair amount of precision and control when lying down the paint making the squares easy to paint.

https://i.imgur.com/TWy6tR5.jpeg Notice the white safety pins - I count each LED several times to ensure I have exactly 64 after the initial "injection" point. The white safety pins are easier to see on the inside of the suit where I am actually doing the threading work. It is difficult enough to thread the LEDs through the slits made by the X-Acto knife the first time without kinking the solid-core wires and potentially breaking them, so I really want to get it right the first time. (I broke them twice even before I put on the suit for the first time, requiring careful repair with a soldering iron and heat shrink tubing applied with a heat gun and using metal bits from the heat gun kit to shield the fabric and LEDs from the heat.) Starting the LEDs at the wrong point—especially if I need 65+ LEDs but only have 64—would be a very difficult mistake to recover from. Count 5 times, thread once. ;)

CONTINUES IN A CHILD COMMENT

13
m3phisto23•

thank you so much for sharing all this with us!

5
chrisgagneOP•

You're most welcome! Go forth, build cool shit, and share alike!

2
m3phisto23•

i just watched your festival chandelier, i think you might enjoy this work of mine
https://youtu.be/0L5uYcZ1-JM

also here is some of my recent work
https://youtu.be/0L5uYcZ1-JM

i tried to work with a fadecandy controller before, but it is still a hurdle for me. also mapping the LEDs to different shapes is still something i need to work on. but slowly i am getting there. right now i am using WLED for animations, but i would love to do my own with processing

2
scruffynerf23•

Electomage.com's Pixelblaze. 3Dmapping, JavaScript like language, on the fly editing in a browser. We're building lots of stuff that's Processing like.

2
chrisgagneOP•

Looks great! Thanks for sharing. :)

1
chrisgagneOP•

CONTINUES FROM PARENT COMMENT

https://www.aliexpress.com/item/1005002018685053.html - these are similar to the LEDs I used, except I got custom lengths of 6.4m with 64 LEDs each and without JST connectors at the end to take advantage of Fadecandy's 64 LEDs per channel limit. If I were to do this again I would be sure to order the version with stranded-core wires, not solid-core. Even still I have no idea how durable these will be.

https://i.imgur.com/zhdL0Pc.jpeg https://i.imgur.com/f7H5bTp.jpeg The ends of the LED string are bare and I don't trust the insulation all that much. I covered 2 of the 3 of the wire ends with very thin heat shrink tubing, then covered all three wires with another piece of slightly larger diameter heat shrink tubing. This should help avoid shorts at the end of each LED string by isolating each wire with better insulation. This made threading the LED strings through the slits much easier, too.

https://i.imgur.com/4e7neIG.jpeg - initial wiring. I wired the LEDs horizontally as I expected that any stretching would be vertical. There is some slack between the LEDs so even some stretching would not damage the LEDs, just detach the iron-on tape I add later. Thankfully the polyester/cotton fabric I used has only a little stretch.

https://i.imgur.com/rilY2sf.jpeg This picture basically explains the wiring pretty well. I find the start point for each 64-LED channel. Because these are slits and not holes, I must thread the entire LED string through the first slit, then all but one LED through the second, et cetera until I am finished. This gives the top-most condition - a loose bunch of wires. I then glue each LED into place with a dot of generic super glue. I then tidy the wires. On second thought, since I had already cut off the JST connector on one end, I could have started in the middle and threaded 32 LEDs on one side, then 32 on the other. This would have made threading much easier. I explored using holes instead of slits and some sort of 3D-printed, button-sized clip to keep the LEDs in place, but experimenting with a smaller piece of fabric I found them unnecessarily likely to catch on things, slow/expensive to print, and due to the hard edges potentially risky to use against the already thin insulation.

I then iron on the 3cm x 50m single-sided hemming tape. Due to the varying thickness of the LEDs and wires—as well as the tendency of the thin tape to stick to the iron—I found this to be a tedious and haphazard process at best. So, I placed a doubled-over old towel over the wires and used an aggressive steam setting along with bursts of steam on my iron to do most of the heat transfer. (The LEDs are supposedly water-resistant so I'm not too worried about the steam.) This worked brilliantly.

https://i.imgur.com/BOVRzh2.jpeg Layers and layers of this single-sided hemming tape as reinforcement. The iron-on glue is very thin. This is not a good technique. Don't waste your time with it for anything that will get a lot of movement, the glue isn't strong enough and this lining layer will probably detach entirely eventually (parts of the lining have already detached).

If I do this again, I will find someone with a sewing machine I can borrow. I will then practice sewing on some scratch fabric, then carefully sew in a thin liner adding a row of stitches between each row of LEDs. The problem is I'd probably have to disassemble the overalls to get it to sew correctly on a sewing machine, so I'd also need a serger which I also don't know how to use. Perhaps I could use something like tacky fabric glue, but that would probably make the suit too stiff. No, it never got too hot even in a crowded club, at least no more so than a typical costume (I live in New Zealand where this is still was still COVID-safe several weeks ago.)

Not pictured is the control and power assembly. I took two plastic clipboards and removed the clips by drilling out the two rivets holding them in place. I then drilled two holes on the bottom opposite side of the clipboard, giving me four evenly spaced holes. I designed and printed some simple spacers and melted in some M4 brass heat-set inserts. I used M4 low-profile thumbscrews to hold it all together. I drilled more holes as necessary to zip-tie cables as well as used some 3M VHB or double-sided foam tape to hold stuff in place. Everything I needed to power and control the suit fit between the two clipboards. the clipboard are a bit prone to cracking at the spacers, so if I were to do it again I'd probably use a different material like wooden clipboards or even a 20x24x5mm board printed on my Prusa i3MK3 in PETG with a .8mm nozzle. (Good luck first layer adhesion!)

The battery was a large Anker USB phone battery with 3 ports each capable of delivering up to 2A. I find this preferable to the RC-type batteries as this is a lot less likely to burst flames during use and charging. I was able to secure the USB connectors with similar M4 screws, too. I will probably ditch the case and fan and use a 3D-printed mount if I ever work on the back so that I reduce the thickness of the control assembly by 10-20mm.

I used a Fadecandy LED control board, soldered some header pins, and used female Dupont connectors to interface between the Fadecandy and the data lines of the LEDs using heat-shrink solder sleeves. I also 3D-printed someone else's Fadecandy holder design so that I could use 3M VHB tape to hold it in place without damaging it. I also used a 2A glass bead fuse on each of the 8 LED channels so that in the event of a short there is less chance of a fire given this would be difficult to take off in an emergency and it contains polyester which is stronger than cotton but burns easily (in addition to the battery's own circuit protection).

There is enough room for me to add a second battery and Fadecandy, which will adequately power the other 8 circuits if I ever get to the back. I used numbered JST connectors (with clear heat shrink over the numbers) so it is easy to attach and detach the control pack from the suit. I could add a JST connector to the end of one of these strings if I wanted a port to connect a 3D-printed mask with LEDs on it (aspirational at the moment...).'

The control pack and battery fit nicely into a small backpack made out of very thin material (probably silicone impregnated nylon as typically seen in backpacker's gear). The cables going to the various LED channels are long enough that I can easily put on the legs of the suit, then the backpack, then shimmy on the top of the suit.

If you ask nicely I am happy to provide you with the ~30GB disk image of the MicroSD card with my software pre-configured, you'll just need to edit the LED mapping for your project.

https://i.imgur.com/lwpLSWm.jpeg - finished product

4
TheEVILshred•

Very cool! And here I was proud of my small busy-box I made for my 1 year old nephew a few years ago with working leds and buttons and toggles to match them lol. If you redo it again in stranded should film some of the process!

2
chrisgagneOP•

This project was the third piece of wearable LED art. I first designed this in 2014 using a 150- and then 250-LED setup using much larger/worse LEDs. I used washers and super glue to keep them attached to the fabric.

Wherever you are is perfect. Please keep expressing your creativity. If you are passionate about this stuff you will inevitably get better and able to make more complex projects. <3

3
chrisgagneOP•

I have photos I'll post in the next day or two. Stay tuned. :)

2

Very nice work here ! I like it !

RemindME! 3 days "led suit"

2
RemindMeBot•

I will be messaging you in 3 days on 2021-09-05 08:05:55 UTC to remind you of this link

CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

^(Parent commenter can ) ^(delete this message to hide from others.)


^(Info)^(Custom)^(Your Reminders)^(Feedback)
1
chrisgagneOP•

Posted!

1
chrisgagneOP•

Posted!

2
JToTheGlock•

Insanely cool! And love all the details you included! Thanks for sharing!

3
chrisgagneOP•

Added more!

1
Medical-Cup-1412•

now light up only your crotch area

3
DAWTSF•

I feel like that needs to be activated by an accelerometer.

1
Yves-bazin•

Great job !!!!! This looks really damm cool !! Do you have pics of the builds or links to the part you used (or wish you used).

2
chrisgagneOP•

Posted!

2
bStewbstix•

I always wanted to do that with the laser diode’s and then dance in a fog filled room

2
chrisgagneOP•

I used to work with high powered lasers about 20 years ago. Sadly if they’re bright enough they’ll also put an eye out.

1
bStewbstix•

What about the cheapest little crappy ones, you know, $1.99 for 10 on AliExpress?;)

2
chrisgagneOP•

It depends on the milliwatt (mW) output. See https://www.lasersafetyfacts.com/laserclasses.html. Green 532nm lasers will produce among the highest perceived brightness for a given mW rating, but they're still not particularly safe. A 1mW 532nm laser will not appear particularly bright, but it can still cause eye injury at up to 50 feet.

Wearable lasers look cool when you've got a bunch of fog and you're in controlled conditions (not going to accidentally shine them into someone's eyes), but they're quite impractical for real-world use.

It's worth noting that the maximum legal power for a laser pointer in the US is 5mW. Anything more powerful than that is a moderate to serious eye hazard and laser-protective eyewear is recommended. These are too powerful to be used as laser pointers and that's when it's in your hand with you intentionally aiming it. Several continuous beams shooting out from your clothing is a very bad idea. Even a well-controlled display device above 5mW legally requires a variance from the FDA.

3
[deleted]•

[deleted]

1
APE992•

"Wait, you're telling me you're putting more on that? How? ....maybe on the back?"
<turns around>
"Oh"

​

What are you using for wire? I know they make electrically conductive threads but I'm not sure what to trust. And a power source? Years ago all they had were 12v strips and running it off a regular battery bank with a hacked up cable to use both USB ports on it just to have enough current for the voltage booster to bring it up to 12v sucked. It barely worked and sometimes would trip protections and shut off.

Probably didn't help the battery and Arduino were buried inside what amounted to a pillow.

2
chrisgagneOP•

All explained above… the LEDs are pre-strung like fairy lights using solid core wire. Between the LED strings and controller I’m using 3 conductor silicone coated wire.

1