Iâve got three of the 2016 FFCP printers, also running Sailfish v7.8. And though I use Cura instead of Slic3r, Iâve found that, at least with it, you donât need to enter an extra offset. When you send the G-Code command to select the other tool, the printer automatically shifts by the offset amount preprogrammed in the firmware.
I originally tried to follow various tutorials online, as you did, where it said to enter the offsets, but that only caused it to be shifted because both the slicer and the printer was adding the offset. In fact, you can take a .gcode file that was setup for the right-extruder, edit it manually to change the tool from T0 to T1 and make sure it sends a âM108 T1â command (select tool T1). When the printer receives that command, it automatically shifts the position to the T1 tool offset. Then run it through GPX to the printer and then it will print with the other extruder, which proves no additional offset is needed since the X/Y coordinates in the rest of the gcode still had the original displacement.
My guess is that somewhere along the way they switched from requiring the slicer to add the offset to having the printer/firmware itself do it, since it seems to be different from the vast majority of tutorials out there online.
You can fine-tune the offsets by doing the calibration print and entering offsets in the setup screens via the LCD/Keypad. But beware, some versions of Sailfish (canât remember if it was v7.8 or one of the others Iâve used) has a floating point to integer conversion issue. If you go through the process of entering which line is the best on the calibration print where it calculates the correction based on the line index, it will calculate an incorrect value and suddenly youâll have an offset of like 32768mm, which works about as well as youâd think. And the only way I found to recover that was to go to the manual screen where you enter the specific correction in mm and hold down the button until it ticked back down to the 0.xxx something range (took forever!).
So the best way to tune it is to figure out which line is best and manually calculate the offsets and set it from that on the manual correct screen rather than use the firmwareâs fancy âenter the best lineâ function. My experience is that there are some pretty serious bugs like that in Sailfish⌠Though despite that, in general, Sailfish works pretty well for printing.
Oh, and you asked for example start/end gcodes. Hereâs what Iâm using on Cura:
*** Begin Start GCode ***
M103 (disable RPM)
M73 P0 (enable build progress)
G21 (set units to mm)
G90 (set positioning to absolute)
{IF_BED}M109 S{BED} T0 (set HBP temperature)
{IF_EXT0}M104 S{TEMP0} T0 (set extruder 0 temperature)
{IF_EXT1}M104 S{TEMP1} T1 (set extruder 1 temperature)
(**** begin homing ****)
G162 X Y F2500 (home XY axes maximum)
G161 Z F1100 (home Z axis minimum)
G92 Z-5 (set Z to -5)
G1 Z0.0 (move Z to â0â)
G161 Z F100 (home Z axis minimum)
M132 X Y Z A B (Recall stored home offsets for XYZAB axis)
(**** end homing ****)
G1 X-110.5 Y-74 Z50 F3300.0 (move to waiting position)
G130 X20 Y20 Z20 A20 B20 (Lower stepper Vrefs while heating)
M6 T0 (wait for toolhead 0, and HBP to reach temperature)
{IF_EXT1}M6 T1 (wait for toolhead 1, and HBP to reach temperature)
G130 X127 Y127 Z40 A127 B127 (Set Stepper motor Vref to defaults)
{IF_EXT0}M108 T0 (Select extruder 0)
{IF_EXT1}M108 T1 (Select extruder 1)
G0 X-110.5 Y-74 (Position Nozzle)
G0 Z0 (Position Height)
G1 E4 F50.0 (Create Anchor)
G1 Z15
G92 E0
*** End Start GCode ***
*** Being End GCode ***
M73 P100 ( End build progress )
G0 Z150 ( Send Z axis to bottom of machine )
M18 ( Disable steppers )
M109 S0 T0 ( Cool down the build platform )
M104 S0 T0 ( Cool down the Right Extruder )
M104 S0 T1 ( Cool down the Left Extruder )
G162 X Y F2500 ( Home XY endstops )
M18 ( Disable stepper motors )
M70 P5 ( We <3 Making Things!)
M72 P1 ( Play Ta-Da song )
*** End Stop GCode ***
My only âbugâ with these on Cura is that if you are using the Fan, Cura will output the fan commands with T0 for the tool which causes it to inadvertently switch back to the other extruder. My present âworkaroundâ for this is to simply edit the gcode file and change the fan commands to T1 when using the other extruder, which works, but is a pain in the @$$. Eventually Iâll get unlazy and create a better solution.