Stranger Things Ugly Christmas Sweater





Introduction: Stranger Things Ugly Christmas Sweater

I really loved the "Stranger Things" and saw the wall art for their christmas light alphabet and thought it was great. Later my friends (really far in advance) invited me to a Christmas party with a theme of "ugly Christmas sweaters" at beginning of December. I had zero sweaters let alone ugly x-mas ones. So I had thought of combining the wall art with a sweater using sew-able circuits.

This is my first instructable so be kind. Also I am Canadian so expect to see the word "colour" a lot.

Step 1:

First things first gather your supplies:

  1. You'll need an ugly sweater preferably white with a close knit, but still a knit, pattern. (see the sweater I used). I suggest thrift stores, you may have to hit a few till you find one of the right sizes, knit, colour.
  2. Fabric paint I used Tulip 41401 Dimensional Fabric Paint, 4-Ounce, Slick Black (I bought 2 but needed maybe 1/4 of 1.(US Link)
  3. Fabric Glue (to seal knots) I used Aleene's 25114 Fabric Tacky Pack (I used the "no sew" and "jewel" ones).(US Link)
  4. Semi-rigid (but not too rigid) see through plastic. I used some binder dividers I found at the dollar store (see photo). You need yellow, blue, green, red (or pink?) and purple (or pink if you didn't use it for red). (US Link)
  5. Semi-rigid (but once again not too rigid) semi-clear plastic (I used a recipe divider from dollar store)
  6. Microcontroller for the LEDs. I used the Arduino Main board (US LInk includes parts 13 and 14)
  7. Sewable white LEDs; you'll need one for each letter you want to light up. (I made ACDEGHILMNORSTUY light up so I bought 20 cause they come in packs of 5). I used the Arduino Lilypad LEDs (US Link)
  8. Conductive thread (30' should do it). (US link)
  9. Scissors
  10. Thread in the colour of the shirt
  11. Sewing Needles
  12. Pins
  13. Micro USB cable
  14. Arduino USB connector (FTDI basic)

Step 2: Draw the Wire and Letters

This will involve a lot of free hand with fabric paint so I recommend testing it out on paper or a rag that you can throw away first. For the paint I used the drying time said 4 hrs but was actually 12 hrs cause of the thickness of the paint in some areas. First off, draw the wire I drew it in a zigzag pattern but you could also have it circle the shirt if you are so inclined. That would have to be done in 2 stages though front, then allow it to dry, then back. I also recommend letting the wire dry before doing lettering.

I chose to make the letters look similar to the ones on the show, ergo messy. you can also draw any kind of font your desire but I was going for look and feel of the show. Let the letters dry then on to nest step. You may want to put cardboard between the layers to ensure there is no bleed through from front to back.


  • Be careful to leave enough space between wire and letters for a light. The light should be about the same height (but not width) as the letters.

Step 3: Adding Lights

So now you need to cut out little fake lights to go over the LEDs you'll be sewing on. I copied the colour pattern attached in images (Picture 3). This is the same colour scheme as what was on the show and that is what I was going for. However you could also just do Christmas colours, Halloween colours or just your favourite colours. It is your sweater, you do you. I also cut a bunch of excess lights cause I thought I'd add them on the gaps between letters. I ended up not liking the way this looks so I didn't affix them.

I would suggest cutting our one light, out of the coloured dividers, and deciding which side of the light you like the shape of most then create a second light using that half as template for both sides. So cut out one half. Flip the template light, align it and cut it out. Then use that as the new template. This should create a fairly symmetrical light. Then using a pin or needle create 3 holes at the base of the light (evenly spaced). These will be used later to sew on the light. You may also want 1 or 2 in tip of light if you want to sew that down too I only sewed down ones that didn't quite face the way I liked.

Note: Do not sew anything down until after the LEDs are sewn into place.

Step 4: Light It UP

Now comes the hard part, or more accurately the tediously long part. You need to sew in the LEDs and attach them to the Arduino with conductive thread. Start by creating a loose circuit diagram. I've attached my extremely rough version. Note the negative ("-") slot much touch the negative side of each LED. You don't have to have 1 thread do this but you can (I did).

Before you begin sewing, test the board, this was a mistake I made. I had sewn all the negatives and first 5 positives into place before I realised my board wasn't working. Fortunately, it was a driver issue (reverted to 1.16.10 and my board (along with others not from this project) started working).

When you are ready to start sewing, sew the negative line(s) into place first and affix the LEDs in place. Make sure you wrap the thread around each port (hole) a few times and make it tight. then tie it at each light. I personally tied in yarn and hole, then did a triple loop through the port then another through port and yarn and tied a knot (tight). You NEVER want that connection loose or your lights may not work.

When tying the positives I did closest to furthest but you can do it however you want, just make sure you leave space for threads not to touch each other. My final versioned varied a bit from my diagram but that's there more as a reference. It's in picture three above.


  • Make 100% sure when you sew an LED to the circuit the positive ("+") and negative ("-") sides, which are marked on Arduino LEDs are connected to right thread.
  • Don't cross the streams! No thread should touch any other thread. If you have to go over another thread I suggest (as I did) putting a layer of fabric down (sew it on with thread same colour as shirt) then put another piece of fabric on that and sew the crossover thread into that
  • Don't let the conductive thread ruin the front of your shirt. Sew into the back of the yarn. It should only come through when you knot the LEDs into place.
  • Before sewing anything test the arduino (there are instructions how to do that on their site. The "Blink" function on their site should do the trick. Then test every 5 LEDs sewn in. You'll need to update blink to be an array of ports (corresponding to the lights tested). The number of the ports is printed on the board. You may want to avoid using 13 as that one is actually on the board.
  • If thread gets snagged and you cannot get it untangled or if it breaks (probably due to the snag) cut the thread before the snag pull ti out of last few stitches and then tie it with a triple not and cut of excess. then apply fabric glue to it later.

Step 5: Program It

First I would use the Blink program from the previous step to test ALL the lights. So you'll need to change "light" to be an array and add all the ports you used.

Here is the program I used:

int light[] = {5,6,7,8,9, 10,11,12,13,A0,A1,A2,A3,A4,2,3}; // this is the list of ports
char letters[] = "yutsronmlihgedca"; // the order of these letters match th eports order
int numlights = 0;
int outTime = 300;
int onTime = 500;
int waitbetween = 1500;
char myStrings[] = {"run right here should i stay or should i go stranger things"};

void setup() {
// put your setup code here, to run once:
numlights = sizeof(light)
for (int x = 0; x < numlights; x++) {
// set each LED pin as an output
pinMode(light[x], OUTPUT);

void loop() {
// put your main code here, to run repeatedly:
for (int x = 0; x < sizeof(myStrings); x++) {
int l = getLetter(myStrings[x]);
if (l != 0) {
digitalWrite(l, HIGH);
digitalWrite(l, LOW);
      } else {

int getLetter(char letter) {
int i = 0;
if (letter == 'a' || letter == 'c' || letter == 'd' || letter == 'e' || letter == 'g' || letter == 'h' || letter == 'i' || letter == 'l' || letter == 'm' || letter == 'n' || letter == 'o' || letter == 'r' || letter == 's' || letter == 't' || letter == 'u' || letter == 'y') {
for (i = 0; i < numlights; i++) {
if (letters[i] == letter) {
return light[i];
} else {
return 0;
return 0;

Step 6: Add the Light Cut Outs.

Sew the lights into place over the LEDs. Make sure they are about in the centre. Once they are all sewn and you are happy with their placement lay it flat (may want to put that cardboard between layers again). Then create a black base to each light that attaches to the "wire" with the fabric paint, they should cover over the thread if you did the wholes near the lights. See the close up in picture 2 above. Then leave it to dry (I suggest 12 hrs as this will be thicker than normal).

After it dries turn it inside out and apply a VERY small amount of glue to each knot so it doesn't come undone. Then let dry for 2 hours.

Step 7: Wear It

Reaching through the base of the sweater put your left arm into the left hand sleeve, then do the same for the right hand and right sleeve. Then pulling on the hole at top of the sweater from both sides push your head through the base to the hole at top. Then pull the base of sweater down. I can't believe I made you read a whole paragraph on how to put on a sweater.

Hope this worked for you. Message me with questions. I like answering stuff.



  • Woodworking Contest

    Woodworking Contest
  • Casting Contest

    Casting Contest
  • Clocks Contest

    Clocks Contest

We have a be nice policy.
Please be positive and constructive.




What did you use as the power source?

OH MY GOSH, I need to make this for a very special announcement... what if I have no background in this programming bit? I'm REALLY good at following directions if anyone has any suggestions...

3 replies

I've given you the program so you need to know zero about programming. You just need to be able to copy and paste.

But as far as programming my particular message? That's why I was asking. It shouldn't be hard to figure out, huh?


I set the message using the line in step 5

char myStrings[] = {"run right here should i stay or should i go stranger things"};

you have to make sure the ports match up otherwise.

so I used ports

int light[] = {5,6,7,8,9, 10,11,12,13,A0,A1,A2,A3,A4,2,3}; // this is the list of

that match up to letters below.

portschar letters[] = "yutsronmlihgedca";

Would these lights work also? I like that they're multi-colored and could reduce the plastic bulb step.

1 reply

Not really. They aren't sew-able. There are cheaper lights than one I used but they have to work with conductive thread.

Hello! This looks amazing and I think I am brave enough to make this happen. But, one question, through which mechanism do I program the lights?

1 reply

I'm not sure what you mean. The arduino is what takes in the code. I programed on a PC.

This looks so cool, I'm going to try to get this made for my Halloween party. I'd like to extend it so I can set the message via my phone. Any idea if that's super complicated to add?

1 reply

you might be able to do it with bluetooth rather than text message but you'd need a program that would send out a text string and a component that would attach to read bluetooth

This made me squeal like a fangirl. I love that it spells out "RUN". This was a great tutorial. :) I'll definitely have to make this!

1 reply

thanks! I made it spell out a bunch of things. Including "C DOS RUN" and "RUN DMC". My version allows you to also spell out "RIGHT HERE" and "SHOULD I STAY OR SHOULD I GO"