FINAL PROJECT



I want to give a special thanks to Ashley Cushon. Without your guidance bringing my idea into fruition would have been impossible.

HOW IT WORKS



The Fab Heated Vest, a smart garment with wearable technology that not only monitors the wearer's body temperature but also heats up when the user’s core body warmth drops below the level of comfort. To use the vest, the wearer simply inputs their optimal temperature into the supporting app. The thermistor hidden within the vest then monitors the user’s body warmth. If the thermistor’s thermal reading is 10 ° below the optimal temperature the heating pads hidden in the back of the vest will turn on and run at full capacity. When the wearer’s body warmth is within 5° of the optimal temperature the heating pads will begin to operate at 50% until the optimal temperature is achieved.



ELECTRONICS

I spent Weeks 8 , 10 , and 11 building and designing my circuits for my project. During week 8 & 10 I designed and built the heating temperature sensing aspect of my circuit. I am using two 10k NTC thermistors as my temperature sensors. One thermistor will be used to read the users “body” temperature and the other will be used to sense the outside temperature. Even though there are two temperature sensors the main sensor for the vest to function correctly will be the one sensing body temperature. In week 11 I added an RGB LED to my circuit. The RGB LED will react to the change in temperature. When the temperature drops the RGB LED will shine blue. When the temperature rises the LED will turn red and shine green when the body temperature is at the optimal temperature.

In addition to the circuit I built in the weeks mentioned above I added two 10”x5” heating pads as the heating elements for my vest. The heating pads operate with 5 volts at approximately 1 amp. I also added a MOSFET, because having two heating pads will draw more current than the Atmega328 pins can handle.

CIRCUIT DESIGN



The goal when designing my boards was to turn them into sewable electronics. Sewable electronics combine traditional craft processes (sewing, fashion design, and textile design) with electrical engineering, computer science, and hardware skills. I used the LilyPad system as inspiration for my design. Each LilyPad boards has a large conductive sew tab that allows easy sewing of conductive thread to create electrical connections between components. On top of this feature LilyPads are also designed to be round to prevent snagging fabric or cutting thread. In total I designed and made 3 boards

 Oyeduino
 2x Thermistor Boards

My mainboard, the Oyeduino gathers a great amount of inspiration from the Barduino . The Barduino is based on the Fabian Arduino project development by Shawn Wallace AS200. My main goal with the Oyeduino was to redesign the Barduino into a sewable board. In addition to changing the form I reduced the amount of pinouts to only the pins necessary for the circuit, added a RGB LED for feedback, added a 50V 30A mosfet, and installed sewable tabs. Redesigning the board in this manner took some time but necessary for the vision of my final project.



I also turned the thermistor board I made from week 10 into a sewable format for my final project.



PROGRAMMING

After stuffing my boards, it was time to prototype my circuit. The benefits of prototyping at this point is that I will avoid the frustration of sewing things together only to find out they don’t work the way I planned. Initially I conducted the test with my Barduino from week 10. I used a bread board and some wires to temporarily connect my Barduino components and then test the circuit and code. After seeing that the circuit worked correctly with the Barduino, I then tried out the circuit with my Oyeduino and was met with success. Now I have a basic framework for my project’s behavior and interaction.



//---  Temperature Variables -----

int InsideTemp= 0; //declare Inside thermistor on pin A1
int OutsideTemp = 1; //declare Outside thermistor on pin A0
float sensorValue; // determine data type for variable "sensorValue"
int OptimalTemp;  // determine data type for optimal temperature input

// --- RGB LED Variables ------

int bluePin = 5;  //set blue LED to pin 5
int greenPin = 6; //set green LED to pin 6
int redPin = 7 ; // set red LED to pin 7

// --- HEATING PAD Variables -----

int mosfet = 3; //set mosfet to pin 3



