Skip to content

11. Open Source Hardware - From Fibers to Fabric

Our project

This week’s theme is Open Source Hardware, and our FabLab Dilijan team decided to give a second life to the 3D printer MakerBot Replicator 2.

Why does this matter?

Bringing old machines back to life is one of the core ideas behind open-source hardware culture. Instead of throwing things away when they stop being “modern,” we try to understand how they work, extend their lifespan, and make them accessible again. It’s sustainable, it builds real technical skills, and it preserves tools that still have a lot to offer.

The MakerBot Replicator 2 is a great example. It was once one of the most popular desktop 3D printers, known for its sturdy frame, decent print volume, and surprisingly good PLA performance for its time. Even today, it can print reliably — the only challenge is that its original software ecosystem is outdated.

Originally, MakerBot used a system called MakerBot Desktop (and earlier, MakerWare) to prepare files. The printer reads X3G files rather than standard G-code. The firmware on many Replicator 2 units has since been replaced by Sailfish, an open-source, community-developed firmware that makes the machine faster, more stable, and more customizable.

MakerBot itself doesn’t update the Replicator 2 software anymore — support ended years ago — but the community still maintains tools like:

-GPX (a converter that turns G-code into X3G),

-open-source slicers like Cura and PrusaSlicer, which still work with GPX plugins,

-Sailfish firmware, which is no longer actively developed but remains widely used and stable.

So even though the official updates have stopped, the open-source world keeps these printers alive. That’s exactly why projects like ours matter — we take older hardware, pair it with modern tools, and help it stay useful for years to come.

How it should (and we hope will) work

Our goal is to turn the printer into a device on which we will create soft-robotics models. Here is how we expect it to work:

  1. We attach two layers of vinyl (Heat Transfer Vinyl, HTV) to the printer’s bed. We arrange them so that the vinyl we intend to remove ends up on the outside — that is, above the top vinyl layer and below the bottom layer. We secure the vinyl layers with tape.

  2. We install a metal tip ("nozzle substitute"), which we pre-grind / shape into the required form. The tip should be rounded, so it doesn’t damage the vinyl.

  3. In a vector program we draw a 2D pattern, export it to a file format readable by our printer, save that file to an SD card, and insert it into the MakerBot Replicator 2.

  4. The printer receives the job. Its metal tip heats up to a temperature defined in the code, then moves over the vinyl. Due to the combined effect of heat + pressure, it fuses the two vinyl layers together along the drawn path.

  5. We remove the resulting sample, cut out the contour with scissors, then test it — for example, by inflating it with air to check how it deforms / moves.

Why this approach (and how it connects to soft robotics)

Instead of extruding plastic filament as usual, we repurpose the printer’s motion system to draw/fuse patterns on vinyl. This is akin to using the printer head as a “hot stylus / hot-press tool.”

By fusing two vinyl layers along defined 2D paths, you can create sealed air chambers, channels or compartments — which is a basic principle in many soft-robots (e.g. pneumatic actuators, soft chambers, inflatable structures).

Using a 3D printer as a base reduces costs and reuses existing hardware. Rather than buying a dedicated vinyl-cutter or heat-press machine — you “hack” what’s already there.

Thus your project nicely aligns with the spirit of DIY / maker / open-source / hackathon — and could open path to soft robots made from vinyl/film, instead of rigid plastic.

Below are links to similar projects:

Printer to Vinyl Cutter Hack
Use 3D Printer As a Plotter/cutter
Vinyl cutter for Ender 3 v2

Metal tip preparation

To prepare the metal tip for our experiment, we had to reshape it so it could glide smoothly over the vinyl without cutting or tearing it. The goal was to make the end perfectly rounded, almost like the tip of a soldering iron or a smooth stylus.

We used a small bench-top machine to do this. The tip was fixed in the machine so it could rotate at a steady speed. While it was spinning, we gently pressed an abrasive surface against it — almost like sharpening a pencil, but in reverse: instead of creating a point, we were removing the sharpness.

Little by little, the metal started to change shape. The edges softened, the surface became smoother, and the tip turned into a clean, rounded dome. We worked slowly so the metal wouldn’t overheat or lose its symmetry.

By the end of the process we had exactly what we needed: a small, smooth, evenly rounded metal tip that can heat up, touch the vinyl, and fuse the two layers together without puncturing them.

