Skip to content

10. Open Source Hardware - From Fibers to Fabric

Research & Ideation

describe what you see in this image This week we worked in a group to make an incubator for the TextileLab. We took refrences from both Low cost and accurate incubator and the incubator the Amsterdam team at Waag did in 2018.

There is no incubator at the TextileLab in Iceland and therefor though it was sa great idea to make one this week since it is pretty essential when mgrowing bacteria, mycelium and other biomaterials. In Iceland we are never in danger to overheat but it gets really cold during wintertime so the incubator is a great input for the Lab and all students working within it.

References & Inspiration

we got the kniterate up! I was amizing to finally be able to put up the Kniterate which we at the Textile Center have waited for for over 2 years! When it finnaly came we figured out that we did not have a proper table to hold the weight of the machine so the table was assembled and machine lifted up the same day during this week. We had some external help for Blönduós townworkes. We can not wait to start playing with it and learning on the kniterate software.

I visited and Icelandic studio working with

describe what you see in this image

Photos from pinterest: Futurestudio, southern Adirondack Fiber festival and mocoloco

describe what you see in this image

Hella Jongerius / dezeen



bill of Materials

Qty Description Price Link Notes
1 Arduino UNO 24 € Arduino kit also includes lcd screen and cable
1 Humidity and temperature sensor 10.95 $ find alternative
1 Relay Module 5V 22.00 $
1 USB A to B cable for the Arduino 6.50 €
1 75W incandescent light bulb 2.83 $ Heating element can also be used
1 12V computer fan 16.99 $ we got our for free from an old computer
2 12V power supply 9.99 $ order online
1 Piezo buzzer 0.95 $ this or alternative
3 10k potentiometer 3.15 $ this or alternative
1 Small LCD screen 9.99 $ also comes with the arduino kit


First we looked at the refrences we were working from. We has already prepared some of the elements needed for the incubator since we knew how hard it can be to ship things or find things locally in such a short time. The insulating box we got from the local grocery store!

Incubator rator by Margrét, Alberte and Alice


  • 1 Vent
  • 2Outer box
  • 3Shelves


  • rivet for the vent
  • closing devices for door
  • 4 mm Plywood for outer box
  • 4mm Plexiglass for the shelves

This model 1 was obtained by..

The design 2 was created using..

Code for incubator

  SparkFun Si7021 Breakout Example 
  Joel Bartlett @ SparkFun Electronics
  Original Creation Date: May 18, 2015
  Updated May 4, 2016
  This sketch prints the temperature and humidity the Serial port.

  The library used in this example can be found here:

  Hardware Connections:
      HTU21D ------------- Photon
      (-) ------------------- GND
      (+) ------------------- 3.3V (VCC)
       CL ------------------- D1/SCL
       DA ------------------- D0/SDA

  Development environment specifics:
    IDE: Particle Dev
    Hardware Platform: SparkFun RedBoard
                       Arduino IDE 1.6.5

  This code is beerware; if you see me (or any other SparkFun
  employee) at the local, and you've found our code helpful,
  please buy us a round!
  Distributed as-is; no warranty is given.
#include "SparkFun_Si7021_Breakout_Library.h"
#include <Wire.h>
#include <LiquidCrystal.h>

float humidity = 0;
float tempf = 0;

int power = A3;
int GND = A2;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
const int RELAY_PIN = A0;  // the Arduino pin, which connects to the IN pin of relay

//Create Instance of HTU21D or SI7021 temp and humidity sensor and MPL3115A2 barrometric sensor
Weather sensor;

//void RELAY_PINOn(){
 //digitalWrite(RELAY_PIN, HIGH);
//void RELAY_PINOff(){
  //digitalWrite(RELAY_PIN, LOW);
void setup()
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");

    Serial.begin(9600);   // open serial over USB at 9600 baud

    pinMode(power, OUTPUT);
    pinMode(GND, OUTPUT);

    digitalWrite(power, HIGH);
    digitalWrite(GND, LOW);

    //Initialize the I2C sensors and ping them

void loop()
    //Get readings from all sensors
    if(tempf <= 74){ //=18°C
     digitalWrite(RELAY_PIN, LOW);
    else if(tempf > 74){ //23°C
     digitalWrite(RELAY_PIN, HIGH);

void getWeather()
  // Measure Relative Humidity from the HTU21D or Si7021
  humidity = sensor.getRH();

  // Measure Temperature from the HTU21D or Si7021
  tempf = sensor.getTempF();
  // Temperature is measured every time RH is requested.
  // It is faster, therefore, to read it from previous RH
  // measurement with getTemp() instead with readTemp()
void printInfo()
//This function prints the weather data out to the default Serial Port

  Serial.print((tempf - 32) * 5 / 9); //Temperature in Celsius
  Serial.print("C, "); 


  // set the cursor to column 0, line 0
  // (note: line 0 is the first row, since counting begins with 0):
  lcd.setCursor(0, 0);
  // print the number of temperature since reset:
  lcd.print((tempf - 32) * 5 / 9);
  lcd.print("C  "); //space to remove the d! "from hello world!"

  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of humidity since reset:

// constants won't change for fan
// const int RELAY_PIN = A0;  // the Arduino pin, which connects to the IN pin of relay

// the setup function runs once when you press reset or power the board
  // initialize digital pin A0 as an output.
  //pinMode(RELAY_PIN, OUTPUT);

// the loop function runs over and over again forever
  //digitalWrite(RELAY_PIN, HIGH); // turn on fan 5 seconds
  //digitalWrite(RELAY_PIN, LOW);  // turn off fan 5 seconds
//void setup()
  //pinMode(redLed, OUTPUT);
  //pinMode(greenLed, OUTPUT);
 // pinMode(RELAY_PIN, OUTPUT);
  //pinMode(buzzer, OUTPUT);
  //pinMode(power, INPUT);

//void loop(){
   // Temperature calculation
  //tempf = map(((analogRead(A3) - 20) * 3.04), 0, 1023, 18, 185 );
  //tempf = ((celsius * 9) / 5 + 32);

  //Serial.print(" C : ");
  //Serial.println(" F");

  //if( tempf<= 86){ //=30°C
  //  RELAY_PINOff();
    //Serial.println("green light on");
 // }
  //else if(tempf >= 88 && tempf <= 104){ //31°C and 40°C
   // RELAY_PINOff();
    //Serial.println("red light on");
 // }
 // else if(tempf > 104){ //40°C
//    RELAY_PINOn();

    //Serial.println("Red Light On | Fan on");
 // }
 // else{
//    Serial.println("Temperature is Normal");
//  }
 // delay(1000);

Fabrication files

  1. File: xxx 

  2. File: xxx 

  3. File: xxx 

Last update: 2022-12-01