Posted on

Knit fairy lights with LEDs for Advent

Project writeup of a combined knitting and small electronics project fashioned to look like knitted fairy or Christmas lights which also containing LEDs that both turn on individually as an advent calendar and display multi-light animations. Fairly easy knitting and electronics techniques, but time consuming.

Knit LED fairy lights illuminated and hanging over a set of windows

Quick links: Step by Step (knittingcodeelectronicsassembly), ReflectionsMaterials et ceteraLinks

Introduction

I decided to make an Advent calendar as a gift and started poking around the internet for interesting projects that might help me better understand Advent calendars and inspire a more specific idea for the project. My brain settled on the possibility of knitted fairy lights with LEDs and I knew immediately what I wanted to do. I love the uncanny aspect of knit facsimiles of everyday objects- the perfect counter weight in my mind to this project’s saccharine potential.

I started with the knit portion, worked on the program, built out the electronics, and then assembled it. This is the order that happened to work for me but there are other approaches that could work. All told, I think that I spent about 45 hours on the knitting, over 20 hours on the electronics (though a bunch of that could have been avoided), and an untold amount of time on the programming, partially due to learning lots about things that were not relevant in the end. I am not a fast knitter, but this project is a decent time investment for anyone.

Throughout this writeup, the term bulb refers to the knit version of a light bulb that acts as a tiny pocket for advent gifts, while LED refers to the part that produces light. The LEDs are placed inside the cord both for simplicity and durability. I considered having the LEDs at the bottom of the bottom of each bulb, but that would have required substantially more work if I wanted to make sure that the electronics were not exposed to potential damage when gifts were placed in or removed from the bulbs. Additionally, the LED strip segments were a bit over an inch long each, making it tricky to seat them nicely inside the bulb tip.

The general anatomy of the project is that there is:

  • 25 knit bulbs hanging from the main cord, open on the top to hold small advent gifts
  •  a main cord consisting of a knit wrapper around a nylon mesh tube with the LEDs and wiring inside of it
  • a knit “electrical plug” which holds the Arduino Nano
  • a tactile switch/ button encased in ribbon that looks like a safety warning tag
  • the power supply, comprising a USB cord connected to the Arduino Nano usb mini port and a 5V/1A USB wall plug

This is not IoT since it is not a connected device. There is no wifi, bluetooth, NFC, IR, or cellular connection or controller. There are several projects I found for LED advent calendars like that and I can see the appeal more now having watched how the recipients have turned it on and off, but it was important to me that the finished object be self-contained and not require pairing, connecting to a network, keeping track of a controller, or installing an app.

This approach also means that it will keep working as long as none of the components die and all of the connections stay intact since the only external dependency is type A/B power outlets (or USB-A if the wall plug is lost).

NB: I did this project in a combination of metric and imperial measurements. Part of that comes from my comfort using imperial with crafting projects- it’s what I learned to work in when I was learning to do higher level knitting in the US. Electronics lend themselves to metric, plus learning them in Germany meant that metric was the default. Part of that comes from what measuring devices I happened to have on hand. I have retained the original imperial measurements that I worked with instead of converting them into metric.

Step by Step

This is a walkthrough of what I did. It can be used as a guide for recreating this project, but that is not the goal. I encourage anyone interested in making something like this to learn from my approach, but I cannot quite recommend following it (see What I would do differently knowing what I know now).

Knitting

I followed Helen Ward’s Knitted fairy lights advent calendar for the 25 light bulbs, most of the knit plug, and general design. The two key points of diversion were to accommodate the  electronics in a way that I liked:  

  • instead of knitting an i-cord knit from tale to plug, I opted to knit the covering around and grafting it into a tube, and
  • I knit the sides of the plug last, specifically fashioning them around the electronics.

I started by knitting the bulbs because I had not yet decided how I wanted to approach the cord. There is no reason that they need to be knit first.

Bulbs

