Introduction: Fermentation Quilt

This project was produced during an artist residency with Loomia in 2020.

Fermentation Quilt is a cloth equipped with soft heaters along with thoughtful textile structures that offers a user the chance to think about their personal heritage and cultural context while participating in a daily ritual of making bread, yogurt, or other fermented foods.

Inspired by the traditional Bulgarian yogurt Petar’s grandmother Катя Kаишева (and many great grandmothers before her) made using hand-knit scarves, Fermentation Quilt is both a futuristic object and a mirror for personal narrative and cultural history.

In the wake of pivotal, current movements like Black Lives Matter and Environmental Sustainability when we are all asking, “how can I be a more thoughtful neighbor and consumer?”, this project weaves together the practical application of Loomia e-textiles with a framework for actively incorporating reflection into our everyday lives. We are inspired by artists and thinkers like Ashley Jane Lewis, Lauren Fournier, Shaina Agbayani, Robin Zabiegalski, and Ursula K. LeGuin along with social movements like the American Suffragettes and others.

Additional Note: If you’re curious to learn more about sewing, soldering, electrical circuitry, coding, quilting, e-textiles, or fermentation, we recommend you consult the other incredible resources available in those disciplines online or elsewhere. We will not cover the very basics in this tutorial and instead focus on the steps needed to make this object.

“Fermentation Quilt” is a collaboration between Victoria Manganiello & Petar Sapundjiev. Victoria Manganiello is an artist and educator working with textiles, technology, performance, and social practice, based in Brooklyn, NY (; @victoriamanganiello). Petar Sapundjiev is an engineer and artist working with electronics and organic materials as expressive media, based in Sofia, Bulgaria. (@petarsapundjiev)



- Iron (with a steamer)

- Sewing Machine

- Scissors

- Seam Ripper

- Sewing Pins

- Sewing Thread

- Hand Sewing Needle

- Ironable Interfacing

- Fabric (your choice)

- Sewable velcro

- Copper conductive thread


- Soldering Iron

- Wire cutters

- Tweezers

- Solder

- Loomia heaters

- LilyPad USB board


- TMP36 Temperature sensor

- Thin (approx 30 gauge) isolated wire

- Heatshrink

- DC Power plug, female

- 5VDC power adapter (min. 3 Amps)


- Whole milk

- Glass Jar

- Stovetop

- Mixing spoon

- Small bowl

- Saucepan

Step 1: Prepare Your Fabric

For our prototype, we decided to make a quilted material using fabric scraps from other projects. You can use any fabric you like however we recommend that you use a woven fabric (as opposed to a knit fabric) so that it doesn’t stretch during sewing or use. Make sure that you have enough of it for the entire project.

Step 2: Ironable Interfacing

Ironable interfacing is amazing! We recommend the “HeatnBond” brand for this project.

Use the iron with full steam to apply your fabric to the interfacing. Make sure you have everything oriented with the rough side of the interfacing facing the “wrong” side of your fabric.

Step 3: Sewing Pattern

Our pattern is contained in the documents below. We have included PDFs of the entire pattern which is ready to print in a series of standard 8.5 x 11 in. paper printer. Our pattern is designed for a wide mouth Ball Jar 4 pint (64 oz). You can adjust this pattern for whatever jar you’d like to use to make your yogurt.

Cut the pattern from the fabric (with the interfacing already adhered); Make sure that you are cutting two pieces for every pattern piece; One set for the exterior and one set for the interior.

(if this feels unclear to you, check out internet resources for basic pattern sewing).

Step 4: Sewing the Pattern

You now have 6 pieces; a body with front and back; a top with front and back; and a bottom with front and back. They are all insulated with the interfacing. Sew the pairs together with a zig-zag stitch at the edge. We had fun using contrasting thread colors.

When sewing the top and bottom to the body, align the tabs so that the top/bottom flap sits on the outside of the body flap. Again, use a zig-zag stitch to connect them. Or another decorative stitch and colored thread: your choice.

Step 5: Velcro