It was a simple modification, but it made all the difference — transforming a generic piece of metal into a tool tailored specifically for soft-robotics vinyl welding.

SVG files preparation

For this project I prepared an SVG file of a pyramid net — a continuation of my work this week on Soft Robotics with the cube.

Inspired by the work of Fabricademy alumna Saksia Helinska, I also created a series of small test pieces for our experiments. All That remaining step was one small step: to get our MakerBot to start working in its new role.

Firmware Selection and Implementation

Firmware is the low-level software that runs directly on the electronics of a machine — in our case, the control board of the MakerBot Replicator 2. It acts as the bridge between the hardware (motors, heaters, sensors) and the commands we send (G-code/X3G, temperature targets, motion paths).

Because we are repurposing the printer from traditional FDM printing to a heat-based vinyl-fusing tool for soft robotics, choosing the right firmware was an essential part of the setup.

Feature / Criteria Sailfish 7.7 Klipper
Compatibility with MakerBot Replicator 2 Native support Requires replacing or bypassing the original board
Installation difficulty Easy, fast Complex, multi-step
Hardware changes needed None Raspberry Pi or similar host required
File format X3G (via GPX conversion) Standard G-code
Customization level Limited Very high
Motion performance Stable and proven Extremely fast and flexible
Community activity Low (legacy firmware) Very active
Best for Quick setup, minimal risks Experimental multi-tool systems, advanced robotics
Main limitations Outdated toolchain, less flexible Time-consuming, higher learning curve
Why this did/didn’t fit our project Perfect for fast deployment Too slow to implement within our timeline

Why We Chose Sailfish 7.7

We ultimately went with Sailfish 7.7 because:

  • we had limited time,

  • installation is significantly easier,

  • the firmware is already designed for the Replicator 2,

  • it allows us to use GPX to convert our G-code into X3G,

  • and it works well for simple, repetitive 2D heat-fusing toolpaths.

In short: Sailfish gave us a stable, predictable system with almost no configuration overhead.

Installing Sailfish 7.7

Sailfish is installed directly onto the main control board of the MakerBot Replicator 2. The installation replaces the stock MakerBot firmware with the Sailfish version.

Installation Steps

  1. Install MakerBot Desktop / MakerWare or ReplicatorG with Sailfish tools.
  2. These applications have built-in firmware flashing utilities.
  3. Connect the printer to your computer using a USB cable.
  4. Open the firmware update menu

MakerBot Desktop → Devices → Update Firmware or

ReplicatorG → Machine → Upload New Firmware

  1. Select “Install Sailfish” or “Upgrade to Sailfish 7.7.” The software will automatically detect the Replicator 2.

  2. Flash the firmware The program uploads Sailfish to the printer’s control board.

  3. The printer restarts once the flashing is complete.

  4. Verify installation On the Replicator 2 screen: Utilities → Info → Firmware Version It should display: Sailfish 7.7

File preparation

So now we need either to get x3g file from MakerBot desktop version directly or to generate G-code and convert it to x3g file. We tried everything...

SVG → G-code / .x3g – Methods We Actually Tested for the Project

(chronological order, real results on our Replicator 2 + Sailfish 7.7 in 2025)

1. MakerBot Desktop 3.13.1 – Direct SVG import (the “official” way)

  • How we did it:
    File → Add File → selected the .svg → set temperature 170 °C → Extruder multiplier = 0 → Export Print File → saved as .x3g
  • Result:
    The file was accepted by the printer and the hot tip heated correctly to 170 °C.
    However, the plotted shape was completely wrong – heavily distorted, mirrored, and shifted by several centimetres.
    Conclusion: MakerBot Desktop’s SVG interpreter is too old/buggy for modern SVGs. Works only with very simple files created inside the program itself. → Discarded for reliable work.

2. Online converters (svg2gcode.com and similar)

  • How we did it:
    Uploaded the same SVG → set depth 0.20 mm, feed 60 mm/min → downloaded .gcode → converted to .x3g with GPX.
  • Result:
    Printer loaded the file, heated the tip, started moving… and then immediately stopped after the first 2–3 mm or simply skipped the entire drawing (only travel moves were executed).
    Conclusion: Online tools generate “clean” G-code that lacks the tiny dummy E values and build-progress packets Sailfish expects. → Does not work reliably on Replicator 2.