I did not have leftover yarn from other projects that would be suitable, but many knitters do and this project would lend itself to using up small amount of worsted weight yarn leftovers. I used five different colors of Universal Yarn’s Deluxe Worsted (100g, 220 yards, 100% wool) for the bulbs:

  • #3608 Marigold
  • #12286 Lime Tree
  • #12192 Nitrox Blue
  • #12274 Purple Larkspur
  • #3691 Christmas Red

and for the tops of the bulbs and the cord I used

  • #14014 Pesto

I knit five bulbs of each colour and worked out that a set of five included approximately 20 grams of the light bulb yarn and 6 grams of the cord coloured yarn. The project used a total of 136 grams of the Pesto for both the bulb tops and the cord. This was not using a highly accurate scale and would want a bit of buffer on that number for project planning purposes.

After knitting all 25 bulbs, I wet blocked them. After they dried, I embroidered digits 1-24 and a star on them. I did not weave in the ends of the Pesto coloured yarn and instead used the tails to sew them onto the main cord later on.

25 knit, but not finished, bulbs, arranged in an arc of yellow, green, blue, purple, and red

25 knit bulbs arraigned on a towel being wet blocked

Embroidered knit bulbs numbered 1-24, plus one with a star, laid out in a grid

Cord

My modifications to the cord pattern mean that instead of knitting the cord in basically a big corkscrew shape starting at the far end and knitting a tiny tube (i-cord), I chose to knit back and forth with each row stretching the entire finished length of the cord, and then the first row and the last row that I knit were sewn together using a grafting stitch (kitchener) so that there is no visual interruption.

I knit my cord by using crochet cotton thread to do a crocheted provisional cast-on. I then knit 1024 stitches as: k12 (knit 12 stitches), pm (place marker), *k32, pm* 24 times (repeat the instructions inside the “*”), *k100, pm* twice, k24
Row 2 (WS- wrong side, meaning that the side you see is the side that will end up on the side): sl1 (slip one stitch to the other needle without knitting or purling it), p (purl) to end of row
Row 3 (RS- right side, meaning that the side you see is the outside of the tube): k all stitches
Row 4 (WS): same as row 2
Row 5 (RS): *knit to two stitches before marker, k2tog (knit two stitches together, creates a right leaning decrease), slip marker, yo (yarn over, makes a large, lacey hole), ssk (slip two stitches in a row on to the other needle and then knit those two stitches together, creating a left leaning decrease that roughly mirrors the k2tog, )* 25 times, k to end of row
Row 6 (WS): *purl to the yarn over, purl two into the yo*, purl to end
Repeat rows 3 and 2 (in that order) three times (total of 12 rows)

The placement of the LEDs into the yo eyelets from rows 5 & 6 and sewing up is covered in the Assembly section.

I ended up using approximately 1 ⅓ hanks of this green for both the tops of the bulbs and the cord. I would have used less than 1 hank if I had followed the pattern or even if I had kept the same approach and increased the number of stitches in the i-cord.

I chose this approach because it meant that I could knit the entire cord and then put the electronics inside of it so that I would be able to carry the knitting around without potentially damaging the electronics (plus they add weight and bulk). This was a pain and only worth doing if you are a perfectionist or dislike all of the other approaches to that kind of long, thin tube even more. While the cord does look and feel excellent the way I made it, I am not sure that it was worthwhile in the end, and were I to build a similar project in the future, I would rethink this, possibly by using a different light set (see Reflections).

Over 1,000 stitches cast on used a crocheted provisional cast on using waste cotton yarn

Partially knitted wrapper for the main cord of the project

Plug

My modifications to the side of the plug was on the fly. I sewed it together while knitting the side to help eyeball evenness since the plug needed enough right-left symmetry to be recognizable. I ended up slipping the USB plug through between stitches because the place that I had knit it in initially was about a centimetre off centre. While less than ideally, there it was largely unnoticeable afterward. The scrap yarn I used for the i-cord plug prongs resulted in slightly long prongs. I think I could have gotten away for as little as 5 rows of i-cord (pattern called for 10).