We used velcro to close the quilt because it gives a bit of flexibility if you’re using different jars; You can use another connection method if you’d like to. Make sure that you’re sewing the velcro in the correct locations. Before you sew, first fit the incomplete quilt around your jar to ensure you’re applying the velcro to the correct locations. (Note, you can add the velcro to the pattern pieces before assembling them; we decided to do it afterwards).

Step 6: Schematic & Tools

This is your schematic and these are the tools you will need to realize it; The schematic shows photos of the components we used. When we are working on the schematic, consider the following notes:

Note: The DC power connector should be either (a) soldered to the battery connector pads on the LilyPad or (b) connected using the proper connector that fits into the battery connector on the LilyPad.

Note: In order to create the optimal alignment for sewing thread, we decided to use a GND pad with the USB connector when connecting/soldering the temperature sensor to the LilyPad (see above photo). For the same reason, we used the A3 I/O pin of the LilyPad as 3.3 VDC power supply for the temperature sensor. In order to do that, in our code, this pin is set as a digital output and we always keep it in HIGH state.

Note: In order to control the PWM switch you need Signal and Ground (GND). Signal (sourced by digital output 10 on the LilyPad) will go to PWM "in" but as you can see in the schematic, we omitted the control GND because it is only duplicating the negative (-in).

Step 7: Heaters

Mark the heaters in position; They should sit in the middle of the body of the quilt. See photo for correct orientation.

Sew heaters in place; The Loomia heater has an adhesive backing but we decided not to use it in order to allow our heater a bit of flexibility since the shape of this quilt asks the heater to roll and unroll. We used a sewing machine to attach the heater to the fabric; Make sure you stay within an ⅛ in. from the edge of the heater to avoid puncturing the electronics inside. We also sewed the soldering pads down with a bit of hand sewing to keep it in place (see photo).

Step 8: Conductive Thread

See the above schematic. For now, you’re just bringing the conductive thread to the location of the component it connects to. We will install the components and solder everything later.

Using a “couching” sewing machine-foot on the sewing machine, sew conductive thread connecting the location of the temperature sensor to the top of the quilt. Halfway through, we switched surfaces. See photo; We took a hand sewing needle to bring the conductive thread out to the back of the quilt and then finished sewing it again with the couching foot on to the front of the quilt. Also note, that we approached the hinge of the flap (top) at an angle instead of going perpendicular to it. This will protect your conductive thread during the eventual movement at the hinge.

Continue using the couching sewing machine foot to sew conductive thread from the heaters to the top of the quilt. Again, note that we switched surfaces and sewed with an angle on the hinge of the flap (top).

Step 9: Temperature Sensor

Preparing the Sensor: Modify the sensor by soldering approximately 2 inches of 30 gauge wire to each of the three pins, isolating the conductive parts with 2mm heat shrink. (See photos above).

Next, sew the temperature sensor in place by hand.

This is going to live behind one of the heaters. We picked the left heater, the one closer to the top of the quilt. Using your seam ripper, open a sewn spot on the edge of the heater to insert the temperature sensor about 1 in. We have to do it in this order because we can’t sew over the sensor with the sewing machine. We used a bit of thread and a hand-sewing needle to fix the sensor in place.

It is very important to ensure that you orient the sensor so that the supply pin faces the close edge of the quilt. In other words, the orientation of the pins must correspond to the orientation of the conductive thread connected to the LilyPad. You should consult the datasheet of the temperature sensor to identify the pins.

Leave the ends out for now; we will cut and solder them later.

Step 10: PWM Switch

Consult the schematics above and sew the PWM switch in place. Pay close attention to the orientation. You can use a drill to make a hole with which to sew it down more easily.

In the attached photo, you’ll notice that we use a bit of scrap fabric to insulate the conductive thread from short-circuiting. You can sew these patches by hand or machine.

Sew the DC power connector to the top of the quilt by hand sewing it in place. Make sure the connection port is facing out.

Note: Sewing something rigid (like an electrical board like a PWM) onto something flexible (like fabric) means that the sewing connections will dictate the movement available to the object. Make sure that you sew everything down as tightly and accurately as possible to ensure stability for the circuit.

Note: Make sure that you’re using non-conductive thread to sew the board to the fabric. The conductive thread is only used for making connections between the boards.