// the setup function runs once when you press reset or power the board
void setup() {
  
// initialize digital pin 13, 5, 6 , 7 as an output.
  pinMode(13, OUTPUT); // Make pin13  an output pin
  pinMode(bluePin,OUTPUT); //Make pin5 an output pin
  pinMode(greenPin, OUTPUT); //Make pin 6 an output
  pinMode(redPin, OUTPUT); // Make pin 7 an output
  pinMode(mosfet, OUTPUT); // make pin 3 an output
  
  Serial.begin(9600);

  Serial.println("Hello, what temperature would you like?"); // prompt the user to input Optimal temperature
  while (Serial.available() == 0){ // wait until the user inputs data and wait until he does
    }
 OptimalTemp = Serial.parseInt(); // wait for user to put in optimal temperature

  
  

}

// the loop function runs over and over again forever
void loop() {

double TempC1, TempC2 , TempF1 , TempF2; // Define the variables to show the  temperature data

TempC1 = (getT(OutsideTemp)) - 273.15; // To get Celcius degrees Temperature = T - 273.15 (Kelvin degrees)
TempF1 = TempC1 * (9.0/5.0) + 32; // Convert Celcius to Fahrenheit

TempC2 = (getT(InsideTemp)) -  273.15; 
TempF2 = TempC2 * (9.0/5.0) + 32;


Serial.print("Outside Temp: ");
Serial.print(TempF1);
Serial.print("    |    ");
Serial.print("Inside Temp: ");
Serial.print(TempF2);
Serial.print("   // ");
Serial.print(" Optimal Temp: ");
Serial.println(OptimalTemp);

if ( TempF2 > (OptimalTemp + 10)) { // if inside temperature is 10 degrees higher than the optimal temperature do this

  setColor(255,255,0); //if Fahrenheit is higher than 85 degrees turn RGB LED to red
  digitalWrite(mosfet, LOW); //turn heating pad off
}

if ( TempF2 < (OptimalTemp + 10)  & TempF2 > (OptimalTemp - 10)) // if inside temperature is between 10 degrees higher or lower than optimal temperature do this
{
  setColor(255,0,255); // turn RGB LED green
  digitalWrite(mosfet, LOW ); // turn heating pad off
}

if ( TempF2 < (OptimalTemp + 5)  & TempF2 > (OptimalTemp - 5)) // if inside temperature is between 5 degrees higher or lower than optimal temperature do this
{
  setColor(255,0,255); // turn RGB LED green
  analogWrite(mosfet, 127 ); // turn heating pad off
}

 if (TempF2 < OptimalTemp - 10 ) // if inside temperature is 10 degrees lower than inside temperature do this
 {
  setColor(0,255,255); // turn RGB LED blue
  digitalWrite(mosfet, HIGH); // turn heating pad on
}

delay (1000);

}


// ------ function to Convert analog reading from sensors to Temperature(T) -- //

float getT(int pin)
{
sensorValue = analogRead(pin); // Read and store the analgo input value coming from the temp sensor

double T;  // Define the variable to show the temperature data
double R = 1000/ (1023.0 / sensorValue - 1); // Steinhart - Hart /// Resistance = 10k ohm ///(2^10 = 1024)
double L = 1000 / R;  // L = R0/R // 10000/R = ReferenceResistance/NominalResistance = ResistanceInNominalTemperature25oC

  //T = 1.0/((1.0/(25.0 + 273.15)) + (log(R0/R))/3750))
  //T = 1.0/((1.0/(25.0 + 273.15)) + (log(L))/3750) * log(L))
  T = (0.0033540164 + 0.00026666666 * log(L));    // Steinhart-Hart 1/T=1/T0 + 1/B*ln(R0/R)
  T = 1/T;
 
return T; // Return value of T;
}



// ------ setColor function allows you to input 3 arguments that will set the brightness for the blue, red and green LEDS

void setColor(int blue, int green, int red)
{
  digitalWrite(redPin, red);
  digitalWrite(greenPin, green);
  digitalWrite(bluePin, blue);
}

GARMENT CREATION



This was my first time creating a garment from scratch. Up till this point my experience with designing clothes was in the nature of purchasing a garment from a third-party supplier and customizing it from that point on. I have always been interested in the behind the scenes of cutting and sewing together a garment from scratch, which is why I decided to challenge myself in this way for my final project. The learning curves were mountainous but at the end of the journey I am completely happy for the skills and insight gained.

PATTERN MAKING



