Customization

Expand and enhance your Fabrica robot with custom modifications

Adding More Panels

Scaling Up to 8 Panels

The base 4-panel design can be extended to 8 panels for more complex folding patterns.

Hardware Required:

  • • 4× Additional servo motors (SG90 or MG90S)
  • • 4× Additional folding panels (3D printed)
  • • 4× Additional servo mount brackets
  • • 8× Additional hinge pin holders
  • • 4× Hinge pins (M3×30mm smooth rods)
  • • Extension to base frame (print extended_base.stl)

Software Configuration:

# Edit config.py
NUM_PANELS = 8  # Change from 4

# Add servo limits for new servos
SERVO_LIMITS = {
    0: {"min": 10, "max": 170, "home": 90},
    1: {"min": 15, "max": 165, "home": 90},
    2: {"min": 10, "max": 175, "home": 90},
    3: {"min": 20, "max": 160, "home": 90},
    # New servos:
    4: {"min": 10, "max": 170, "home": 90},
    5: {"min": 10, "max": 170, "home": 90},
    6: {"min": 10, "max": 170, "home": 90},
    7: {"min": 10, "max": 170, "home": 90},
}

Note: The PCA9685 supports up to 16 servos. You can expand to 16 panels by adding more sections and extending the power supply.

Panel Layout Configurations

Linear Configuration (Default)

[1] ═══ [2] ═══ [3] ═══ [4] ═══ [5] ═══ [6] ═══ [7] ═══ [8]

Best for: Long items (towels, pants, scarves)

Grid Configuration (Advanced)

[1] ═══ [2]
 ║       ║
[3] ═══ [4]
 ║       ║
[5] ═══ [6]
 ║       ║
[7] ═══ [8]

Best for: Complex folds, larger garments, quilts

Cross Configuration

       [1]
        ║
[2] ═══ [3] ═══ [4]
        ║
       [5]

Best for: Centered folds, shirts, t-shirts

Adding Sensors

Fabric Detection Sensor

Add an IR proximity sensor to detect if fabric is present before folding.

Hardware:

  • • IR proximity sensor (e.g., TCRT5000)
  • • 3 wires (VCC, GND, Signal)
  • • Connect to GP2 on Pico

Software:

from machine import Pin

fabric_sensor = Pin(2, Pin.IN)

def check_fabric():
    if fabric_sensor.value() == 1:
        print("Fabric detected")
        return True
    else:
        print("No fabric")
        return False

Load Sensing (Weight Detection)

Add load cells to measure garment weight and adjust folding speed accordingly.

Hardware:

  • • 1kg load cell
  • • HX711 ADC module
  • • Connect DT→GP3, SCK→GP4

Library:

# Install hx711 library
mpremote mip install hx711

# Use in code
from hx711 import HX711

scale = HX711(3, 4)  # DT, SCK
weight = scale.read()
print(f"Weight: {weight}g")

Push Buttons for Manual Control

Add physical buttons for start, stop, and mode selection.

from machine import Pin

# Connect buttons to GP pins with pull-up resistors
btn_start = Pin(5, Pin.IN, Pin.PULL_UP)
btn_stop = Pin(6, Pin.IN, Pin.PULL_UP)
btn_mode = Pin(7, Pin.IN, Pin.PULL_UP)

# Button press detection
if btn_start.value() == 0:  # Button pressed (active low)
    print("Start button pressed")
    sm.play_sequence()

if btn_stop.value() == 0:
    print("Stop button pressed")
    sm.stop_sequence()

if btn_mode.value() == 0:
    print("Mode button pressed")
    sm.cycle_mode()  # Switch between sequences

Advanced Features

Wi-Fi Control

Control your robot wirelessly using the Pico 2W's built-in Wi-Fi.

# web_interface.py
import network
import socket

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('SSID', 'password')

# Create simple web server
# Access via http://192.168.x.x
# Control sequences from phone/tablet

OLED Display

Add a 0.96" OLED display for status information.

# Install ssd1306 library
mpremote mip install ssd1306

from machine import I2C
from ssd1306 import SSD1306_I2C

i2c = I2C(1, scl=Pin(27), sda=Pin(26))
oled = SSD1306_I2C(128, 64, i2c)

oled.text('Fabrica Robot', 0, 0)
oled.text('Ready', 0, 20)
oled.show()

Voice Control

Integrate with Google Assistant or Alexa via IFTTT.

  • • Set up IFTTT webhook on Pico web server
  • • Create voice command: "Hey Google, fold my t-shirt"
  • • IFTTT triggers sequence via HTTP request
  • • Robot executes selected folding pattern

Camera Vision (Raspberry Pi)

Add a Raspberry Pi with camera for garment recognition.

  • • Use Raspberry Pi 4 or Zero 2W
  • • Pi Camera Module v2 or v3
  • • OpenCV for garment classification
  • • Automatically select correct sequence

Motorized Base

Mount robot on a rotating base for 360° folding.

  • • NEMA 17 stepper motor
  • • A4988 stepper driver
  • • Lazy Susan bearing for rotation
  • • Enables multi-angle folding patterns

Conveyor Integration

Build a feeding system for continuous operation.

  • • Simple belt conveyor with DC motor
  • • Fabric sensor triggers folding cycle
  • • Output conveyor for folded items
  • • Automate laundry folding workflow

Custom Panel Designs

Modify Panel Dimensions

Adjust panel size for different garment types:

Small Panels

150mm × 200mm

For: Baby clothes, handkerchiefs, small towels

Standard Panels

200mm × 300mm (default)

For: T-shirts, dress shirts, most clothing

Large Panels

300mm × 400mm

For: Bath towels, blankets, bed sheets

Edit in CAD Software

Source files available in STEP and Fusion 360 formats. Modify dimensions and re-export to STL.

  • • Download source files from GitHub
  • • Open in Fusion 360, FreeCAD, or Onshape
  • • Modify parameters (length, width, thickness)
  • • Export to STL and print

Community Modifications

Share Your Mods!

The Fabrica community has created amazing modifications. Check out these resources:

Need Help Troubleshooting?

If you encounter any issues during or after customization, check the troubleshooting guide for common problems and solutions.