Code

I initially planned to use Bob Clagett’s Advent Calendar Christmas Tree Project code, but the LEDs I had did not work with it. His code used both data and clock pins. Clock pins are used by some addressable LED strips for sending colour data. My LED strip only had a data pin. Sometimes, using the same pin for both can work, but when I tried this time, the LED colour and animation effects were off.

After poking around at that code a little bit, researching more about how different addressable LEDs work, and falling down a delightful rabbit hole on memory pointers in C and C++, decided that the fastest, most easily corrected approach would be to start from the ButtonCycler sample sketch from the NeoPixel library where I knew the tactile switch and LEDs both worked, and add or change animation functions from there.

I think of my finished program as having three effects, set up over 30 cases, or specific states that are reached using the tactile switch/ button:

  1. Advent: The first mode covers cases 0-24, where each button click turns on one additional light.
  2. Rainbow: Just case 26. It cycles through the rainbow animation three times, then stays in a fixed rainbow. It is only possible to exit case 26 after the three animation cycles.
  3. Twinkle: Just case 28. It produces an ongoing twinkle effect with slightly pink/ warm white light. Because there is no interrupt function for the button, the only way to leave case 28 by unplugging it.  

Cases 25, 27, and 29 are clearing animations which turn out the LEDs. Case 29 is set up as the starting case so that the mode number and LED number being turned on match (allowed for double use of the same variable); the animation serves no purpose and could probably be replaced with something like strip.clear();. Cases 25 and 27 are there because initially it helped with QA and I liked how the effect looked.

There are two areas I can highlight as “improvement needed”:

First, there are several places where my approach is clunky or inelegant. Some of this comes from my inexperience, such as spelling out 25 identical cases, and some of it, such as the “for” arguments in the twinkle animation, due to lack of time to keep working through for cleaner code when what was there worked.

Second, I wish that I had been able to add in an interrupt so that I could have kept the rainbow animation in an ongoing loop, and added a couple more animations for fun. The unplugging bothers me a little, but not as much as how it limits what was possible. This is covered under Next Steps.

My program: https://github.com/roseregina/arduino/blob/master/adventMultimode.ino 

Electronics

The first hiccup I experienced with the electronics for this project was that I received LEDs that had the RGB diodes spread out from each other instead of clustered. Most of my parts-related delays came from the lights. I had anticipated the button would be the main source of difficulties, but once I let go of having a working interrupt feature, the tactile switch worked fairly well. See Space for information about my electronics workbench for the project.

LED Strip

I used 25 addressable LEDs from a flat strip where I was able to cut the strip between each LED and solder wire ribbon between the strip segments. Technically, by “each LED” I mean a set of three LEDs (red, green, blue) and a chip that controls them so that they can provide a range of colours and brightnesses.

My process changed a bit, but by the end my approach was:

  • cut and group LEDs by fives
  • tin the solder pads (six per LED)
  • cut four 5” lengths of three strand wire ribbon
  • strip 2.5 mm off the ends of each length of wire ribbon
  • slice apart the three strands of insulation at each end to just past the bite mark left by the wire stripper (approximately 5 mm from the end of the insulation)
  • tape LED in place (due to lack of third hand)
  • bend the three split wires to fit to the solder pads and tape in place
  • solder wires to pads
  • repeat the soldering to make strips of five LEDs
  • test that all solder points worked using alligator clips

I opted to test using alligator clips onto the LED strip pads because I found that the ends of the wire were easily banged up when I had to move them around a lot, so I wanted to wait until I was connecting them before attaching the wire ribbon to the ends.

Once I had five fully working strips of five LEDs,

  • cut 2 cm lengths of ½ inch marine 3:1 heat shrink tubing
  • place and heat  heat shrink tubing over the solder points on each length of five
  • connected the lengths together with 5” lengths of wire ribbon as described above
  • tested that all solder points worked
  • added heat shrink tubing over new solder points

