top of page

NeoPixel T-Shirt Blog

Credits

Team Members & Responsibilities

  • Sofia Ozambela created the diagrams and schematics of the T-shirt, sewed and designed the T-shirt enclosure, coded three designs to display on the LED grid, and made the second draft of the storyboards. 

  • Mallory Benna took charge of programming the Arduino, designed 3 images to be displayed on the NeoPixel grid, and programmed the remote to play the designs. Mallory's Blog Link

  • Katherine Monsef wrote the elevator pitch and the presentation, created three designs to display on the shirt, produced the first draft for the storyboards, and edited the video. Katherine's Blog Link

Elevator Pitch (by Katherine Monsef):

Sometimes, people have cluttered closets or limited closet space but still want a variety of interesting clothing. Other times, people have costumes or outfits where they want to easily be able to change their appearance. Our project is a fun, interactive shirt where the user can adjust LED lights sewn into the shirt with a remote controller. We will connect a NeoPixel panel of LEDs to our Arduino. The NeoPixel panel provides us with a succinct collection of LEDs that are very manageable and connect to one Arduino pin. We will secure the wires to the Arduino with hot glue. Finally, we will program our Arduino to control the function of our LEDs through the buttons on a remote. The remote controls the flashing of the LEDs to change patterns. The user can choose to flash particular pattern and turn them on and off with specific remote buttons. To conceal our NeoPixel, breadboard, and wires, we used tee shirt fabric and made a pouch which encloses the board. Ultimately, by wearing this shirt, the user can express themself through their clothing with a unique, changeable, and interactive experience.

Presentation Link (by Katherine Monsef)

Individual Summary​

My primary contribution to this project was creating the enclosure. I was very interested in this aspect of the project, as I have a background in sewing and fashion. My team allowed me to take some creative liberty with the design because I was the most acquainted with the limitations of creating a wearable device. This process involved a lot of testing and prototyping. Each week when our group got together, I'd find things to improve, and ways to adjust the design. I also contributed three of the 9 LED designs / programs available on our shirt, and made one of the animated designs, which required two images (the blinking Christmas tree). Using a Wacom drawing tablet, I made all of the schematics, diagrams, and mockups. I also digitized Katherine's design for the storyboard. As for documentation, I contributed many photos of our process despite not having the best camera, and I had the pleasure of starring in our demo video! Finally, I helped create the concept behind our final project. During our group brainstorming session, Mallory and Katherine described their vision for an LED t-shirt. I had the idea that this shirt would be perfect for holidays and one-off events, making it a versatile, go-to item. My group mates provided me with a few elements they wanted the design to include, and I translated these ideas into physical 2D and 3D designs (drawings and the t-shirt itself). 

Project Summary by Sofia Ozambela

Our group members came together to build this project because of our shared interest in fashion and wearable devices. While many wearables are health and fitness oriented, our team was more interested in the fun, creative side. We began thinking about the versatility of these devices and their ability to change form with the push of a button. From here, we came up with a programmable LED T-shirt. This T-shirt provides individuals the ability to express themselves in unique ways, and to change their appearance instantly to suit any mood or occasion. This idea helped us define the problem we wanted to solve and inspired our LED designs. As college students, we clutter our closets with a million t-shirts and costumes purchased for specific events and holidays, many we will never wear again. In creating a single shirt that can satisfy every situation, users do not have to waste time, money, or closet space. To exhibit the versatility of our product, we each created a set of themed designs, including holidays, CU spirit, and emojis. Since we are all wearing masks due to the COVID pandemic, preventing us from seeing each other’s faces and thus limiting the quality of our social interactions, we were especially interested in the concept of faces / emojis to display expressions. 

Originally, we planned to compose our wearable out of Individual LEDS in the shape of a grid, but it was recommended that we research the NeoPixel LED board during the first presentation. We took this advice into consideration and found a very affordable version on Amazon. At first, we were hesitant to use the NeoPixel because we didn’t know how to program it, and our previous experience was only with individual LEDs. We later realized that the NeoPixel was a splendid choice, and actually was much easier to program, allowing us to create more complex designs than formerly planned. We each intended to make three still designs, making 9 looks. However, we found we could do more, so we animated a few of our designs (the Christmas tree and emojis). We explored the possibility of programming GIFs using a processing library recommended by other classmates, but we didn’t end up doing this because we did not have the type of Arduino it required and we had already based our design on the Arduino Uno. 

Our enclosure includes a pocket tailored to the NeoPixel grid in the center of the T-shirt, an external pocket to hold the remote, and an internal pocket to contain the Arduino and Breadboard. We discreetly placed the NeoPixel’s wires through a reinforced hole within the central pocket, and connected them to the Arduino components. The T-shirt includes 9 patterns, which you can change by pressing the numbers on the remote while pointing it at the Arduino pocket (this contains the remote receiver). The remote and Arduino pockets are sewn onto opposite sides of the bottom of the T-shirt to disperse weight, and to create tension in the fabric. This tension ensures that the T-shirt lays flat on the chest, allowing the LED patterns to shine clearly through the material. We planned to cover the cables with fabric, but we were concerned that the fabric might cause the connections to break apart. After trying on the T-shirt ourselves, we concluded that the design was comfortable as is. 