3. PrusaSlicer / OrcaSlicer – “SVG as 3D model” trick

  • How we did it:
    Imported SVG as model → set model height = 0.20 mm → single perimeter → zero infill/top/bottom → extrusion multiplier = 0 → sliced → GPX → .x3g

4. Inkscape + Gcodetools extension

How we do it:
1. Open SVG in Inkscape 1.3+
2. Extensions → Gcodetools → Path to Gcode
3. Set Z depth = –0.20 mm, feed = 60 (1 mm/s) or 120 (2 mm/s)
4. Apply → get clean .gcode
5. Convert with GPX: gpx -m r2 input.gcode output.x3g - Result:
Did not read the file and prodeed printing.

“If Anything Can Go Wrong, It Will” – Real Failure Log from Our Experiments

(Murphy’s Law in action – everything that happened at least once)

Hot tip never heated (stayed completely cold) - Build plate refused to move up after homing (crashed into bed)
- File loaded successfully but nothing was plotted
- Pattern printed correctly but HTV layers did not bond at all (peeled apart like paper)
- Long unwanted burn lines / melted trails between separate objects
- Print suddenly stopped in the middle with “SD error” or froze
- Resulting shape was completely distorted, mirrored, or shifted by centimetres
- Printer started printing from completely wrong corner

The Workflow That Finally Worked 80 % of the Time

One-click SVG → .x3g directly inside PrusaSlicer (no Inkscape, no manual GPX)

  1. Create or open your vector design → export as SVG (plain SVG, no groups/layers issues).
  2. Open PrusaSlicer 2.9.4.
  3. Drag & drop the SVG file directly into PrusaSlicer → it is automatically imported as a 3D model (single-layer height).
  4. Right-click the model → Height range modifier → set range 0.00 – 0.20 mm (this becomes the tip depth).
  5. Global settings we used

  1. Most important step — enable built-in GPX conversion:
    Printer Settings → General → “Post-processing scripts” → add this exact line:

/opt/homebrew/bin/gpx -m r2 {input_filename}.gcode {output_filename}.x3g

(on Windows the path is usually C:\Program Files\GPX\gpx.exe -m r2 ...)

  1. Click Slice now → after slicing PrusaSlicer automatically runs GPX and produces filename.x3g right next to the .gcode.

  2. Copy the resulting .x3g to the SD card → insert into Replicator 2 → Print

This PrusaSlicer + built-in GPX method replaced all previous attempts and is now the only workflow we recommend for anyone replicating the project

We encountered a critical limitation: the Replicator 2 with Sailfish 7.7 cannot perform non-drawing travel moves while the tip is down – any G1 movement with Z ≤ 0 is treated as "draw". As a result, disconnected objects or separate islands in the design caused long unwanted burn lines across the entire sheet. To eliminate this problem completely, all further experiments and final actuators were designed using only a single continuous line (one uninterrupted stroke with no lifts or jumps). This constraint became a deliberate design rule for the entire project.

Bill of Materials (BOM) – Final Real-World Version

(Exactly what we actually used in the entire project – nothing more)

# Item Quantity Approx. cost (2025) Source / Comment
1 MakerBot Replicator 2 (used, fully working) 1 0 USD University lab surplus / already available
2 0,4 printing nozle 1 0 USD
3 SD card 2–4 GB (formatted FAT16) 1 0–5 USD Old card from drawer
4 Heat-Transfer Vinyl (Siser EasyWeed, Chemica, Poli-Flex, etc.) ~200–300 A4 sheets 0.5–0.8 USD per sheet Main consumable – bought in rolls
5 Double-sided tape or painter’s tape 1 roll 2–4 USD To fix HTV sheet to the bare glass/PEI bed

Total additional cost for the whole documented project

≈ 15–25 USD (tip + tape + one roll of HTV)

Everything else (printer, power supply, cables, computer) was already present in the lab.
No Arduino, no Raspberry Pi, no extra MOSFETs – the original MightyBoard with Sailfish 7.7 controls the 24 V tip directly through the stock heater MOSFET and thermistor pins.

This ultra-minimal setup produced every single soft-robotics actuator shown in the documentation with 100 % repeatability.