Instead of connecting the first LED (LED 0) directly to the Arduino Nano, I followed best practices from the Adafruit NeoPixel Überguide and put a 1000 μf capacitor over the ground and power and a 470 Ω resistor on the data line. I had not done this for previous projects and it’s possible to get away with that, but I decided to this time because of the amount of time investment, difficulty of replacing parts in such a layered construction, and using a USB wall plug. I covered the solder points down to the bottom of the capacitor with a 4 cm lengths of ½ inch marine 3:1 heat shrink tubing.

a small pile of LEDs on a work mat, surrounded by tools

An LED and wire ribbons taped to a silicone mat, surrounded by tools

A messy work space with an unlit LED with wires connected by alligator clips

Illuminated LEDs on a messy work space, with a hard reaching over and touching the breadboard

Five strips of five LEDs, soldered, lying on a green nature print background

Close up of Soldered LED with wire ribbons on both sides and a pile of pieces of heat shrink tubing in the background

A coiled strip of illuminated LEDs connected to alligator clips, on a light wooden floor, with various objects in background

Side view of capacitor and resistor soldered to LED, on a silicone mat, with tools in background

Top view of Capacitor and resistor soldered to LED, on a silicone mat, with tools in background

LED with a capacitor, resistor, and wires on the right, and wire ribbon on the left, with tools in background

LED Diffusers

In this project, the moulded diffusers over the LEDs serve both to make it more pleasant to look directly at the the final result and to keep the LEDs in place to be visible through the eyelets knit into the main cord wrapper in rows 4 and 5.

I tried several approaches to moulding the diffusers out of hot glue. Just making a drop from the gun tip resulted in something too flat and wide. Using an ibuprofen tablet package failed because the heat of the hot glue deformed the package and did not result in a useful shape.

I found a metal bolt-like object with a smooth-ish center approximately 7.5 mm in diameter and 10 mm deep and used that as a mould for the hot glue. The tricky part was removing them from the mould while they were cool enough to have fully set, but still warm enough to be flexible enough for easier removal. Most of the diffusers had a small, slightly larger in diameter base which make them easier to remove from the mould. I made 35 diffusers and used the 25 nicest of them.

After the heat shrink had been applied, I affixed the diffusers by placing a drop of hot glue directly over the LED, positioning the diffuser in the fresh hot glue, and holding until the fresh hot glue had set.

Between the diffusers, attaching them, and the couple other small places I used hot glue, this project took a total of 8 thin sticks. My hot glue gun leaks so there was a lot of waste that oozed out in between filling the mould. There were also two moulding attempts that were bad enough not to be included in the 35.

The hot glue that I used took 30 seconds to set according to the package. The metal mould acted as a heat sink and slowed the cooling process, but I think the timing is fairly accurate for attaching the diffusers.

I was surprised with how secure the hot glue felt and I did not need to reattach any of it with super glue.

Test hot glue light diffusers with coin battery for scale against a blue background
Six LED diffusers made from hot glue with a hot glue gun and other tools in the background
An LED with an attached hot glue diffuser with a hot glue gun and other tools in the background
A coil of unlit LEDs with diffusers against a blue background
A coil of illuminated LEDs with diffusers with a hot glue gun and bread board in the background
Close up of the coil of illuminated LEDs with diffusers against a blue background

Tactile Switch (Button)

My initial idea was to use a sewable tactile switch, with the idea that it would feel nicer to press and the sewn connection would be better suited to the flexibility that I wanted in the tag where I was hiding the tactile switch. While testing, I noticed that the sewable tactile switch I had ended up with was considerably less reliable than the tactile switch connected to a breakout board that I used for my initial testing and went back to that.

