Skip to content

Day 03

Wednesday 27/05

Locations: Dundalk and UK, Northern Ireland

Summary

  • 09:00-09:30 Participants meetinga, Walk-in & coffee at Creative Spark Fab Lab
  • 09:30-13:00 E-textiles & Wearables Lecture and Workshop
  • 13:00-14:00 Lunch
  • 14:00-15:00 Bus to Northern Ireland (UK)
  • 15:00-18:00 Workshop Seaweed Harvesting and food tasting
  • 18:00-19:30 Social Dinner
  • 19:30-21:30 Bus back to Dundalk

The bus with participants will depart after lunch from the Fab Lab in Dundalk, reaching around 3pm the coast of Northern Ireland, Crawford Rock in the UK.

Activities

  • E-textiles Introduction

The lecture by Jessica Stanley introduces the participants to e-textile hands-on activities, by providing them an overview about novel materials, electronics and programming. The presentation will highlight several projects on the topic of tech & crafts and the following hands-on workshop will focus on DIY electronics, conductive and resistive materials to craft soft sensors and circuits.


  • Hands-on: E-textiles & Wearables Workshop

Supported by Fabricademy team and Lab staff, participants will learn how to design and craft their own soft circuits and sensors, experimenting with conductive fabrics, threads, resistive materials, input and output components.

  • Seaweed Harvesting and food tasting

Participants will explore the rich coastal ecosystems of Northern Ireland, learning how to identify different types of seaweeds. Participants will join local seaweed farm owners in harvesting seaweed, gaining hands-on experience with safe and environmentally responsible harvesting practices. They will learn how seaweed is processed for food and wellness applications, with demonstrations of drying, cleaning and basic preparation techniques. In addition, participants will enjoy a shared food tasting, highlighting local flavors and seasonal ingredients, offering a broader sensory experience connected to the coastal environment.

The dinner is included in the bootcamp fee


Electronics Materials

  • Velostat
  • Copper tape / fabric
  • Neopixels
  • Karl grimm thread (or any solderable thread)
  • Needle / regular thread
  • Transistors
  • Resistances kit
  • Jumper wires
  • Protoboard
  • Arduino Gemma / Circuit Playground
  • Fabri Xiao Seeed Studio
  • Conductive fabrics
  • Conductive thread
  • Resistive fabrics


Tools/Software

FabriXiao Soft Circuit


Code - FabriXiao Arduino


//Fabricademy Bootcamp 2026 at Creative Spark Dundalk
//E-Textiles workshop, 27th May 
//
//Connect a soft switch between pin A2 (aka D2) and GND on a Fabrixiao board with a Seeed Studio XIAO ESP32C3 microcontroller
//Connect an LED 'noodle' or any kind of LED and a resistor between pin D6 and GND
//The resistor value depends on what kind of LED you're using, but 330 Ohms will work for most
//
//Fabrixiao documentation: https://fabacademy.org/2020/labs/leon/students/adrian-torres/fabrixiao.html
//Documentation on LED noodles: https://learn.adafruit.com/noods-uberguide/overview
//
//When powered on, or rebooted, the LED noodle lights up, whether or not the switch is included in the circuit.
//Pressing the switch will toggle it off and on again
//After 60 seconds of inactivity, the board will go into 'deep sleep', switching off the LED noodle and the onboard (blue) LED
//Pressing the reset (R) button reboots the board, waking it up from deep sleep.
//
//Adapted by Jessica Stanley to add the sleep mode, from code from a Fab26 workshop by Anastasia Pistofidou and Adrian Torres.

#include "esp_sleep.h" //Sleep modes library to enable the board to go to sleep

const int sensePin = D2; //We attach a soft switch to this pin
const int ledPin = D6; //Attach an LED 'noodle' or other LED to this pin, in series with a resistors
const int statusLED = D10; //Onboard LED on the Fabrixiao

bool ledState = true;  // start with the LED on

unsigned long lastActivityTime; //Checking how long it has been since the last button press
const unsigned long sleepDelay = 60000; //Go to sleep after 60 seconds

unsigned long lastPressTime = 0; //Checking when the button was last pressed, for debouncing
const unsigned long minPressGap = 300; // Time in ms to wait between registering button presses

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(statusLED, OUTPUT);
  pinMode(sensePin, INPUT_PULLUP); //Activate the built-in pullup resistor to avoid floating input

  digitalWrite(ledPin, ledState); //Turn the LED strip on
  digitalWrite(statusLED, HIGH); //Turn the onboard LED on

  delay(200);  // allow input to settle

  lastActivityTime = millis(); //Log the current time
}

// --- Debouncing: avoiding registering one button press as multiple ---
bool buttonPressed() {
  if (digitalRead(sensePin) == LOW) {
    delay(80);  // longer debounce
    if (digitalRead(sensePin) == LOW) { //if the button is currently being pressed

      // prevent rapid retriggers
      if (millis() - lastPressTime < minPressGap) return false;

      while (digitalRead(sensePin) == LOW); // wait for the switch to be released

      lastPressTime = millis(); //update the last time since the button was pressed
      return true;
    }
  }
  return false;
}

void loop() {

//Toggle the LED if a new button press is registered
//You could update this part to 
  if (buttonPressed()) {
    ledState = !ledState;
    digitalWrite(ledPin, ledState);

    lastActivityTime = millis();
  }

//Send the board into deep sleep if 60s has elapsed
  if (millis() - lastActivityTime > sleepDelay) {

//Flicker the LED strip three times to indicate that sleep mode is starting
    for (int i = 0; i < 3; i++) {
      digitalWrite(ledPin, HIGH);
      delay(100);
      digitalWrite(ledPin, LOW);
      delay(100);
    }

    esp_deep_sleep_start(); //start deep sleep!
  }

  delay(2);
}


Recommendations

Suggested to bring with you:

  • Notebook and personal computer with Rhinoceros/Grasshopper and Fusion already installed
  • Materials (leather, fabrics..) you want to try and that you are working with to experiment

Resources