Skip to content
dromosys edited this page Jan 4, 2018 · 10 revisions

Using Slic3r for the Makerbot Replicator 1 (the original replicator) with dual extrusion is described here.

Makerbot firmware 7.x

The workflow normally is

  1. Obtain an stl, drop it on the platter in Slic3r

  2. Create an new gcode file, create optionally also a new stl (for viewing purposes).

  3. Open the gcode (or stl) in ReplicatorG which is the original software for the Makerbot Replicator 1. Click on the build button to send the gcode to the printer.

  4. Alternative to step #3 is edit Printer settings > output options

post processing scripts: /home/user/tools/gpx.sh
output file name format: [input_filename_base].gcode

cat gpx.sh
#!/bin/bash

gpx -g -p -m r1d "$1" "$1.x3g"

Not working

All works, BUT you need different configurations for printing with right (T0) head, left head or both heads!

Specifically, the problem is:

  1. The skirt is always with T0, so right extruder, this due to code M135 T0. So, to print with left head, skirt must be 0, so as not to be present.

  2. Dual head printing needs specific start gcode. For replictatorG software, some codes are present in the gcode that it does not understand (M135). After pressing Proceed, print is fine though.

printer settings

Only using right (default T0) extruder

Following is a working setting for .Slic3r/printer/replicator1dual_right.ini

# generated by Slic3r 1.0.0RC3-dev on Sat Jan 18 16:54:44 2014

bed_size = 220,148
end_gcode = (******* End.gcode*******)\nM73 P100 (end  build progress )\nG0 Z155\nM18\nM109 S0 T0\nM104 S0 T0\nG162 X Y F2500\nM18\nM70 P5 ( We <3 Making Things!)\nM72 P1  ( Play Ta-Da song )\n(*********end End.gcode*******)
extruder_offset = 0x0,0x0
gcode_flavor = makerware
layer_gcode = 
nozzle_diameter = 0.4,0.4
print_center = 0,0
retract_before_travel = 2,2
retract_layer_change = 1,1
retract_length = 1,1
retract_length_toolchange = 10,10
retract_lift = 0,0
retract_restart_extra = 0,0
retract_restart_extra_toolchange = 0,0
retract_speed = 30,30
start_gcode = (**** start.gcode for The Replicator, dual head ****)\nM103 (disable RPM)\nM73 P0 (enable build progress)\nG21 (set units to mm)\nG90 (set positioning to absolute)\nM109 S110 T0 (set HBP temperature)\nM104 S220 T0 (set extruder temperature) (temp updated by printOMatic)\n(**** begin homing ****)\nG162 X Y F2500 (home XY axes maximum)\nG161 Z F1100 (home Z axis minimum)\nG92 Z-5 (set Z to -5)\nG1 Z0.0 (move Z to "0")\nG161 Z F100 (home Z axis minimum)\nM132 X Y Z A B (Recall stored home offsets for XYZAB axis)\n(**** end homing ****)\nG1 X-110.5 Y-74 Z150 F3300.0 (move to waiting position)\nG130 X20 Y20 Z20 A20 B20 (Lower stepper Vrefs while heating)\nM6 T0 (wait for toolhead, and HBP to reach temperature)\nG130 X127 Y127 Z40 A127 B127 (Set Stepper motor Vref to defaults)\nM108 R3.0 T0\nG0 X-110.5 Y-74 (Position Nozzle)\nG0 Z0.6      (Position Height)\nM108 R5.0    (Set Extruder Speed)\nM101         (Start Extruder)\nG4 P2000     (Create Anchor)\n(**** end of start.gcode ****)

toolchange_gcode = M108 T[next_extruder]    (replicatorg tool change code)
use_firmware_retraction = 0
use_relative_e_distances = 0
vibration_limit = 0
wipe = 0,0
z_offset = 0

Only using left (T1) extruder

Following is a working setting for .Slic3r/printer/replicator1dual_left.ini # generated by Slic3r 1.0.0RC3-dev on Sat Jan 18 16:54:20 2014