Step 11: Upload Code to LilyPad

We used Arduino IDE to create a sketch and uploaded it to the LilyPad. It controls the processes in the Fermentation Quilt. Here is the sketch.

click "view rawFermentation_Quilt.ino hosted with ❤ by GitHub" below to view code in correct formatting.


This code is intended for the project "Fermentation Quilt"
by Victoria Manganiello & Petar Sapundjiev.
Written: Sep 15 2020.
by Petar Sapundjiev.
For any additional information regarding the project you can contact us on:
#defineTMP36_VCC A3 // the PWM pin the LED is attached to
#defineTMP_TRESH45// 45 degrees Celsius is the FERMENTING TEMPERATURE the regulator will maintan
#defineTMP_HYST1// 1 degree Celsius is the HYSTERESYS for turning ON and OFF the heaters
#defineFERM_PERIOD28800000// defines the period after which the regulator will stop the heating process. 28 800 000 is the number of milliseconds in 8 hours.
int heater = 10; // the PWM pin the LOOMIA heatrs are attached to
int led_r = 13; // the PWM pin the LED is attached to
int brightness = 30; // how bright the LED is
int fade_amount = 1; // how many points to fade the LED by
int glow_period = 2000; // sets the number of "loop" periods for led glow increment
int tmp_sample_period = 5000; // sets the number of "loop" periods for taking one ADC sample period
int bright_tresh_low = 10; // defines lowest brightness during glow
int filt_avg_samples = 8; // defines number of averaged sample in filter
float filt_mean = 0;
float filt_diff = 0;
voidsetup() {
pinMode(led_r, OUTPUT); // declare pin 9 to be an output
pinMode(heater, OUTPUT); // declare pin 10 to be an output
pinMode(TMP36_VCC, OUTPUT); // declare pin 11 to be an output
pinMode( A2, INPUT ); // sets A1 as input
digitalWrite( TMP36_VCC, HIGH ); //sets pin A3 HIGH. The pin is used for TMP36 power supply
voidloop() {
int adc_res_1 = 0;
float temp_1 = 0;
int period_A_counter = 0; // counts number of "loop" periods for led glow increment
int period_B_counter = 0; // counts number of "loop" periods for taking one temperature sample
do{ //****** loops for 8 hours*********
if( period_B_counter > tmp_sample_period ){
period_B_counter = 0;
adc_res_1 = analogRead( A2 );
temp_1 = adc_res_1 * 0.32307 - 50; // ADC value to temperature conversion. 10bit and 3.3V ADC V_ref
/*__________________ filter____________________________________*/
filt_diff = (float)temp_1 - filt_mean;
filt_mean += ( filt_diff / filt_avg_samples );
/*__________________ filter - end______________________________*/
/*__________________ temperature control_______________________*/
if( filt_mean > ( TMP_TRESH + TMP_HYST )){
digitalWrite( heater, LOW );
if( filt_mean < ( TMP_TRESH - TMP_HYST )){
digitalWrite( heater, HIGH );
/*__________________ temperature control - end__________________*/
if ( period_A_counter > glow_period ){
period_A_counter = 0;
analogWrite(led_r, brightness); // sets the brightness of LED on pin 13
brightness += fade_amount; // change the brightness for next time through the loop
if ( brightness < bright_tresh_low || brightness >= 255 ){ // reverse the direction of the fading at the ends of the fade
fade_amount = -fade_amount;
}while( millis() < FERM_PERIOD ); // 8 hours after the Fermentation Quilt has been torned ON, the process will stop
digitalWrite( heater, LOW ); // heaters will be turned OFF
analogWrite(led_r, 255); // LED on pin 13 will go solid red
} //end of "loop"

Step 12: Sewing the Lilypad

Next, we will add the LilyPad; Make sure you upload the code to the Lilypad before you sew it to the quilt. You can always change the code afterward but its easier to do it first, before it is sewn down. We’ve included the code for this project above.

You’ll sew the Lilypad down by hand. Using non-conductive thread you can use the used and unused ports to sew the board onto the fabric. Again, the more sewn connection points, the better to ensure that bending and damage are limited.

Next, you’ll attach the wires to the lilypad and other components (see schematic above). Cut the wires down to size so that you don't have too much extra. But careful not to cut them too short, though, so that when the textile is folded, stress and tension do not occur on the connection points.

Step 13: Soldering

Solder all of the connection points. Again, consult the schematic and photos for instructions.

Step 14: Test

Lay the quilt down flat with the heaters facing the tabletop. Disconnect the Lilypad from the computer, if it's not already. Plug in the power adapter and turn on the switch on the Lilypad. You should see a red LED on the Lilypad start to glow (see image above).

Leave the quilt for a few minutes; Place your hand to the back of the quilt (which is facing up) to verify that the heaters are warming and working. Once the temperature sensor measures 45*c, it will turn the heater off (indicated by the LED on the PWM switch). This temperature sensor will continue to monitor the temperature: When it drops below 45*c, the heater will turn back on. This process will continue for 8 hours (from plugging it in) which is the necessary time for fermentation.

Step 15: Preparing for Yogurt Fermentation

Prepare the materials and vessels for the yogurt. Your milk should be refrigerated before starting.

Step 16: Heating the Milk

Pour approximately 3 pints of milk (we are using this much milk because of the size of jar we are using; you should adjust for your own jar size) into a saucepan and put it on the stove on medium heat. When the milk gets near boiling and foam starts to rise, mix the milk with the spoon to settle the foam and then remove it from the heat. There will be no need to mix before that point.

We are heating the milk close to the boiling point in order to denature it's proteins so that they do not form curds.

Let the milk cool for about 10-15 minutes in the saucepan (this time can vary with the quantity of milk and type of saucepan). You have to check the milk with your finger to see if it's warm but not scalding (like Petar’s grandmother would have done). If you could theoretically keep your finger there without it burning (but still warm), you know it's the right temperature. This is the wisdom of our grandmothers. This is the most important part of the milk preparation.

The culture must be added when the milk is at the right fermenting temperature. Adding it too soon can kill the friendly bacteria.

Step 17: Adding the Culture

Take some of the warm milk from the saucepan and place it in a bowl with a tablespoon of store-bought yogurt (culture); For our jar, we used two tablespoons of yogurt and four tablespoons of milk; adjust for your jar accordingly. Mix it carefully. This process homogenizes the temperature and texture so that the culture is closer to the milk’s quality when added to the remaining milk. Add the culture mixture to the saucepan; Mix well; Then, pour everything into the jar. Close the jar and put it in the quilt. There is a red LED on the LilyPad; The LED starts to glow as soon as the quilt is connected to power indicating that the required temperature for fermentation is being maintained; The LED will go solid after 8 hours indicating that the fermentation is complete and the heaters have been turned off.

Step 18: Finishing the Yogurt

After 8 hours in the quilt have passed, taste the yogurt - aren’t you curious? It’s going to be slightly more sour and watery at this point. After a day in the fridge, it will become less sour and denser.

Every experience is slightly different, depending on the culture and its bacterial properties. We used Bulgarian yogurt. You can learn more about the history and science of Bulgarian Yogurt here.

Step 19: Conclusion

We hope you enjoy your Fermentation Quilt and your yogurt! Try playing around with the shape and the code for other vessels and other fermentations.

“Fermentation Quilt” is a collaboration between Victoria Manganiello & Petar Sapundjiev and took place during a residency with Loomia in 2020. Victoria Manganiello is an artist and educator working with textiles, technology, performance, and social practice, based in Brooklyn, NY (; @victoriamanganiello). Petar Sapundjiev is an engineer and artist working with electronics and organic materials as an expressive media, based in Sofia, Bulgaria (@petarsapundjiev).

Please feel free to get in touch with us. We will be curious to see your interpretation of our project! @petarsapundjiev ; @victoriamanganiello

You assume total responsibility and risk for your use of this instructable. We provide this information “as is” and do not make any express or implied warranties, representations or endorsements. We shall not be liable for any cost or damage arising either directly or indirectly from any use of this entire instructable. We do not warrant that the project will be error-free.
Mason Jar Speed Challenge

Participated in the
Mason Jar Speed Challenge