SHARE
a person wearing an Arduino-powered LED sweater in front of a Christmas tree
This sweater is LIT. Barry Abrams

People use ugly sweater parties as opportunities to get creative: Some may find tacky sweaters while rummaging through their parents’ closets and browsing in thrift shops; others may craft their own with felt and a hot glue gun. Coming up with a ridiculous sweater is part of the fun.

Still, you’ll find sweaters that are intentionally ugly. If you go to Amazon, you’ll find thousands of varieties, including meme-themed sweaters, and even one with Jesus breakdancing, for some reason. It makes dressing up easier, but it also takes a bit of the fun out of the occasion.

Last year, I wanted to create something unique, so I took an ordinary sweater and added a grid of lights programmed to make it look like it was snowing. It was a big hit.

The project is a great introduction to hobby electronics, and the process is simple—you’ll need only basic computer skills, and enough motor function to work a soldering iron and sew on a bunch of lights.

Stats

  • Time: 2-4 hours
  • Cost: $30-$50
  • Difficulty: medium

Materials

Tools

Instructions

1. Solder the battery pack to the Arduino. An Arduino is the programmable brain of an electronics project like this. Here, it runs the logic that turns the lights on and off. I used an Adafruit ItsyBitsy—a tiny Arduino variant that’s only 1.4 by 0.7 inches, so it’s more comfortable and less bulky to have under a sweater.

You won’t want to stay plugged into a power outlet the whole party, either, so you’ll have to use a battery that will connect directly to the Arduino. With 70 lights, you’ll get four to five hours of ugly sweater glamour out of a fresh 9-volt battery.

Solder the battery pack cable to the battery and ground spots on the Arduino. If you’ve never used a soldering iron before, here is a great tutorial.

2. Solder the three-pin plug to the Arduino. Three-pin plugs come in a set of two short cables—one with a female end, and another with a male end. Which one you use will depend on what type of end your light strip has. Choose the plug with an end opposite that of your lights: If they’re female, use the male plug, and vice versa. Solder the cables on the plug to the 5V, Pin 10, and ground spots. One of the three wires coming from the lights will have a red marking on it. That one is the 5V, the middle one should go to Pin 10, and the third one should go to ground.

an Arduino soldered to a battery pack and a plug connected to LED lights
When all the soldering is done, it should look like this. Barry Abrams

3. Connect the lights to the three-pin plug. To control each light individually, you’ll need to get a strip described as “digitally addressable”—Christmas lights won’t work.

I used two strings of lights for this project—an Adafruit NeoPixel 20-light strip, and a 50-light set from Amazon. I started with the former, then realized it wasn’t long enough to make a convincing matrix, so I ordered the 50-light string.

I’d recommend getting a single strand of 50 LED lights, but if you decide to get two sets, buying the same brand will make things easier for you. If you can’t, make sure your strands are compatible by checking that they both reference the microchip “WS2811”—a standard chip that works with the code we’ll use later. To connect them, simply plug one strand into the end of the other.

4. Program the Arduino. Once everything is soldered together, attach the Arduino to a computer with a USB cable. To program it, you’ll need to set up Arduino IDE, a software that allows you to write code and upload it to your device. If you’re an Arduino noob, fear not—the manufacturer has this official document for new users that will get you started.

5. Install FastLED. You’ll need this program for your code to run—it’s, a library that takes some of the nitty-gritty work out of coding each LED to light up manually. If you don’t know how, here’s a tutorial on installing libraries for Arduino.

6. Upload this code.

  • Tip: Once you’re done programming the Arduino, leave the lights on. It’ll make it easier to attach the strand to the sweater since you’ll be able to see the thread better.

7. Draw a grid on your sweater. You can use any knit sweater, but light-colored ones work best, as the LED light will bounce around more. A loose fit is key, too—it’ll prevent the string of lights from showing and it’ll be more comfortable to wear.