bed_size = 220,148
end_gcode = (******* End.gcode*******)\nM73 P100 (end  build progress )\nG0 Z155\nM18\nM109 S0 T1\nM104 S0 T1\nG162 X Y F2500\nM18\nM70 P5 ( We <3 Making Things!)\nM72 P1  ( Play Ta-Da song )\n(*********end End.gcode*******)
extruder_offset = 0x0,0x0
gcode_flavor = makerware
layer_gcode = 
nozzle_diameter = 0.4,0.4
print_center = 0,0
retract_before_travel = 2,2
retract_layer_change = 1,1
retract_length = 1,1
retract_length_toolchange = 10,10
retract_lift = 0,0
retract_restart_extra = 0,0
retract_restart_extra_toolchange = 0,0
retract_speed = 30,30
start_gcode = (**** start.gcode for The Replicator, dual head ****)\nM103 (disable RPM)\nM73 P0 (enable build progress)\nG21 (set units to mm)\nG90 (set positioning to absolute)\nM109 S110 T1 (set HBP temperature)\nM104 S220 T1 (set extruder temperature) (temp updated by printOMatic)\n(**** begin homing ****)\nG162 X Y F2500 (home XY axes maximum)\nG161 Z F1100 (home Z axis minimum)\nG92 Z-5 (set Z to -5)\nG1 Z0.0 (move Z to "0")\nG161 Z F100 (home Z axis minimum)\nM132 X Y Z A B (Recall stored home offsets for XYZAB axis)\n(**** end homing ****)\nG1 X-110.5 Y-74 Z150 F3300.0 (move to waiting position)\nG130 X20 Y20 Z20 A20 B20 (Lower stepper Vrefs while heating)\nM6 T1 (wait for toolhead, and HBP to reach temperature)\nG130 X127 Y127 Z40 A127 B127 (Set Stepper motor Vref to defaults)\nM108 R3.0 T1\nG0 X-110.5 Y-74 (Position Nozzle)\nG0 Z0.6      (Position Height)\nM108 R5.0    (Set Extruder Speed)\nM101         (Start Extruder)\nG4 P2000     (Create Anchor)\n(**** end of start.gcode ****)
toolchange_gcode = M108 T[next_extruder]    (replicatorg tool change code)
use_firmware_retraction = 0
use_relative_e_distances = 0
vibration_limit = 0
wipe = 0,0
z_offset = 0

Using both extruders on a single print

When printing with two heads with the replicator 1 via the Replicatorg software, a specific starting sequence must be passed. So we give here the printer ini file. Use for filament settings the ini file below, and for print settings the default one for the right (T0) print head. In the print settings there, you off course need to change the extruder settings, so as to use extruder 1 and 2 for infill/support/... as to your desire, for example support with extruder 2 (T1), and perimeters and infil with extruder 1 (T0).

For printing different parts of an object with different materials the workflow is the following:

  1. You need an STL for each piece you want with a different extruder (different material)
  2. Start with an empty platter
  3. In menu File go to Combine multi material STL files
  4. Select the (minimum) two STL files you want to combine (SHIFT/CTRL+click), and press OK
  5. For the next open file dialog press CANCEL to indicate you have all files selected
  6. The next file dialog is a save dialog for an xml file which you save to a good location
  7. With drag and drop, drop the xml file from 6. on the platter
  8. In the toolbar, select Settings, and go to tabpage MATERIAL. Select for each STL file the extruder you want to use
  9. For replicatorg, select the following ini file so as to be able to print with two heads

Here is the working setting for .Slic3r/printer/replicator1dual_bothheads.ini

# generated by Slic3r 1.0.0RC3-dev on Sat Jan 18 18:15:52 2014

bed_size = 220,148
end_gcode = (******* End.gcode*******)\nM73 P100 (end  build progress )\nG0 Z155\nM18\nM109 S0 T1\nM104 S0 T1\nG162 X Y F2500\nM18\nM70 P5 ( We <3 Making Things!)\nM72 P1  ( Play Ta-Da song )\n(*********end End.gcode*******)
extruder_offset = 0x0,0x0
gcode_flavor = makerware
layer_gcode = 
nozzle_diameter = 0.4,0.4
print_center = 0,0
retract_before_travel = 2,2
retract_layer_change = 1,1
retract_length = 1,1
retract_length_toolchange = 10,10
retract_lift = 0,0
retract_restart_extra = 0,0
retract_restart_extra_toolchange = 0,0
retract_speed = 30,30
start_gcode = (**** start.gcode for The Replicator, Dualstrusion! ****)\nM103 (disable RPM)\nM73 P0 (enable build progress)\nG21 (set units to mm)\nG90 (set positioning to absolute)\nM109 S110 T0 (set HBP temperature)\nM104 S220 T0 (set extruder temperature)\nM104 S220 T1 (set extruder temperature)\n(**** begin homing ****)\nG162 X Y F2500 (home XY axes maximum)\nG161 Z F1100 (home Z axis minimum)\nG92 Z-5 (set Z to -5)\nG1 Z0.0 (move Z to "0")\nG161 Z F100 (home Z axis minimum)\nM132 X Y Z A B (Recall stored home offsets for XYZAB axis)\n(**** end homing ****)\nG1 X-110.5 Y-74 Z50 F3300.0 (move to waiting position)\nG130 X20 Y20 Z20 A20 B20 (Lower stepper Vrefs while heating)\nM6 T0 (wait for toolhead, and HBP to reach temperature)\nM6 T1 (wait for toolhead, and HBP to reach temperature)\nG130 X127 Y127 Z40 A127 B127 (Set Stepper motor Vref to defaults)\nG0 X-110.5 Y-74     (Position Nozzle)\nG0 Z0.6         (Position Height)\nG1 E4 F50.0      (Create Anchor)\nG92 E0\n(**** end of start.gcode ****)
toolchange_gcode = M108 T[next_extruder]    (replicatorg tool change code)
use_firmware_retraction = 0
use_relative_e_distances = 0
vibration_limit = 0
wipe = 0,0
z_offset = 0

filament settings

Following is a working setting for .Slic3r/filament/replicator1dual.ini This works for all printer heads