The tactile switch required relatively little work:

  • desolder header pins from breakout board where the switch is mounted;
  • cut ~ .5 metre strip of two strand wire ribbon
  • strip 5 mm of insulation off end of wire
  • slice apart the strands of insulation, long enough to reach the correct pins on the breakout board (approximately 5 mm from the end of the insulation)
  • twist stripped wires and place through pin holes (ground and data/ S)
  • solder in place
  • place small amount of hot glue on the back of the breakout board to cover up sharp points on back of board and provide a better surface for squeeze between two fingers
  • cut 3 cm length of ½ inch marine 3:1 heat shrink tubing
  • place over solder points, but not over stitch action, and heat in place
  • wrap heat shrink tubing end and wire ribbon with electrical tape for additional stiffness and to create a smooth transition

The trickier parts of attaching the tactile switch to the main board is covered under Assembly.

Tactile switch on a bread board propped up on a spool of desoldering wick, with desoldered header pins to the left, on a blue background
Tactile switch soldered to signal and ground wires with tools in the background
Back of tactile switch with hot glue covering back, with tools in background
Tactile Switch with heat shrink and electrical tape over solder points and wire, with tools and blue background
Hole  heat melted in nylon mesh for tactile switch wires with tools and a blue background

Arduino Nano

I soldered the parts to the Arduino Nano only after I had finished putting the LEDs inside of the main cord so that I could get the lengths of the wires correct. For each solder point on the Arduino I followed the same steps as for the tactile switch breakout board:

  • strip 5 mm of insulation off end of wire
  • twist stripped wires and place through pin hole, wrapping around neatly
  • solder in place, ensuring that solder flowed through to the back of the board

For the LED strip, I wrapped electrical tape around the wire ribbon at the end of where I had sliced apart the insulation to keep that from splitting further. I connected the LED strip to power (5v) and ground on one side of the board and pin D7 on the other side, running the insulated wire over the top of the board. For the tactile switch, I the wires to the other ground pin and pin D3.

After soldering all of the wires and checking that everything still functioned, I used hot glue to protect the solder points. I used a 4 cm length of ½ inch marine 3:1 heat shrink tubing over the the mini USB plug and socket. The tubing would not fit over where I had soldered so I wrapped the entire Arduino Nano in electrical tape and use additional electrical tape to tidy and secure the wires.

Diagram of Arduino Nano and where each of the parts is connected
Arduino Nano with wires soldered to it, connected to black nylon mesh tube, with tools in background
Arduino Nano with messy hot glue over solder points and soldering equipment in background
Arduino Nano wrapped in electrical tape except for the USB mini port, with soldering tools in the background

Assembly

I used nylon mesh that is for protecting power and monitor cords to enclose the LEDs and wires. I wanted to make sure that the electronics did not end up bearing the weight of the knit parts and any gifts placed inside the bulbs.

Helen Ward’s pattern shows the first bulb farthest from the knit “electrical plug”. I laid mine out in the opposite direction. To keep the lay out would have required that the counter in the code for button pushes and LED number decrease instead of increase with each push.

I measured and cut a hole for each LED, flaming the edges to prevent them from unraveling. The first hole was 3” from the end, and each subsequent LED was placed 6” from the previous. I wrapped a 6” piece of cotton crochet thread twice around each hole and LED diffuser, and tightly knotted it to keep the nylon mesh tightly wrapped and the LED correctly placed. In measuring distances, I measured from the center of one hole to the centre of the next hole.

I used the small bit of yarn at the starting end of the knit wrapper to secure the end of the mesh to the end of the knit wrapper and started to graft the stitches using the live yarn from the knit wrapper, as described in the Cord section. After LED 0, I continued grafting until the last 30 or so stitches. Then, I carefully adjusted the knit wrapper around the nylon mesh so that it looked consistent with the part of the cord between the LEDs.

Once I had a feel for the final length, I cut the main board end of the wires from the LEDs to the right length and soldered them into place as described above.  