This is where the difficulty level started rising for me. The first step to making any garment from scratch is making the patterns. A patter is a template from which the parts of a garment are traced onto a fabric before being cut out and assembled. There are a few methods to making patterns. I used the draping method because it was the quickest and easiest way to create patterns. Before starting I watched a few tutorials and read a bunch of articles on by different people. Once I felt caught up and well informed I was ready to start creating my sewing pattern. For this part of the process I asked a friend to help me because I wanted to use myself as the manikin to get a better fit for my final garment.

For draping, I used a piece of muslin (lightweight cotton cloth) that we had in the lab. The fabric will be draped only on the right side of me because I am planning on making the garment symmetrical. The first step I took was cutting out a rectangle out of the muslin. I made sure the rectangle was big enough to start well above the neckline and the well below the waistline. I then placed the edge of the muslin again the center of my body and pinned the paper at the center front neckline sown to the waistline. At this point I was able to start gather measurement of important dimensions. On the fabric I drew in my neckline, side seam, armhole, waist line, and shoulder line. I also cut out excess fabric as I go. The same process is done for the back. This time aligning the piece of muslin with wit the piece draped on the front.



The next step is taking of the front and back muslin and creating paper patterns from them. At this point I wanted to make sure my measurements and lines were really precise. Before transferring the pattern to paper, I measured the marks I made on the muslin and created quick sketches in my notebook and dimensions them. I then traced the muslin on the paper and added seam allowance to my pattern. (Seam allowance is the area between the edge and the stitching line on two (or more) pieces of material being stitched together. I then cut out the pattern from the paper once the tracing is done. Now I am ready to start creating my garment.



Before making the final garment, I made a sample garment to test the fit. Instead of using the muslin for this part, I used the cordura I planned to make my final garment out of. Using the cordura as a sample garment would eliminate any unpredictable differences between the muslin when it comes to fit and material properties. With the paper patterns, I cut out the back and front pieces out of the cordura. I then sewed them together to make my vest. The fit came out surprisingly well. Even though this was not the final garment, I am happy with the product I was able to create up to this point.



REFINING MY DESIGN

After some basic circuit prototyping and completion of my sample garment, I took some time to create a more refined diagram and circuit layout. This was an opportunity to plan my order of operation and catch any problems with my design (crossed conductive threads paths, wire channeling, placement, etc). Using Adobe Illustrator I created technical drawings or flats of my vest. Technical drawings are a black and white fashion technical drawing that shows a garments as it is if it were laid flat to display all the seams, topstitching , hardware, and any other design details. Since I am creating wearable tech, my technical drawings also include detail labeling of the boards and connections. This final sketch also served as a guideline if components get misplaced or moved during the building process.



Having a sample garment also helped during the refining process. Drawing directly on the sample garment with chalked I was able to fine tune circuit and features layouts. In example, originally I wanted to place the outside thermistor on the front left panel and connect it to the Oyeduino on the left but quickly realized that would create unnecessary connection problems. Sometimes having a live representation of an idea can help you see flaws in the layout.



PUTTING THINGS TOGETHER

At this point I have everything I need to start constructing the final vest. I developed an “Order of Operation” for the process of constructing the vest. Planning out the order of operations is very important because it will ultimately determine the outcome of how the vest comes out. Below I will describe the steps I took to construct the vest that is my final project.

ODER OF OPERATION



  1. Create the vest shell by cutting out the front and back patterns from the cordura

    Similar to the process used to construct sample garment I used the patterns created earlier to cut the pieces of cordura needed to construct the vest. Precision at this point is key. The pieces of cordura being cut will be used to construct the final garment, so I wanted things to be perfect from the begging in order to have a perfect finished product.

    I also made some changes to the back pattern. For aesthetics reasons I wanted the back of the vest to be constructed from three separate panels. To achieve this I had to cut the back pattern into thirds. When cutting the back pattern from the fabric I made sure to add extra seam allowance to the top and bottom of the three back panels.



  2. Sew together the three panels of the back together, then connected the back and front by sewing the shoulder seems to create the shell
  3. Create battery pocket pattern and construct battery pocket

    As the name eludes the battery pocket will be the housing for the mobile power source or battery that will power the electronics of the vest. The dimensions of the pocket are 4’ wide and about 6” length wise. To create the pocket I first had to develop the pattern. I envisioned the pocket being a flap pocket so that meant I had to create patterns for both the flap and the bottom of the pocket.

    After creating the patterns I then cut the pieces out of the fabric and constructed the pieces of the pockets that will be sewed onto the shell in later steps.

  4. Before sewing the battery pocket onto the shell I created a through hole (old style button hole or eyelet) at the same location as the battery pocket

    The through hole will allow the battery to connect to the electronics that is located on the inside of the vest. To create the through hole I used an old school button hole technique that uses extra fabric to reinforce the hole preventing any rips.

  5. Sew pocket and flap on top of the through hole



  6. Create front left pocket using the welt zipper technique

  7. Sew front zipper

  8. Sew side seams together

  9. Stitch one thermistor to the outside of the shell (make sure the leave thread dangling for later use)

    This was the first step that required me to use the conductive thread. Conductive thread can carry current the same way that wires can, which means it can be used to create a circuit. This allows the user to sew a circuit together, creating flexible circuits that require no soldering. For this vest I used stainless steel conductive thread.

    Before embarking on the journey of sewing my circuits to the shell, I read up on sewing techniques and conducted a few trial runs on scrap fabric. The most helpful article I read on E-sewing techniques was Sparkfun’s LilyPad Basics: E-Sewing tutorial . This tutorial is a great resource. Once I got the hang of sewing I then stitched the first thermistor to the outside of the shell. Using separate pieces of thread I stitched the conductive thread around the thermistor sew tabs and made sure not to cut the thread since I will be using the thread in later steps.



  10. Create Ventilation patch using Laser cutting

    One particularly exciting feature is the laser cut ventilation patch on the front right of the vest. The dual purpose patch covers the thermistor placed on the outside of the vest and at the same times allows ambient air to flow over the thermistor which limits the amount of hindrance from the patch.

    To create the ventilation patch I first had to figure out if laser cutting cordura is possible. Cordura fabrics are usually made of nylon and blended with cotton or other natural fabrics. Doing some research I found that laser processing of nylon can be performed with a micron l CO2 laser. Luckily for me in the lab we had two C02 laser cutters. For this ventilation patch I used the Epilog Mini Laser Cutter. After confirming laser processing the cordura is possible, the next step is figuring out the settings to cut the nylon to my liking. One of the main benefits of laser cutting the cordura instead of hand cutting was that laser processing the cordura prevents the fabric from fraying. Laser cutting of nylon with a C02 laser produces a clean edge with minimal melting along the cut path. This is great since the patch will be placed on the outside of the vest. Finding the correct settings took a few tries. I used Epilogs appendix with material settings as a buildings block. Shortly I was able to find the settings that worked perfectly for me:

    • Power (watt): 50
    • Speed (mm/s): 50
    • Frequency (hz): 1500


    With these settings I was able to get the finish I wanted. After finding the right settings I then created a quick pattern in Solidworks, exported the file as a DXF and laser cut the design on to the fabric.



  11. Stitch ventilation patch over outside thermistor

  12. Cut out patterns using lining fabric

    This is where I switched focus from the shell to the lining of the vest. Similar to the shell of the best I used the patterns developed during the drafting phase to cut out the pieces from the lining. There is slight different though. If you remember during the shell phase I cut the back pattern into three separate pieces and constructed my back from that. That will not be necessary for the back of the lining. All I need for the back is a one full piece. In order to achieve this I taped together the back pattern that I cut earlier in the construction phase together and used that to cut the back pattern from the lining. I also cut out two back patterns from the lining. The reason for this is that I plan to make an insulation layer (sandwich) on the back of the vest.

  13. Cut out Back pattern from InsulBrite. I made sure to cut the InsulBrite ½’ smaller or without seam allowance

  14. Sew the two heating pads onto one of the back linings pieces.

    Different methods can be used to secure the heating pads in place. For me I decided to sew the heating pads in place to make the assembly permanent and durable for multi-use.

    Quick Note: The lining I used was pretty soft when it comes to strength of the material. Sewing on soft fabric can cause problem with stability and quality of stich. In order to fix this I used a fabric that is called fusible or interfacing fabric. Using fusible is simply. All I had to do was iron the fusible onto the side of the fabric that I want to be hidden. Once the fusible is nicely fused the additional fabrics will increase the stability for the original desired fabric. I used fusible a few times through the construction this vest.



  15. Secure the wires by creating a wire channel on the same piece of lining with the heating pads

  16. Secure insulation layer by vertically quilting insulation layer to prevent InsulBrite and lining from moving.(Also make sure when constructing insulation layer that the heating pads are faced inward towards the InsulBrite)

  17. On the front right piece of lining use an iron to fuse the fusible with the lining. Make sure to the fusible is on the side that will be facing the shell

  18. Create through hole on the right front lining using the same technique from earlier steps. I made sure the through hole I created lined up with the through hole on the shell when everything is stitched together



  19. Sew side and shoulder seams of lining together



  20. Secure heating pad wires on the front right lining by creating a wire channel that directs wires to the Oyeduino

  21. Stitch Oyeduino in place with conductive thread



  22. Finish center zipper by sewing center front seam

  23. Flip the shell inside out and top stich zipper

  24. Combine lining and shell together by sewing neckline of both together at seam

  25. Finish neckline by binding neckline

  26. Sew lining and shell together at the left arm hole

  27. Bind left arm hole

  28. Stitch the inside thermistor onto front right liner piece

    This step is similar to step 9. The idea is to stitch the thermistor directly behind the thermistor stitched on the shell but this time I will be stitching the thread onto the liner. Since both thermistors use the same power source and ground pin, I used the thread that left dangling from step 9 to connect the ground and power sew tabs of the new thermistor and secure the thermistor in place. A new piece of conductive thread was used to connect and secure the pin input of the thermistor which will later be connected to pin A1 of the Oyeduino.



  29. Connect outside thermistor to pin A0 on the Oyeduino

  30. Connect Inside thermistor to pin A1 on the Oyeduino

  31. Connect GND and PWR to the Oyeduino to finish the connections



  32. Sew ling and shell together at the right armhole and bind armhole

  33. Hem bottom with draw string

  34. Connect GND and PWR wires from the heating pads to the Arduino by soldering them on to their designated locations

    I made sure to connect the heating pads connections directly to the Oyeduino instead of conductive thread. Based off my research this is the best practice since the current requirement for the heating pads can be hazardous if passed through conductive thread.

  35. Insulate conductive thread with fray glue

    Conductive thread acts like uninsulated wire, which makes it great for sewing components together, but once a project is finished, the movement of fabric can let some pieces of thread accidentally touch. When working with conductive thread, make sure to pay special attention to insulating any power and ground lines so that they don’t short out your battery. Insulating stitches, once a project is complete, adds protection from potential short circuits created by movement, folding, or contact with conductive surfaces, as well as adding an extra barrier during wear and tear or washing.


MOMENT OF TRUTH


I can’t lie the most nerve racking part of my final was testing to see if the electronics would work after I spent hours constructing the vest. If the electronics don’t work then my final would simply be a really well made vest. So before plugging my computer to my vest I made sure I double and tripled checked every connection, making sure there were no short circuits or spot connections. Once I was satisfied with my inspection, I connected the vest to my computer and vest works! I then opened Arduino and re-uploaded the sketch the Oyeduino to make sure things were working correctly. The Oyeduino successfully received the sketch. The vest works.


At the moment there are a few improvements that need to be done. Majority of the improvements revolve around the electronics and programming. Currently the way the programming works is when the vest is turned on, the user is prompt to input an optimal temperature. The user than inputs the temperature and the vest starts reading the wearers core body temperature then reacts accordingly. The problem with this is that the user can only input their optimal temperature through the Arduino right now. In the future I want there to be an accompanying app where the user can fully control the vest.

Overall I am extremely happy with the outcome of my final. This is the beginning of a vision I had for a few years and to see my ideas start to come into fruition is a great feelings. I plan to continue on this path. I am excited to see where it takes me