# generated by Slic3r 1.0.0RC3-dev on Thu Jan 16 19:36:46 2014

bed_temperature = 0
bridge_fan_speed = 100
cooling = 1
disable_fan_first_layers = 1
extrusion_multiplier = 1
fan_always_on = 0
fan_below_layer_time = 60
filament_diameter = 1.8
first_layer_bed_temperature = 0
first_layer_temperature = 200
max_fan_speed = 100
min_fan_speed = 35
min_print_speed = 10
slowdown_below_layer_time = 30
temperature = 200

print settings

Only using right (default T0) extruder

Following is a working setting for .Slic3r/print/replicator1dual_right.ini

# generated by Slic3r 1.0.0RC3-dev on Sat Jan 18 16:55:05 2014

avoid_crossing_perimeters = 1
bottom_solid_layers = 3
bridge_acceleration = 0
bridge_flow_ratio = 1
bridge_speed = 60
brim_width = 0
complete_objects = 1
default_acceleration = 0
external_perimeter_speed = 70%
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 12
extruder_clearance_radius = 60
extrusion_width = 0
fill_angle = 45
fill_density = 0.4
fill_pattern = honeycomb
first_layer_acceleration = 0
first_layer_extrusion_width = 200%
first_layer_height = 0.4
first_layer_speed = 30%
gap_fill_speed = 20
gcode_comments = 0
infill_acceleration = 0
infill_every_layers = 10
infill_extruder = 1
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_speed = 80
layer_height = 0.25
min_skirt_length = 0
notes = 
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 1
perimeter_extrusion_width = 0
perimeter_speed = 80
perimeters = 2
post_process = 
raft_layers = 0
randomize_start = 0
resolution = 0
skirt_distance = 6
skirt_height = 1
skirts = 1
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extrusion_width = 0
solid_infill_speed = 60
spiral_vase = 0
standby_temperature_delta = -5
start_perimeters_at_concave_points = 0
start_perimeters_at_non_overhang = 0
support_material = 0
support_material_angle = 0
support_material_enforce_layers = 0
support_material_extruder = 1
support_material_extrusion_width = 0
support_material_interface_extruder = 1
support_material_interface_layers = 3
support_material_interface_spacing = 0
support_material_pattern = honeycomb
support_material_spacing = 2.5
support_material_speed = 60
support_material_threshold = 0
thin_walls = 1
threads = 2
top_infill_extrusion_width = 0
top_solid_infill_speed = 50
top_solid_layers = 3
travel_speed = 130

Only using left (T1) extruder

Following is a working setting for .Slic3r/print/replicator1dual_left.ini This effectively turns off the skirt, as current Slic3r does the skirt with the T0 extruder, which is unwanted as we did not heat up T0!

# generated by Slic3r 1.0.0RC3-dev on Sat Jan 18 16:53:02 2014

avoid_crossing_perimeters = 1
bottom_solid_layers = 3
bridge_acceleration = 0
bridge_flow_ratio = 1
bridge_speed = 60
brim_width = 0
complete_objects = 1
default_acceleration = 0
external_perimeter_speed = 70%
external_perimeters_first = 0
extra_perimeters = 1
extruder_clearance_height = 12
extruder_clearance_radius = 60
extrusion_width = 0
fill_angle = 45
fill_density = 0.4
fill_pattern = honeycomb
first_layer_acceleration = 0
first_layer_extrusion_width = 200%
first_layer_height = 0.4
first_layer_speed = 30%
gap_fill_speed = 20
gcode_comments = 0
infill_acceleration = 0
infill_every_layers = 10
infill_extruder = 2
infill_extrusion_width = 0
infill_first = 0
infill_only_where_needed = 0
infill_speed = 80
layer_height = 0.25
min_skirt_length = 0
notes = 
only_retract_when_crossing_perimeters = 1
ooze_prevention = 0
output_filename_format = [input_filename_base].gcode
overhangs = 1
perimeter_acceleration = 0
perimeter_extruder = 2
perimeter_extrusion_width = 0
perimeter_speed = 80
perimeters = 2
post_process = 
raft_layers = 0
randomize_start = 0
resolution = 0
skirt_distance = 6
skirt_height = 1
skirts = 0
small_perimeter_speed = 30
solid_fill_pattern = rectilinear
solid_infill_below_area = 70
solid_infill_every_layers = 0
solid_infill_extrusion_width = 0
solid_infill_speed = 60
spiral_vase = 0
standby_temperature_delta = -5
start_perimeters_at_concave_points = 0
start_perimeters_at_non_overhang = 0
support_material = 0
support_material_angle = 0
support_material_enforce_layers = 0
support_material_extruder = 2
support_material_extrusion_width = 0
support_material_interface_extruder = 2
support_material_interface_layers = 3
support_material_interface_spacing = 0
support_material_pattern = honeycomb
support_material_spacing = 2.5
support_material_speed = 60
support_material_threshold = 0
thin_walls = 1
threads = 2
top_infill_extrusion_width = 0
top_solid_infill_speed = 50
top_solid_layers = 3
travel_speed = 130