11. Open Source Hardware - From Fibers to Fabric¶
Open Source Hardware - From Fibers to Fabric¶
Research and Ideation¶
Making open source hardware is a task I never in my life thought I’d tackle and I especially didn’t think I would enjoy it so much.
In the lab, before the week even began, we had many conversations about what hardware we would like to create or which existing hardware we would like to make open source, giving it a new life spam.
Considering factors like how many days we have to accomplish this task, re-use and re-purpose at the back of our minds and looking at the already existing hardware in the lab we concluded to make one of the older 3D printers that was no longer in use, not just open source but functioning a little differently.
Inspiration¶
MIT researchers have created a beautiful origami technology.
Another inspiration is Fabricademy Alumni's final Project
Re-purposing a 3D Printer¶
The 3D printer that we have in the lab, which we could make open-source was MakeBot Replicator 2, collecting dust on one of the shelves in the Fab Lab Dilijan. My task this week was to work on flashing the firmware.
Firmware? I think this was the first time I was even hearing this term. I’d heard of hardware, I’d heard of software but I was clueless on what firmware was.
Firmware, as my quick research concluded, was kind of like a software, but not exactly. It is the ‘microcode’ that is embedded in the motherboard (the hardware). It is what dictates the functions of your hardware, allowing the functions to work as they should. While softwares have regular updates and bug fixes, firmwares may have updates but not at all as often, if at all in their lifespam. They are usually stored in a “Non Volatile Memory”, meaning that they do not lose the information even after power is removed. To change a hardware’s firmware, you will need to physically change the memory chip. Often these chips are not designed to be changed at all.
“Flashing” is another way to reprogram the chip. Now, I was instructed with the task of understanding how I can flash the firmware of Replicator 2 and to find open source firmware that would work with the 3D machine we were tackling.
After extensive research, reading reddit and github threads, watching youtube videos and asking chat GPT I concluded that we have three main options. Each option presented itself with their positive and negative aspects and it was time to discuss it with the team.
From 3D printer to 2D heater?¶
Our aim was to alter the 3D printer in a way and change the nozzle in a way that, when given a Gcode, it applied heat to two layers of vinyl sheets, ‘printing’ designs for soft robotics experiments. This would mean that we wouldn’t need to use the vinyl cutter, the laser cutter (for the inner parchment paper) and iron or hot press (if available). It would be faster, it would be more sustainable and we would be re-purposing an old 3D printer, which otherwise would not be used.
Now before I go into the details of the open source firmwares, I would like to tell you a little about the MakerBot Replicator 2.
MakerBot Replicator 2¶
Produced in 2012, the MakerBot Replicator 2 is a single head 3D printer, using PLA filament. With the release of this product MakerBot became a proprietary product offering company, saying their farewells to being open source. Terrible idea if you ask me. It claims to be user friendly and I believe 13 years ago it was, in comparison to other products available in the market. However, to generate a GCode, you would need to work with Maker Bot Desktop software and the format that it recognises is .x3g. Softwares like OrcaSlicer, CuraSlicer or PrusaSlicer do not export in this format, which means that you are tied to this software if you wish to use this printer. Their new generation printers also use a different format (makerbot) and the MakerBot software that you have access to through a browser, also does not export in the x3g format.
We did manage to install the MakerBot Desktop software and export a design Lilit Barseghyan had made for testing purposes in the x3g format. However, for a reason we still have not yet understood, the Replicator 2 would choose a file from the inserted SD card to print with its own volition, completely disregarding our choices - making our choice to make it open source more valid! The desktop software is also not as well equipped as the OrcaSlicer.
Back to the hardware, it was important to see the motherboard- to understand which firmware could be used to flash it and how. It uses Mightyboard Rev H.
Open Source Firmwares¶
After some research I understood that our three options were
-
Sailfish
-
Klipper
-
Marlin
Sailfish is the obvious, easy choice and has been successfully used many times to flash the firmware of the Replicator 2. However, Sailfish has not been updated by the developers for many years now, which means there are no bug fixes. Moreover, Sailfish uses the .x3g format as well, which limits the slicer option. Trying to install Sailfish to understand the flashing process better was also unsuccessful, as I use a macbook with the most recent macOS and I would need windows or a much older macOS system.
Klipper and Marlin are both advanced open source firmwares, offering extensive customization options. However, flashing the firmware using Klipper or Marlin was a complicated task. We would need to actually alter the mightyboard, use Raspberry Pi if using Klipper.
General Comparison¶
| Firmware | Difficulty to Install | Printer Support Level | Performance Level | Feature Set Quality | Best For |
|---|---|---|---|---|---|
| Sailfish | Easy to Medium | Fully supported | High performance | Strong feature set | Users who want the best, most stable version of the original Replicator 2 |
| Klipper | Very difficult / Advanced | Not officially supported | Extremely high | Extremely rich features | Tinkerers who want maximum speed, tuning, and a modern UI |
| Marlin | Hard | No official MightyBoard support | Moderate performance | Good feature set | Modders replacing the electronics or rebuilding the printer |
Pros and Cons¶
| Firmware | Hardware Requirements | Software Requirements | Skill Level Needed | Notes |
|---|---|---|---|---|
| Sailfish | - Replicator 2 with MightyBoard Rev H - USB cable - Computer (Windows/macOS) |
- ReplicatorG Sailfish Edition or MakerWare/FlashPrint - MightyBoard USB drivers |
Beginner to Intermediate | Easiest option; no hardware mods needed; LCD and buttons fully supported |
| Klipper | - Replicator 2 - Raspberry Pi (3B+ or 4 recommended) - microSD card - USB cable |
- MainsailOS/FluiddOS or Raspberry Pi OS - Klipper, Moonraker, Web UI - Custom printer.cfg |
Advanced / Expert | LCD unsupported; requires pin mapping; highest performance but most complex setup |
| Marlin | - Replicator 2 - (Recommended) Replacement control board (SKR, Duet, etc.) |
- Marlin source code - PlatformIO or Arduino IDE - Custom pin & hardware configuration files |
Advanced (Firmware Development Level) | Not supported on MightyBoard without deep code changes; best if replacing electronics |
Cost Comparison¶
| Firmware Path | Typical Additional Cost* | What You’re Paying For / What’s Included |
|---|---|---|
| Sailfish | $0–$20 | Most likely nothing extra — uses existing MightyBoard, USB, PC or laptop; maybe small cost for a USB cable or driver CD if missing |
| Klipper | ~$35–$60 | A Raspberry Pi (~$35–$50) + microSD card & power supply (or extras) needed to run Klipper/host — uses existing printer electronics |
| Marlin (stock MightyBoard) | High Risk/Variable — often not practical | You’d need to create custom firmware for MightyBoard — time cost only; but no guarantee of full functionality (so potentially $0 but no working printer) |
| Marlin (with new 32-bit board) | ~$40–$100+ | Cost of a replacement 32-bit controller board (e.g. 32-bit SKR/Duet-type board) — requires rewiring / mods |
With all the pros and cons of all three firmwares, I initially concluded that it would be ideal to flash the firmware with Klipper. Our Replicator 2 Mightyboard Rev H gives us the possibility of using Klipper with Raspberry Pi connected to the Mightyboard (if done correctly according to many threads I read).
Klipper¶
There are many different sources, youtube videos and Github pages that thoroughly explain how to flash Klipper on almost ANY 3D printer. I especially was keen on using Klipper, because I wanted to be free of using the x3g format. However, flashing with Klipper would include processes like installing Klipper on a Raspberry Pi, which in turn would connect to the Mightyboard and you would need Mainsail or Fluidd software interfaces (both created for Klipper) to run this whole act.
Raspberry Pi is a single green circuit board, the size of a credit card that is actually like a whole computer.
Once Raspberry Pi is installed, the Klipper is installed on the Raspberry Pi and the Raspberry Pi is connected to the Mightyboard of the Replicator 2, then the command comes from the Raspberry Pi (or technically from the software that you use to give the commands to Raspberry Pi). If all these processes are done correctly, then the Mightybord does what is commanded by the Raspberry Pi and the whole hardware actually becomes open-source. Sounds simple enough, right?
It's really not THAT complicated, if you have the time to sit and do all the steps, carefully and correctly (especially as a first timer, you don't want to flash it and fail). However, time is usually not our friend while working on projects at Fabricademy.
As a team, we decided to use Sailfish. Given the limited time we had and what our goal was with the MakerBot Sailfish seemed like the obvious answer.
Sailfish¶
Flashing Sailfish Using ReplicatorG¶
Step One
If you are using the latest version of MacOS, borrow a friends laptop that has windows or a much older version of MacOS (the last update from Sailfish was in 2017).
Download and Install ReplicatorG 40r34
Step Two
Turn on the Replicator 2 and connect to your computer using a USB cable.
Step Three
Select the machine type - Replicator 2
Machine → Machine Type → MakerBot Replicator 2 (Sailfish)
Step Four
Upgrade Firmware Mode
Machine → Upload New Firmware → (A) Select Board →
Click Next → (B) Select Firmware Version
Select Sailfish 7.7
Step Five
Select the serial port - Make sure that your computer and Replicator 2 are properly connected.
Step Six
When ready, and with all fingers crossed Click the upload button to begin uploading the firmware
And if you are lucky like us then you will have had uploaded the firmware successfully.
Step Seven
Back to the Replicator 2, on the screen you have to reset to default
Utilities → Reset to Defaults
Exporting from SVG to X3G¶
The flashing of the firmware using Sailfish and ReplicatorG was as simple as all the research had concluded. However, the difficulty was generating a GCode from an SVG file, which then in turn we could convert to x3g format. Let me refrase that, which then would actually 'print' what was intended. This part took the longest and it was the hardest. Each to their own, I took a path of installing GPX, which initially woud work on PrusaSlicer and export two files every time - one .gcode file and another .x3g file.
Installing GPX¶
The fastest way to do this was through Terminal in MacOS
Step One
Open Terminal in your macOS paste the code and press ENTER
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install gpx
/opt/homebrew/bin/gpx -?
Step Three
Manually test if the GPX is working correctly by generating a .gcode file on the desktop then run this code
/opt/homebrew/bin/gpx -p -m r2 ~/Desktop/file.gcode
PrusaSlicer and how I failed.. at first¶
To 'trick' PrusaSlicer to generate .x3g format I did the following steps.
Step One
On the top bar there is Configuration → Configuration Assistant
You need to create a MakerBot compatible printer and this is where you do it.
Step Two
In the Configuration Assistant → Custom Printer → Custom Printer Setup
Give your printer a name that you like!
Step Three Choose your Firmware Type - Sailfish (MakerBot)
Step Four
By clicking Next you should set the bed size
x: 285
y:153
z: 155
Nozzle temperature: 170C (keep in mind that we are building a machine that will heat up two vynils and we do not want to melt them)
The bed temperature can stay empty or 0C as Replicator 2 bed does not heat up.
Click Finish and you have yourself a custom printer!
Step Five
In Print Settings → Output Options use this code
/opt/homebrew/bin/gpx -p -m r2
In Printer → Custom G-code you need to edit the
Start Gcode
; --- Replicator 2 / Sailfish start ---
M73 P0 ; enable build progress
M103 ; extruder off
G21 ; set units to millimeters
G162 X Y F3000 ; home XY to max endstops
G161 Z F1200 ; home Z to min endstop
G92 X0 Y0 Z0 ; zero the axes
G1 Z5 F1200 ; lift nozzle
G1 X-3 Y13 F3000 ; move to front-left corner
M73 P1 ; progress 1%
; --- heating handled by GPX ---
End Gcode
; --- Replicator 2 / Sailfish end ---
M104 S0 ; extruder off
M73 P100 ; show 100% progress on display
G1 Z150 F1000 ; raise Z to safe height (optional)
G162 X Y F3000 ; home XY to max endstops
M18 ; disable all motors
; --- end ---
Make sure you save after entering the codes by clicking on the flopy disk button on the top
Ideally now when you export a .gcode, there should be two files exported automatically one with .gcode and the other .x3g
I tried many different codes for the Print Settings → Output Options, many of them gave an error and some didn't give an error but didn't create an .x3g file.
I worked on this for hours and failed! In the end, as our time is limited, I gave up and just created a shortcut which would very easily convert .gcode files to .x3g format.
GPX Shortcut¶
This is for Mac users
Step One
Open Shortcuts App and click on the + button to add a shortcut.
Rename it to whatever you prefer. I named mine Gcode → X3G
Step Two
On the right click on the ⓘ button and select Use as Quick Action and Finder
Step Three
Next to the ⓘ button there is a folder button. Click on that and in the search tab search shell. Click on Run Shell Script
Paste this code
/opt/homebrew/bin/gpx -p -m r2 "$1" "${1%.*}.x3g"
Shell → zsh
Input → Shortcut Input
Pass Input → as augmented
Leave Run as Administrator unchecked
Step Four
Now that the shortcut is created, you can check if it works by Right Click on any .gcode file → Quick Actions → Gcode→x3g
And you should have yourself an .x3g file
It all worked but I didn't give up this challenge. No one wants to do two actions for a one action job. After even more research I found this thread In a Prusa Forum:
And decided to do it as is in the thread.
Creating a gpx.sh wrapper¶
And un-failing
Step One
Open Terminal on your mac and run this code
mkdir -p ~/bin
nano ~/bin/gpx.sh
Step Two
In nano paste this code
#!/bin/bash
# $1 = temp G-code file that PrusaSlicer generated
# SLIC3R_PP_OUTPUT_NAME = final G-code path in your chosen folder
# We just change the extension to .x3g
OUTPUT="${SLIC3R_PP_OUTPUT_NAME%.*}.x3g"
/opt/homebrew/bin/gpx -p -m r2 "$1" "$OUTPUT"
Step Three
Back in Terminal enter this code
chmod 775 ~/bin/gpx.sh
Step Four
Now back in PrusaSlicer, in your created printer go to Print Settings → Output Options and enter a new code
/Users/yourusername/bin/gpx.sh
Please fill in your username as is in your Mac in the username line after Users/
Now my Prusa Slicer finally exports both the .gcode and .x3g!
Exporting .x3g however is not enough. Making sure that the .x3g file actually prints what we intend it to is the harder part. We made on average 15 exports of .x3g files a day for three days, to understand what the Replicator 2 understands with the perimeters we give. There are a few main factors to consider :
-
nozzle heat (170C was our golden middle)
-
bed z axes and the pressure that the nozzle will apply (this is mainly done manually on the MakerBot). Flashing with sailfish has a few cons and one is that you can no longer use Leveling the Build Plate in Utilities.
-
current position - or the lack of it- experimenting with perimeter settings to generate .gcodes that don't start 'printing' mid air. The plate showed the design in the middle of the bed on PrusaSlicer, yet the Replicator 2 started the design mid air.
Expectations vs Reality¶
Our biggest problem was that the machine started "printing" not on the bed but way before the edge of the x and y axes even began. After many experiments, I managed to correct this error by editing the Start G-code.
; --- Replicator 2 / Sailfish start (vinyl) ---
M73 P0 ; enable build progress display
; Heat nozzle (vinyl welding)
M104 S170 T0 ; set nozzle to 170C
M109 S170 T0 ; wait for nozzle to reach 170C
G21 ; units = millimeters
G90 ; absolute positioning
; Homing
G162 X Y F3000 ; home X/Y to MAX endstops (Replicator 2 style)
G161 Z F1200 ; home Z to MIN endstop
G92 X0 Y0 Z0 ; set current position as 0,0,0
; Move up and into a safe area inside the bed
G1 Z5 F1200 ; lift nozzle a bit
G1 X210 Y170 F3000 ; move farther inside the build area (50mm in X+Y)
M73 P1 ; update progress
; --- end of start G-code ---
Notice the X and Y = X210, Y170. This allowed the nozzle to start heating the vinyl inside the bed. It is easy to change these two parimeters in the settings Printer → Custom G-code.
As a result, I was able to heat a couple of my original design within the borders of the bed!
Results¶
The problem with this design was that it was too small in comparison to the nozzle size (0.4mm) and some of the lines touched each other, blocking the air from passing. But not to worry, Lilit Barseghyan had already made a design that we could test out.
Re-Creating a nozzle¶
For heating two vinyls together we needed the nozzle to change a little. It would be ideal to have a nozzle that was like a ball pen, however, we didn't have enough time to create something like this. What we did instead, and it worked better than we could have hoped for, was making the tip of the nozzle we did have, round and smooth.
At the Fab Lab Dilijan, we have an open source hardware Metal Man, created by Fab Academy Alumnis Mkhitar Evoyan and Zhirayr Ghukasyan. Mkhitar Evoyan kindly showed us how to use the Metal Man.
It was a very simple process. We put the nozzle of the 3D printer in the 3 Jaw chuck spindle and turned it on with medium speed. While the spindle turned the nozzle, we held a sanding tool for sanding metal against the nozzle head, curving it as it turned.
We also used a finer sandpaper to make it nice and smooth!
And voila
Bill of Materials (BOM)¶
| # | Item | Quantity | Cost | Source / Comment |
|---|---|---|---|---|
| 1 | MakerBot Replicator 2 (used, like new) | 1 | 0 USD | FLA surplus / already available |
| 2 | SD card 2–4 GB (formatted FAT16) | 1 | 0 USD | Available at FLA |
| 3 | Heat-Transfer Vinyl | ~200–300 A4 sheets | 0.5–0.8 USD per sheet | Used scraps |
| 4 | Double-sided tape or painter’s tape | 1 roll | 2–4 USD | To fix HTV sheet to the bare glass/PEI bed |
| 5 | 0,4 printing nozle | 1 | 0 USD |
Tital Cost: ~ 5 USD
PrusaSlicer Settings¶
Print Settings → Layers and Perimeters
Layer Height
| Setting | Value |
|---|---|
| Layer height | 0.2 mm |
| First layer height | 0.2 mm |
Vertical Shells
| Setting | Value |
|---|---|
| Perimeters | 1 (minimum) |
| Spiral vase | Off |
Horizontal Shells
| Setting | Top | Bottom |
|---|---|---|
| Solid layers | 0 | 0 |
| Minimum shell thickness | 0 mm | 0 mm |
Quality (Slower Slicing)
| Setting | Value |
|---|---|
| Extra perimeters if needed | Off |
| Extra perimeters on overhangs (Experimental) | Off |
| Ensure vertical shell thickness | Disabled |
| Avoid crossing curled overhangs (Experimental) | Off |
| Avoid crossing perimeters | On |
| Avoid crossing perimeters – Max detour length | 0 mm / % |
| Detect thin walls | On |
| Thick bridges | Off |
| Detect bridging perimeters | Off |
Advanced
Seam
| Setting | Value |
|---|---|
| Seam position | Nearest |
| Seam gap distance | 0% |
| Staggered inner seams | Off |
Scarf Joints
| Setting | Value |
|---|---|
| Scarf joint placement | Nowhere |
| Scarf joint only on smooth perimeters | On |
| Scarf start height | — (disabled) |
| Scarf joint around entire perimeter | — (disabled) |
| Scarf joint length | 20 mm (disabled) |
| Max scarf joint segment length | 1 mm (disabled) |
| Scarf joint on inner perimeters | Off |
| Setting | Value |
| External perimeters first | On |
| Fill gaps | On |
| Perimeter generator | Classic |
Fuzzy Skin (Experimental)
| Setting | Value |
|---|---|
| Fuzzy Skin | None |
| Fuzzy skin thickness | 0.3 mm |
| Fuzzy skin point distance | 0.8 mm |
Only One Perimeter
| Setting | Value |
|---|---|
| Single perimeter on top surfaces | Disabled |
| Only one perimeter on first layer | On |
Print Settings → Infill
Infill Settings
| Setting | Value |
|---|---|
| Fill density | 0% |
| Fill pattern | Stars |
| Length of the infill anchor | 600% |
| Maximum length of the infill anchor | 50 mm or % |
| Top fill pattern | Monotonic |
| Bottom fill pattern | Monotonic |
Ironing
| Setting | Value |
|---|---|
| Enable ironing | Off |
| Ironing type | All top surfaces |
| Flow rate | 15% |
| Spacing between ironing passes | 0.1 mm |
Reducing Printing Time
| Setting | Value |
|---|---|
| Automatic infill combination | Off |
| Automatic infill combination – Max layer height | 100% |
| Combine infill every | 1 layer |
Advanced
| Setting | Value |
|---|---|
| Solid infill every | 0 layers |
| Fill angle | 45° |
| Solid infill threshold area | 70 mm² |
| Bridging angle | 0° |
| Only retract when crossing perimeters | Off |
| Infill before perimeters | Off |
Skirt and Brim
Skirt
| Setting | Value |
|---|---|
| Loops (minimum) | 0 |
| Distance from object | 6 mm |
| Skirt height | 1 layer |
| Draft shield | Disabled |
| Minimal filament extrusion length | 0 mm |
Brim
| Setting | Value |
|---|---|
| Brim type | No brim |
| Brim width | 0 mm |
| Brim separation gap | 0 mm |
Support Material
| Setting | Value |
|---|---|
| Generate support material | Off |
| Auto-generated supports | On |
| Overhang threshold | 0° |
| Enforce support for first | 0 layers |
| First layer density | 90% |
| First layer expansion | 3 mm |
Raft
| Setting | Value |
|---|---|
| Raft layers | 0 |
| Raft contact Z distance | 0.1 mm |
| Raft expansion | 1.5 mm |
Support Options
| Setting | Value |
|---|---|
| Style | Grid |
| Top contact Z distance | 0.2 mm (detachable) |
| Bottom contact Z distance | Same as top |
| Pattern | Rectilinear |
| With sheath | On |
| Pattern spacing | 2.5 mm |
| Pattern angle | 0° |
| Closing radius | 2 mm |
| Top interface layers | 3 (heavy) |
| Bottom interface layers | Same as top |
| Interface pattern | Rectilinear |
| Interface spacing | 0 mm |
| Interface loops | 0 |
| Support on build plate only | Off |
| XY separation | 50% |
| Don’t support bridges | On |
| Sync with object layers | Off |
Organic Supports
| Setting | Value |
|---|---|
| Maximum branch angle | 40° |
| Preferred branch angle | 25° |
| Branch diameter | 2 mm |
| Branch diameter angle | 5° |
| Branch diameter (double walls) | 3 mm |
| Tip diameter | 0.8 mm |
| Branch distance | 1 mm |
| Branch density | 15% |
Speed
Print Moves
| Setting | Value |
|---|---|
| Perimeters | 2 mm/s |
| Small perimeters | 2 mm/s |
| External perimeters | 2 mm/s |
| Infill | 80 mm/s |
| Solid infill | 20 mm/s |
| Top solid infill | 15 mm/s |
| Support material | 2 mm/s |
| Support interface | 100% |
| Bridges | 60 mm/s |
| Over bridges | 0 |
| Gap fill | 2 mm/s |
| Ironing | 15 mm/s |
Dynamic Overhang Speed
| Setting | Value |
|---|---|
| Enable dynamic overhang | Off |
| Speed 0% overlap | 15 mm/s |
| Speed 25% overlap | 15 mm/s |
| Speed 50% overlap | 20 mm/s |
| Speed 75% overlap | 25 mm/s |
Non-Print Moves
| Setting | Value |
|---|---|
| Travel | 60 mm/s |
| Z travel | 8 mm/s |
Modifiers
| Setting | Value |
|---|---|
| First layer speed | 2 mm/s |
| First layer solid infill | 0 |
| First layer over raft interface | 30 mm/s |
Acceleration
Acceleration Control
| Setting | Value |
|---|---|
| External perimeters | 0 mm/s² |
| Perimeters | 0 mm/s² |
| Top solid infill | 0 mm/s² |
| Solid infill | 0 mm/s² |
| Infill | 0 mm/s² |
| Bridge | 0 mm/s² |
| First layer | 0 mm/s² |
| First object layer over raft | 0 mm/s² |
| Wipe tower | 0 mm/s² |
| Travel | 700 mm/s² |
| Short-distance travel accel | 300 mm/s² |
| Default | 300 mm/s² |
Auto Speed
| Setting | Value |
|---|---|
| Max print speed | 2 mm/s |
| Max volumetric speed | 0 mm³/s |
Pressure Equilizer
| Setting | Value |
|---|---|
| Max volumetric slope + | 0 |
| Max volumetric slope – | 0 |
Extrusion Width
| Setting | Value |
|---|---|
| Default | 0.45 |
| First layer | 0.42 |
| Perimeters | 0.45 |
| External perimeters | 0.45 |
| Infill | 0.45 |
| Solid infill | 0.45 |
| Top solid infill | 0.4 |
| Support material | 0.35 |
| Auto width calc | Off |
Overlap
| Setting | Value |
|---|---|
| Infill/perimeter overlap | 0% |
Flow
| Setting | Value |
|---|---|
| Bridge flow ratio | 1 |
Slicing
| Setting | Value |
|---|---|
| Slice gap closing radius | 0.049 mm |
| Slicing mode | Regular |
| Slice resolution | 0 |
| G-code resolution | 0.0125 mm |
| Arc fitting | Disabled |
| XY size compensation | 0 |
| Elephant foot compensation | 0 |
Arachne
| Setting | Value |
|---|---|
| Transition threshold angle | 10° |
| Filter margin | 25% |
| Transition length | 100% |
| Distribution count | 1 |
| Min perimeter width | 85% |
| Min feature size | 25% |
Output Options
Sequential Printing
| Setting | Value |
|---|---|
| Complete individual objects | Off |
Other
| Setting | Value |
|---|---|
| G-code substitutions | (none) |
Post- Processing Script
/Users/yourusername/bin/gpx.sh
Printer Settings
Size & Coordinates
| Setting | Value |
|---|---|
| Bed shape | Rectangular (285 × 153 mm, origin 0,0) |
| Max print height | 155 mm |
| Z offset | 0 mm |
Capabilities
| Setting | Value |
|---|---|
| Extruders | 1 |
| Single Extruder Multi-Material | Off |
Firmware
| Setting | Value |
|---|---|
| G-code flavor | Sailfish (MakerBot) |
| G-code thumbnails | Off |
| Supports stealth mode | On |
| Supports remaining times | Off |
| Supports binary G-code | Off |
Advanced
| Setting | Value |
|---|---|
| Use relative E distances | Off |
| Use firmware retraction | Off |
| Use volumetric E | Off |
| Enable variable layer height | On |
| Prefer clockwise movements | Off |
Sequential Printing Limits
| Setting | Value |
|---|---|
| Radius | 20 mm |
| Height | 20 mm |
Custom G-Code
Start G-Code
; --- Replicator 2 / Sailfish start (vinyl) ---
M73 P0 ; enable build progress display
; Heat nozzle (vinyl welding)
M104 S170 T0 ; set nozzle to 170C
M109 S170 T0 ; wait for nozzle to reach 170C
G21 ; units = millimeters
G90 ; absolute positioning
; Homing
G162 X Y F3000 ; home X/Y to MAX endstops (Replicator 2 style)
G161 Z F1200 ; home Z to MIN endstop
G92 X0 Y0 Z0 ; set current position as 0,0,0
; Move up and into a safe area inside the bed
G1 Z5 F1200 ; lift nozzle a bit
G1 X210 Y170 F3000 ; move farther inside the build area (50mm in X+Y)
M73 P1 ; update progress
; --- end of start G-code ---
| Setting | Value |
|---|---|
| Emit temperature commands automatically | On |
End G-Code
; --- Replicator 2 / Sailfish end (vinyl) ---
M73 P100 ; show 100% progress
; Turn off heaters
M104 S0 T0 ; nozzle off
; Lift a bit from the part
G91 ; relative moves
G1 Z10 F1000 ; go up 10 mm
G90 ; back to absolute
; Park the head safely inside the bed
G1 X10 Y10 F6000 ; move near front-left corner
; Optionally home XY instead of parking:
; G162 X Y F3000 ; home X/Y to max endstops
M18 ; disable all motors
; --- end ---
Extruder
Extruder Settings
| Setting | Value |
|---|---|
| Nozzle diameter | 0.4 mm |
| Max volumetric speed | 0 mm³/s |
| Extrusion multiplier | 1 |
| Filament diameter | 1.75 mm |
| Min layer height | 0.07 mm |
| Max layer height | 0.3 mm |
Retraction
| Setting | Value |
|---|---|
| Length | 0.5 mm |
| Lift Z | 0 mm |
| Wipe while retracting | Off |
| Unretract extra length | 0 mm |
| Minimum travel distance | 0 mm |
| Retract on layer change | Off |
| Retract before wipe | Off |
Retraction (tool change)
(Disabled due to single extruder)
| Setting | Value |
|---|---|
| Retraction length | 0 |
| Extra length | 0 |
| Lift Z | 0 |
| Restart distance | 0 |
Other Extruder Settings
| Setting | Value |
|---|---|
| Nozzle temperature | 170 °C |
| First layer temperature | 170 °C |
| Diameter | 0.4 mm |
| Extruder offset | X: 0 mm, Y: 0 mm |
| Compatible printers | All compatible |






