We divided our group responsibilities based on our strengths and interests. Mallory was previously an LA for computational foundations and wanted to be in charge of programming and wiring for the Arduino. Katherine was most experienced with design and artistic elements, so she wanted to focus on the product design and related materials. I am most experienced with sewing and drawing on a tablet, so I took charge of the enclosure and schematics / mockups. Upon completing our project, we were all very satisfied with the final product and with our cooperation as a team. Both the t-shirt itself and the designs looked clean and professional.

Diagram

tshirt1.jpg

Image by Sofia

Demo Video

Recorded by Mallory & Katherine, Edited By Katherine, and featuring me (Sofia)

storyboard3.jpg

Storyboard

(by Katherine and Sofia)

How we made

the NeoPixel T-Shirt

(steps & Individual summary below)

We began our project by retrieving the following materials:

  • 2 Gildan Cotton T-Shirts

  • Velcro

  • NeoPixel LED grid

  • white thread

  • sewing needles

  • hem tape

  • sewing machine

  • jumper cables

  • Arduino board

  • mini breadboard

  • hot glue

  • 9v battery

  • box cutter

IMG_5307%20copy_edited.jpg

Finished T-Shirt

Image by Mallory

IMG_5231%20copy_edited.jpg

NeoPixel Grid

Image by Sofia

3.jpg
img_5023-copy.jpg

Mallory did some research on the NeoPixel Grid, and found a few valuable resources, including a YouTube video showing how to program the individual LEDs, a YouTube tutorial about the 8x8 Adafruit NeoPixel, a YouTube tutorial on programming the NeoPixel with excel sheets, and a general guide to the NeoPixel.

 

She followed the "8x8 connectivity test video," and created a basic circuit, where she connected the 5v, GND and DIN pins on the NeoPixel to 5v, GRD, and pin D8 on the Arduino. This proved that our NeoPixel was working, and showed us how to connect to the grid. Mallory then downloaded the Adafruit GFX, Adafruit NeoPixel and Adafruit NeoMatrix libraries to use pre-made graphics functions. Finally, she uploaded the "RGBWstrandtest " example file from the Adafruit NeoPixel Library to try out an LED design (first video). She also conducted a "Simple Function Test," in which she controlled individual pixels (last video). Her documentation of these tests is shown below, and a more detailed description can be found in her Blog. 

NeoPixel / Arduino Wiring

NeoPixel Wiring

NeoPixel Test (images and video by Mallory)

Step 1) connectivity test & wiring

1.jpg

Arduino Wiring

tshirt3.jpg

Initial Schematic

Matrix Test

Pixel Test

Image by Sofia

Video by Mallory

Video by Mallory

Image by Mallory

Image by Mallory

Image by Mallory

Step 2) Remote connectivity

Originally, we planned on changing the T-Shirt Designs using a joystick, but we decided that the remote would be a better option after getting some helpful feedback during class critique. Instead of having to scroll between images, the remote allows the user to select any one of the 9 designs with the numbers, and to turn it on/off with the power button. The remote is also thin, making it very discrete when inside the enclosure.

Mallory introduced the IR remote with the help of Arduino Documentation.

With this documentation, she was able to give every button its own tag, providing each with specific data. She connected the IR receiver to 5v, GND, and D12 as shown below.

IMG_5231%20copy_edited.jpg

Image by Mallory

20210421_173402_edited.jpg

Image by Sofia

Remote Testing

Video by Mallory

Remote Connectivity Established

Video by Mallory

Revised Schematic W/ Remote 

schematic final.jpg

Image by Sofia

Step 3) Programming designs

NeoPixel Template

NeoPixel Color Coding 

sheet.PNG
code.PNG
code2.PNG

Revised NeoPixel Template

We created our NeoPixel designs by formatting each pixel in an excel sheet, and translating the position of each pixel and its color into code. This idea and the original excel template came from a video mallory found on YouTubeI began programming my images using this method, but as a result of reference errors and issues with concatenated values, I ended up having to re-create my first two designs in a new template that Mallory created (top center image). In the new version of the template, our designs were created by coding each pixel by hand.

 

