For our Christmas do, I usually do something along the lines of …well, lights. In my family we have always celebrated the Solstice and the sun coming back, because quite frankly, Winter is a bit miserable.
So, last year I wore a crown of ivy, berries, and little warm white lights.
This year… I figured I’ve got a bit better at coding, so why not use that to make my lights a bit more interesting?
I drew this sketch with all the enthusiasm and disregard for practicality of a 5 year old. First step was actually having a dress to put it in. Sewing is something I’m capable of, but I don’t have the patience to sew sequins on. Cue Chinese manufacturing. Turns out if you send your measurements along with a rough sketch of what you want, then wait weeks and weeks, eventually a dress turns up.
It also transpires that I can’t measure myself correctly, so the V shaped back is going to be a little more V-y than first planned. If you want a laugh, the zip also got stuck when I was trying it on, and I had to be helped out by a neighbour and a can of WD40. Plus point, the dress smells better now.
While I was waiting for the dress to arrive, I made up some prototypes. They kind of worked, but were a bit ugly. This version is a halloween witches’ skirt with red LEDs underneath – sort of works, and you get the idea of what I was aiming for. I wanted SNOW though. The lights on the prototype went up, not down. 😦
It was time to be brave and dip a toe into Arduino to drive Neopixels. I got some WS2812B’s on Lorraine Underwood’s recommendation – they’re the ones she used for her awesome weather display stairs.
So, when you don’t know how to do something (in my case, ANYTHING) with an Arduino you turn to the internet. I used Adafruit’s tutorial on the Trinket to get the right libraries installed and to learn how to upload code onto a Trinket. Nothing gave off magic smoke, so all good so far.
Next, time to research falling snow patterns. My local Emporium of Shops (referred to as Meadowhell) had some great icicle patterns that appeared to drip snow. I nosied at their xmas decorations , but after a near miss with a balcony I gave up trying to look at their microcontrollers, and to be fair the security guard was giving me suspicious looks.
TO THE INTERNET!!!! I really admire the work of Kamui Cosplay – so I bought a book of Svetlana’s called Advanced Lights – Animated LEDs. You can get them from Adafruit or from her website. It’s a very fun and well written book with lots of little asides, and gave me the confidence to have a go at altering some code. Her Nova cosplay lights were based on these LED falls by Phillip Burgess, which in turn were based on these shoes by Becky Stern, so I guess my dress code is in good company.
I looked at the colours in the LED falls and how they were set – and changed the code so that it was shades of blue, white and cyan. I also think I may have found a bug in the code on the page – you need to add the word “const” before the line about the gamma correction table (line 11).
I uploaded this code onto the Trinket, and then tested it with one strip of 15 Neopixels. BOOM! Happy times, it worked straight off. I tested it out on all of the pins in turn, from 0 to 4. Still good. Next I had to work out how to wire up the strips to be stable enough to hang around all night on a skirt and not be a horrendous fire hazard or giant tangle.
There is a guide to wiring the LED falls on the tutorial page, but I wanted mine to be a lot more spread out to go around the dress, instead of all radiating from the same point, so I grabbed some card and made an extremely poor and non technical wiring diagram.
The warning on the Adafruit tutorial says your soldering has to be Rock Solid, so I knocked up some mounting plates for the top of each strip so that the solder joints wouldn’t be under any stress. I cut them out of 3mm scrap perspex on the laser, with mounting holes on the top, and a textured front so that when I inevitably glued the neopixel strips on with hot glue it’d have something to grip on.
Soldering took ages because I stopped after each strip to re-test that they still did what I wanted, because there’s nothing worse than working your way through 42 solder joints and *then* finding out there’s a problem.
Next, I glued each strip to a mounting plate, and threaded a cable tie through the holes I’d cut. I then liberally taped with all up with black electrical tape, kind of to hide the joins and also because I feared bits dropping off.
The installation of electronics into the dress was a lot easier than I thought – largely due to the cable ties I nabbed off Jon, and the way that I wanted it to be removable for washing the dress. A cable tie through the mounting plate, then a safety pin through the cable tie and onto the dress. A few more cable ties sorted out any baggy wires, and then finally I pinned the board to the back, and added a USB cable so I could run the dress off a powerbank.
Yay! All was lovely. Until I plugged in the powerbank. Turns out that testing the electronics with mains power works lovely, but a powerbank just doesn’t give out enough current to light all of the strips. Yes, I should have thought of this before.
Cue a change to LiPo batteries. Which also couldn’t give enough oomph, so I had to double the price of the electronics (I’d spent £20 so far) and fork out for an Adafruit Powerboost 1000.
AND THEN IT WORKED!!!!
I know this isn’t a very detailed write up, but I made the dress for fun, rather than for a tutorial. Maybe when I make one for the toddler in the photo I’ll do a proper tutorial.
- WS2812b reel of pixels, cut into 15 pixels per strip.
- 7.5m of black stranded wire
- 7.5m of red stranded wire
- one scrap proto board liberated from Botlab
- lead free solder
- scrap 3mm perspex
- about 20 black cable ties
- 5v Adafruit Trinket ( Adafruit (USA) or Pimoroni (UK) )
- Adafruit Powerboost 1000 ( Adafruit (USA) or Pimoroni (UK) )