At that point, I determined where I wanted the button wire to come out of the main cord, melted a hole in the nylon mesh, fed the wires through between stitches, through the nylon mesh, and soldered it to the main board as described above.

Once everything was connected to the main board and secured in place, I carefully nudged the wires deeper into the nylon cord, and secured the end of the nylon cord in place around the main board with more electrical tape.

Then, I finished grafting the main cord, I stitched together the knit “electrical plug” with polyester stuffing around the main board, and stitched the plug and the end of the main cord together. After connecting the plug, I sewed on all 25 of the bulbs and added seven stich long single crochet loops before the first, between the 5th & 6th, 10th & 11th, 15th & 16th, 20th & 21st, and at the far end (after the 25th). The loops provide an easy way to display the calendar and work well with Command hooks meant to hanging fairy lights.

The last step was taking approximately 1 foot of the 1 ½” satin ribbon and sewing it around the tactile button to make a fake tag to hide the hardware. I did not finish this until after I had given them as a gift because of delays in getting the ribbon, so it is missing from the first photo. First, I whip stitched the tactile switch and wires to the ribbon. I folded the ribbon around the cord and up and over the top of the first end of the ribbon. Then, I used a running stitch to sew the ribbon to itself along the side of the cord, up one side, across the top, and down the other side. 

Beginning of grafting knit cord wrapper, with nylon mesh tube visible and lots of stray white cotton crochet thread, against a grey background
White cotton crochet thread wrapped and tied around the black nylon mesh, with LED diffuser emerging through a hole in the mesh
Knit wrap partially grafted around nylon mesh tube, coiled on a wood floor, with a clump of knotted white cotton crochet thread
Green knit wrapper grafter around most of the nylon mesh tube, with LEDs visible through the knit wrapper, on top of a wooden floor
Close up of tactile switch and plug end of grafted knit wrapper with tools in background
Completed cord and knit plug coiled on an ottoman
Illuminated LEDs in a short segment of the cord with bulbs attached on a cream fabric background
Coiled up finished project with knit
Coil of finished project, with LEDs turned on, on an ottoman
Tactile switch sewn to a while ribbon against a dark grey background
White ribbon tag sewn around the green cord, near the knit electrical plug, on a black background

Reflections

Overall, I’m fairly happy with this project. In spite of finishing three weeks into Advent, the recipients loved it. It was an opportunity for me to learn more, including about things that turned out to be irrelevant, and the end result is polished and sturdy.

What I would do differently knowing what I know now

If I were to repeat this project, I would change my approach to the LED strip and knit cord. Instead of making my own strip of lights with 6” between each and taking additional steps to protect the electronics, I would opt for this neopixel strip from Adafruit because of the form factor, use cotton clothesline-type rope if I felt there was a need for additional support along the lights, accept 3” between LEDs/ bulbs, and use Helen Ward’s icord version (but probably with 5 or 6 stitches to fit) instead of knitting sideways and doing over 15 feet of kitchener stitching.

I estimate that I spend about $41.50 on the parts for the LED string, as opposed to $39.95 for the Adafruit strip, plus potentially saving another $8.99 on an additional ball of yarn through being able to decrease the length and circumference of the knit cord. I think that the shortened distance between lights is well worth the saved time. This also would have allowed me to use the code from Bob Clagett’s project.

Were II would probably also opt for a microcontroller that works with circuitpython/ mircopython and write the program in that, even though I had good starting material for C++. Probably an Adafruit Trinket M0.

Next Steps

There are no next steps. This project is done.

However, my personal next step is to clean up the cases section of the code and work more on the button interrupt for use with LEDs on a dress that I started in Spring of 2018. After I get the button interrupt working, I plan to play with a sound sensor for the first time (previously, I’ve only tried with temperature and distance sensors). Working through Nick Gammon’s How to process incoming serial data without blocking is probably in my future.

Materials, Tools, and Investments

This was long and expensive.

Materials for Knit Parts