I began with a clover image to represent Saint Patrick's day, filling in the cells in the excel sheet with my design, and manually translating these cells into code. This process was quite meticulous, as I also had to manually enter the color of each pixel. For example, each of the 256 pixels were programmed with the line of code "neoPix.setPixelColor(93, 55, 200, 70);". This code selects the Pixel by its number (93 in this case), and provides it with an R G B value (55, 200, 70). To organize the code for my color coded pixels, I developed a system (shown in the top right image) where I filled in the adjacent row of cells with their respective colors. I organized the pixels by color and order by to assist Mallory when she was compiling all of our code into a single file. This way, if the code didn't translate perfectly onto the NeoPixel board, she could quickly identify the location of the problem. For example, the teeth on the pumpkin didn't show up properly, so she located the individual pixels in my code, and adjusted the shape of the mouth accordingly. Mallory then copied all of our code from the excel sheets, pasted it into her original code, and uploaded it to the Arduino.

My Holiday Themed Designs

Katherine's Animated Emoji Designs

Mallorys CU Buff Spirit Designs

Images by Sofia

Images by Sofia

After uploading our code, we decided to make a few of our designs animated. The animated designs include my blinking Christmas tree, and Katherine's emoji designs. To make the animations, we created duplicates of the original images and made slight adjustments to each image. These images were then looped in our code, giving the illusion of a moving image.

Step 4) Finalizing code

When we all finished our designs, Mallory compiled all of our code into her final program, where each image is connected to a number on the remote. After testing the still images with the remote, Mallory also added the animated versions of our designs to the code, and programmed them to play for a certain amount of time using a loop. You can find more detail on this in her blog.

Step 5) Sewing the enclosure

I used the NeoPixel's measurements to cut a piece of fabric from one of the T-Shirts to make a pocket for the LED display. The NeoPixel measures 6.3 by 6.3 inches, so I cut a 7.5 by 7.5 inch piece, allowing me to fold in the edges and to include about .5 inches of seam allowance. I sewed a hem on the top side of the square to create a clean edge for the top of the pocket. I then used half an inch of hem tape to keep the remaining raw edges folded down. 

20210504_200408_edited.jpg
20210504_200534_edited.jpg

Images by Sofia

Next, I measured the width and length of the second T-shirt (the one I didn't cut up) and pinned the fabric square to the center. I measured again to make sure the pocket was placed in the desired location and sewed the sides and bottom edge to the T-shirt with a sewing machine. To do this, I looped the backside of the shirt underneath the arm of the machine to make sure I wasn't sewing the pocket through both layers of the shirt.  

20210412_220134.jpg
20210412_220105.jpg

Images by Sofia

I then cut two thin pieces of Velcro to fasten the top of the pocket, putting one on the pocket and one on the shirt. This secured the NeoPixel and made the fabric taut, allowing the LEDS to easily shine through. 

Images by Mallory

After the primary pocket was done, I started measuring and cutting pockets for the Arduino / Breadboard and the remote. I decided that the Arduino and the breadboard would best be situated together to minimize the amount of cables and clutter. I also suggested that the team opt for the mini breadboard to conserve space. I placed these two elements on the fabric from the scrap t-shirt, and marked the edges, leaving room for the hem and seam allowance. Unfortunately, my sewing machine was having some problems with its alignment, so the rest of the sewing was done by hand. After cutting the Arduino / breadboard pocket, I folded the edges about 1/4" in, and began sewing in a loose hem for a cleaner look. Then, using a much tighter straight stitch, I sewed this pocket to the inside corner of the T-shirt. I made sure to leave the top open to insert the hardware, and placed a small piece of velcro above the breadboard to keep both pieces secure, while allowing space for cables to come out of the pocket.

Images by Sofia

I repeated this process for the remote pocket, but instead of sewing the pocket to the shirt after hemming the top, I decided to affix it with Velcro along the sides and bottom edge. This way, left or right-handed users can move the remote pocket to their preferred location. I did this by cutting thin strips of velcro, sticking the rough side to the shirt, and the soft side to the pocket. 

I sewed a long, thin tube to contain the cables from the Arduino, but we didn't ultimately use it because we thought the tension in the fabric might rip out the cables from the Arduino.

20210426_220216.jpg

The next day, our group got together to test the enclosure and to make final adjustments. We inserted the NeoPixel board into the central pocket to decide which direction the cables should come through the back. I marked a spot on the fabric, cut a small hole with the box cutter, and hand-sewed the edge with a whipstitch to protect / reinforce the hole. I inserted the NeoPixel again, and ran the NeoPixel's cables through the hole. Then we used electrical tape to secure any wires, and hot glued the cables to the Arduino and breadboard. This made the connections much more durable. Lastly, we put the breadboard and Arduino into the internal pocket, and pinched the Velcro closed. To prevent the sharp wires on the Arduino from poking through the shirt, we lined the bottom of it with soft Velcro. We also used Velcro to adhere the 9v battery to the inside of the shirt. We chose to do this to help distribute weight in the shirt so it wouldn't look too bumpy. 

Images by Sofia

Image by Sofia

Images by Sofia & Mallory

Step 6) Finished product!

Timelapse Demo

Video by Mallory

Images by Mallory & Katherine

bottom of page