With your circuit ready and working, you’ll need to figure out how you’re going to actually display the lights. Turn the garment inside out and use a tape measure and a piece of chalk or a tailor’s pencil to chart out a grid of where your lights will go. Try to maintain 90-degree angles, but don’t worry—when worn, the sweater will not sit straight, so the grid doesn’t have to be perfect.

a person drawing a grid on a sweater with tailor's chalk
Creating a grid is important if you want to lights to display correctly. Barry Abrams

I calculated my grid spacing by measuring about 2 inches below the collar and at least 2 inches from the arms on either side. The distance from the bottom of the grid to the bottom of the garment can be variable. I had a space of about 12 by 18 inches available, so by leaving a margin of about 2 inches between each light, I could get away with a grid of 7 by 10 lights. That worked perfectly because I had 70.

  • Tip: If you want to use a different number of lights, you can calculate the area available on your own sweater and place the lights as you see fit. If you have any leftovers, you can easily cut the light strips with scissors to make an even grid.
  • Caution: The code in this story will work with a 7-by-10 grid of lights. If your grid is different, you’ll need to adjust the code for it to work well. More on that later.

8. Lay out the Iights over the grid. Do this before you sew anything onto your sweater just to make sure the LED string will correctly fit the pattern you drew. Start with the end of the string so the Arduino ends up at the bottom of the sweater. This will give you easy access to the battery pack and the on-off switch once the project is finished.

9. Sew the lights to the inside of the front of the sweater. Start at the top left corner of the inside-out sweater and work your way to the right in a serpentine pattern: When you get to the end of a row, go down to the next and work your way back to the left; when you get to the end of that one, go down again and head to the right.

a person sewing LED lights onto a sweater
You can’t just wrap the lights around your body under the sweater and expect them to look good. You’ve got to sew ’em on the sweater. Barry Abrams

Make sure you secure each light and add some stitches along the cable to keep it in place. I found that a double stitch every 2 inches over the length of the cable worked well. Sewing the lights will make the fabric pucker and look a bit weird, but don’t be disheartened—once the lights are on, people will notice them, not the fabric.

  • Tip: A serpentine pattern is the most efficient way to use the lights, and since the code takes this into account, it is necessary for it to work properly.
  • Tip: If you don’t want the thread to show on the outside of your sweater, make your stitches more superficial. Instead of poking your needle all the way through the knit, make sure you only sew through the first layer of the sweater. This will be more tedious than regular stitching, but it will look a lot cleaner and will also prevent the sweater from puckering.

9. Adjust the code to fit your grid. If your grid is not 7 by 10, you’ll need to adjust a few variables for the effect to really show. You’ll find these values at the top of the code, with comments specifying which is the height and which is the width of the grid. There are also comments linked to each important line of code that describe what’s happening, making it easier for you to tweak as needed.

Essentially, each “snowflake” will start at the top of the grid, and will move down one row every second until it appears to fall off your sweater. There are a couple of miscellaneous variables that account for things such as color and wind direction, making the pattern much more interesting.

  • Tip: If you’ve got some experience with Arduinos, feel free to experiment with the code. Other people have had luck displaying animated GIFs on an LED matrix, or hooking up sensors to have the display react to something. Here’s where you can get really creative if you know what you’re doing.

10. Wear it and light up the room. There you have it. You’ve made your own LED ugly sweater. I’d recommend wearing a shirt underneath, as the backs of the lights can be a bit scratchy and irritating. Since we’re using low voltage LEDs, the lights won’t get noticeably warm.

When putting the sweater on, be careful not to accidentally pull any cables. It’s unlikely the lights will break, but pulling the cables may rip the thread holding everything in place, or undo some of the soldering on the Arduino.

The end of the lights should be at the bottom of the garment, so you can put the battery pack and Arduino in your pocket.

If you have access to a 3D printer and want to get fancy, search Thingiverse for a simple Arduino case. The device is so low-voltage it won’t shock you if you don’t have one, but the wires may come loose and you might need to break out your soldering iron again. A case will protect your Arduino and ensure your sweater has the chance to light up the room for many holidays to come.