7 balls of yarn, at $8.99 each (plus tax) = $69

I used approximately ⅕ of each of five different colours for the bulbs and 1 ½ of the darker green for the bulb tops and cord, since I didn’t have suitable leftovers from older projects. I think I used about 250 grams of yarn and that with a different cord approach, it would have been under 200 grams. The leftover yarn has already started working their way into projects.

White and grey scrap yarn for the plug and embroidery

Crochet thread for provisional cast-on

Very small amount of poly fill for inside the knit “electrical plug”

1 ½” white satin ribbon (3 yards, used 1 foot) for tag covering the tactile switch/ button = $3.99

White thread

Materials for Electronics

Arduino nano = $2.50

WS2812B LED Strip (30LED/M 3.2FT 1M, of which I used 25 LEDs) = $6.99

Tactile stitch on a bread board = $1.11 for ten

4 Color 22 AWG RGB Extension Cable Line (bought 20 metres, used less than 7 metres) = $10.99

25ft – ½ inch Cord Protector Wire Loom Tubing Cable Sleeve Split Sleeving (used approximately 17.5ft- I measured but didn’t write it down) = $15.45

Heat Shrink Tubes, Dual Wall Heat Shrink Tubing 3:1 Ratio Heat Activated Adhesive Glue Lined Marine Shrink Tube Cable Sleeving Wrap Protector Transparent 4Ft (½” (12.7mm)) (used all but maybe 15 cm) = $7.99

Mini USB Cable USB 2.0 Type A to Mini B Cable Data Charging Cord, 3ft = $4.99

USB Wall Charger, 5V/1A USB = $7.99 for three

Hot Glue sticks (24 pack, used 8) = $6.99

 470 Ohm resistor = pennies

1000 µf capacitor = $0.93

Solder (not sure what portion of the package I used, but not all of it) = $9.99

Electrical tape

Tools

Size 5 double pointed knitting needles

Size 5 60” long circular knitting needle

Size 1 60” long circular knitting needle (for grafting)

Crochet hook (size flexible)

Large embroidery needle

Darning needle

Sewing needle

Bread board

Jump wires

Alligator clips

Soldering iron

Desoldering wick

Pliers

Wire cutters

Wire strippers

Tweezers

Razor blade/ utility knife

Pen

Scissors

Measuring tape (I used both a contractor tape and a 6” knitting ruler)

Hot glue gun

A random bolt type thing with a hole in it the right size for moulding diffusers

Sponge

Silicone soldering mat (I also used for cutting, not a good idea, may also want a cutting mat)

Tons and tons of masking tape to make up for not having a third hand or a solid soldering setup

Arduino IDE (https://www.arduino.cc/en/main/software)

Fritzing (https://fritzing.org)

Costs

Materials came to about $150 USD, plus maybe another $45 or so that I dropped on tools since this is the first soldering project that I’ve done since moving back from Germany. I bought a real wire stripper. While I have often been told that I should just up wire clippers and be careful, I cannot overemphasize just how helpful it is to have a real wire stripper that let you set a length and strip ribbons in one go for this project. My soldering iron was $9 with a joke of a stand a couple accessories that I don’t think I used. It got the job done, but there is a definite difference in how it feels from the 65€ soldering station I used to have, and doing a couple hundred solder points in one sitting meant that I definitely noticed it, including in the manufacture quality of the tips.

Time

I started this project on 15 November and completed it on 20 December. That time span includes time spent on troubleshooting the hardware and figuring out all of the alternative code. I also finished multiple other holiday gifts and general life things during that time frame. I do not recommend this timeline.  

The approximately 45 hours of knitting broke down generally as:

  • 25 bulbs at ~1 hr each for knitting, finishing, and embroidery;
  • “literally forever, end me now” doing the crocheted provisional cast on for the main cord;
  • 12 hours for knitting the main cord (when I timed myself, a row took about an hour);
  • approximately an hour knitting and sewing together the plug;
  • a truly painful amount of time grafting the knitting cord around the nylon tube, including not just kitchener stitching 1024 stitches, but also transferring twice that many stitches on to a size 1 circular needle to more easily work from; and,
  • time sewing the tag over the tactile switch was negligible.

Part of how I was able to estimate the time spent was because I am a steady enough knitter to extrapolate and most of what I did used techniques I already knew and there wasn’t much to figure out.

I am much less sure on how long I spent putting together the electronics. This is partially because there were a few things that I did, undid, and redid multiple times. I also have substantially less experience with soldering and related skills, meaning that my pacing is less steady. I also had a bit of a learning curve with the specific soldering iron and solder I was using. I think that I spent about three hours just moulding the LED diffusers. I also spent a substantial amount of time testing the LEDs after each step so that I could immediately identify and fix any issues, largely out of nervousness because of how late the project was. I suspect that with a better workspace, I could redo the electronics part (except moulding the diffusers) in less than 4 hours, including testing, assuming everything went smoothly.

I took notes and photos throughout the process. I started writing this documentation on 27 December and finished the first draft the next day. I estimate that it took me 10 hours for this first draft, including staring off into space a little bit and getting more coffee repeatedly, plus additional time from reviewing feedback from friends and for formatting while posting, which I estimate to have taken 6 hours.

Space

I have a small, approximately 1 ⅓ sq foot dedicated area for soldering and related work. There are two shelves underneath it that I use to store parts and tools. I have a limited amount of floor space and I tend to lay things out on my bed. I have a door to the outside that I open while soldering et cetera for venting. I specifically used lead-free solder because I was working on it in my bedroom and without an active venting set up.

I set up the dedicated work space after I burnt out the first Arduino Nano by leaving it plugged in to my laptop while moving the bread board and connected parts. I did not want to solder header pins onto the board I planned to use inside the project since I would just have to remove them at the end. Instead, I used jump cables through the main board into the bread board, which required a more stable set up so that I could tell if it was a connection issue or something actually not working with the code. Having a dedicated area would also have prevented the kind of mishap that killed my first board.

This meant that I looked around where I am and found a very narrow cabinet that I assume to have been meant as a shelf to go in a bathroom given that there is a towel bar on the bottom, and secured everything to that and the wall to minimize movement. My use of window crayons and the glass door instead of a white board to work through the design is also visible in the second photo. These photos show my layout while testing the code. For soldering, I moved the tactile switch and put a 13.8 x 9.8 inch silicone mat down. It hung over the edge a touch, which is visible in the close ups of preparing the tactile switch. If I were keeping this set up longer-term, I would probably want to trim it down or do something to keep it in place more securely while in use.

A small cabinet with electronics set up on top
A small work surface with a window, strip of LEDs taped to the wall, and a glass door covered in writing in the background

Thanks Yous

I would not have been able to do this project without other people sharing their work, both with electronics and knitting. This project specifically builds on work from Helen Ward, Adafruit (and tdicola, PaintYourDragon, Stevelacy from what I can see on github), Simon Cleveland (mysecretstache), and Bob Clagett. I would not have been able to do the knitting part without the kindness and sharing of so many knitters stretching back all the way to some random little old lady who taught me how to knit for the first time at a fair when my family was on holiday when I four. I would not have been able to do with electronics part without the patience and assistance on previous projects from Leli, Bine, and Billie, who I know because of incredible hackerspaces like Heart of Code. Additional and never ending thanks to my friends who put up with my alternating deluges of whines about my projects breaking and floods of weird photos without much context on why I’m so excited.

Links

My code
Helen Ward’s knitting pattern Knitted fairy lights advent calendar
Bob Clagett’s Arduino powered Advent calendar (since I wouldn’t have tried without it)

About Rose Regina

My preference is not to be bored. There are many ways to make that happen, but books, tech, infosec, human rights, and all the projects take over most of my time.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s