Sailfish Firmware – Usage and Troubleshooting

The Sailfish Firmware referenced in this manual can be found on Thingiverse as Thing 32084.

Table of Contents
Introduction
What is Sailfish?
How is Sailfish related to other firmwares?
What are the hardware requirements for Sailfish?
What are the software requirements for Sailfish?
How do I get Sailfish?
Is there anything I need to do to set up Sailfish?
What do I do if I’m having trouble with Sailfish?
How do I remove Sailfish?
Troubleshooting
My print starts off the platform near the endstops
My bot moves much too fast and violently
My bot homes in the wrong direction.
My bot is heating to the wrong temperature.
My bot is skipping or missing steps.
Dualstrusion
My dualstrusion offsets are wrong
Thing-o-Matics & Cupcakes
In ReplicatorG, the Onboard Preferences shows a tool count of -1.
What is the correct extruder name and tool number for a bot with a single extruder?
My 3mm extruder seems to be depriming/retracting too much.
No plastic comes out my extruder.
At the end of a build, my HBP temperature starts climbing.

Introduction

What is Sailfish?

Sailfish is an alternative, community-supported firmware for The Replicator 1, Thing-o-Matic and Cupcake. It is an accelerated firmware that adds features beyond those provided by the standard MakerBot firmwares, including ditto printing, multiple usage profiles, filament usage counters, and the ability to save and restore EEPROM values to and from SD card.

Sailfish is the only accelerated firmware available for the Thing-O-Matic. Rob Giseburt’s alternative Cupcake firmware features acceleration, but has not been updated in some time.

How is Sailfish related to other firmwares?

Sailfish builds on Makerbot’s Gen4 and MightyBoard firmwares using acceleration derived from the RepRap firmware Marlin. It also adds a number of original improvements, including the asymmetric JKN Advance algorithm, the Yet Another Jerk jerk control, and use of fixed point computations for speed. Previous to Sailfish 4.0 for Thing-O-Matics and Cupcakes and Sailfish 6.2 for The Replicator 1, Sailfish was known as Jetty Firmware.

What are the hardware requirements for Sailfish?

To run Sailfish, you will need one of the following:

  • A Replicator 1
  • A Thing-o-Matic or Cupcake with Gen 4 electronics with a StepStruder Mk6, Mk6+, Mk7, or Mk8
  • A Cupcake with Gen 3 electronics, the 3G 5D shield, and a Stepstruder Mk6, Mk6+, Mk7, or Mk8
  • A Cupcake with Gen 3 electronics, the Ugly Cable Hack, and a Stepstruder Mk6, Mk6+, Mk7, or Mk8

What are the software requirements for Sailfish?

Sailfish requires either the most recent official release of ReplicatorG or one of the special Sailfish versions of Replicator G available as downloads from Thingiverse Thing 32084. Currently we recommend that you use “ReplicatorG 0039 – Sailfish” unless you are using a bot with a 3 mm extruder, in which case you should use ReplicatorG 0040 or “ReplicatorG 0040 – Sailfish”.

Slice models for Sailfish using Skeinforge 50 or later. Other slicers, including slic3r and KISSlicer, have also been configured to work with Sailfish. For more information, inquire on the MakerBot Operators Google Group.

How do I get Sailfish?

Sailfish firmware for the Thing-O-Matic and Cupcake is available, along with the standard MakerBot firmware, at http://firmware.makerbot.com/firmware.xml, which means that all you have to do to get it is run the “Upload new firmware” tool from the Machine menu in ReplicatorG.

Sailfish Firmware for The Replicator 1 is not hosted by MakerBot. To upload Sailfish to a Replicator, open up ReplicatorG 0039 – Sailfish and set your Firmware Update URL to http://jettyfirmware.yolasite.com/resources/release/firmware.xml. You can find the Firmware Update URL setting in the Preferences menu, under the Advanced tab. Then run the “Upload new firmware” tool as you normally would.

For more information on installing Sailfish, see the Sailfish Firmware Installation Guide.

The source code for Sailfish is hosted at http://github.com/jetty840/.

Is there anything I need to do to set up Sailfish?

There are a few settings you will have to edit in order to start printing with Sailfish. For details and instructions, see the Sailfish Firmware Setup Guide.

What do I do if I’m having trouble with Sailfish?

First check the Troubleshooting section below to see if your question has already been answered. If you still need help, post your question to the Jetty Firmware Google Group.

How do I remove Sailfish?

To remove Sailfish, just install another firmware in its place. If you may want to restore Sailfish later, consider saving a copy of your bot’s EEPROM settings.

To save the EEPROM on a Replicator, go to the bot’s onboard Utilities menu and select EEPROM. Choose “EEPROM -> SD” to save the EEPROM to an SD card file. You can restore the settings later by inserting the same SD card and selecting “SD -> EEPROM”.

To save the EEPROM on a Thing-O-Matic or Cupcake, you will need a Gen4 LCD Interface. Go to the EEPROM menu item and choose “EEPROM -> SD” to save the EEPROM to an SD card file. You can restore the settings later by inserting the same SD card and selecting “SD -> EEPROM”.

Troubleshooting

My print starts off the platform near the endstops

From ReplicatorG’s Machine > Onboard Preferences menu, check the X and Y Home Offsets. You should find them under the tab labelled “Homing/VREFs” (“Homing” on Thing-o-Matics and Cupcakes). Check and make sure that the values for the X and Y home offsets are not zero or otherwise small values. For a Replicator, the X home offset should be around 152 mm while the Y home offset should be either 72 mm for a single extruder or 75 mm for a dual extruder setup. After changing the values, click the “Commit” button. Note that after setting the values, you may not see exactly the value you set when you look again in Onboard Preferences. This is a result of converting back and forth between units of millimeters and stepper motor steps which must be integer values (i.e., roundoff errors).

For Thing-o-Matics and Cupcakes, you should run the home offset calibration procedure if you are unsure of what the correct home offset values are. If you know what they should be, then you can set them via the Onboard Preferences window in ReplicatorG.

My bot moves much too fast and violently

First, ensure that Acceleration is enabled. You can find this setting under the Acceleration tab in ReplicatorG’s Onboard Preferences menu or through your bot’s LCD interface.

If acceleration is already enabled, make sure you’re using the correct version of ReplicatorG and the correct kind of build file. As of Sailfish 4.0 for the Thing-O-Matic and Cupcake and Sailfish 6.2 for The Replicator 1, Sailfish uses a new kind of accelerated move command. In ReplicatorG 0039 – Sailfish, those new commands are used when generating .s3g files, while in ReplicatorG 0040, .s3g files use the old commands and .x3g files use the new ones. If you use an .s3g file generated with any version of ReplicatorG other than 0039 – Sailfish, it will contain the old accelerated move commands and Sailfish will run them as non-accelerated moves, resulting in violent, jerky movement that is bad for your bot and your prints.

If neither or these things turns out to be the issue, go to ReplicatorG’s Machine menu, select Onboard Preferences, and compare the values in the Acceleration tab to the ones shown in the Setup Guide. If they look very different, your bot may have already had some wild values in the relevant memory locations before you uploaded Sailfish. Reset the motherboard to factory settings using the button at the bottom of the Onboard Preferences menu. This will not lose your toolhead or home offset settings.

My bot homes in the wrong direction.

Make sure that the “Use default start/end gcode” box in ReplicatorG’s Generate GCode window is checked. If you are using your own start.gcode file, check it for errors.

There is a known bug in ReplicatorG 0039 and 0040 whereby the default Thing-O-Matic profile uses the wrong start and end GCode files, causing your Thing-O-Matic to home in the wrong direction. Avoid this by checking the “Use default start/end gcode” box in ReplicatorG’s Generate GCode window or by creating a duplicate slicing profile and correcting the start and end GCode files in that profile’s alterations directory. If you are already using custom start and end GCode, check it for errors.

My bot is heating to the wrong temperature.

You probably have Sailfish’s “Override Gcode Temperature” feature enabled. This feature overrides the temperature set in your GCode in favor of the temperature set in your onboard Preheat Settings. You can set the Preheat Settings to the temperature you need, or turn the feature off altogether in ReplicatorG’s Onboard Preferences window.

My bot is skipping or missing steps.

You may be running an axis faster than it can tolerate. The Z axis, especially on a Cupcake, is particularly sensitive to this. The maximum feedrates allowed for each axis are specified in the machine definition file used by ReplicatorG. Those maximum feedrates are specified in units of mm per minute. You may need to reduce yours. After changing a machine definition, you will need to exit and restart ReplicatorG so that ReplicatorG registers the change. Then you will need to connect your bot to ReplicatorG via USB so that ReplicatorG can communicate the change to your bot.

While you may be allowing too high of a rate of acceleration, that’s much less likely: unaccelerated operation uses very high rates of acceleration and if those were not a problem, then the moderate rates of acceleration used by Sailfish are unlikely to be an issue.

Dualstrusion

My dualstrusion offsets are wrong

If you are using ReplicatorG 39 – Sailfish, then your tool head offsets should be small values, typically between -1.0 and +1.0 mm. If you are using ReplicatorG 40 or ReplicatorG 40 – Sailfish, then X axis tool head offset needs to be around -34.0 to -32.0 mm. The difference between 39 and 40 is driven by a change in how ReplicatorG handles the dualstrusion tool head offsets.

To change your bots tool head offsets, you will need to use either ReplicatorG 0039 – Sailfish or 0040 – Sailfish. The standard version of ReplicatorG 0040 will use the wrong units when manipulating the offsets.

Go to Machine > Onboard Preferences. Find the Homing/VREFs tab and the “X toolhead offset” setting. If your offset is within a millimeter or two of 0, subtract 33 mm. For example, if it’s 0.018 mm, change it to -32.982mm. If it’s -0.125 mm, change it to -33.125 mm. Then click the “Commit” button. If your prints center too far to the left or right on the build platform, then adjust your X home offset. You will likely want to reduce the X home offset by about 16.5 mm; e.g., reduce it from about 152 mm to about 135.5 mm. These centering issues will be addressed in a version of Sailfish after version 7.0.

Thing-o-Matics & Cupcakes

In ReplicatorG, the Onboard Preferences shows a tool count of -1.

This is normal — just set the extruder count to the correct count of either 1 or 2.

What is the correct extruder name and tool number for a bot with a single extruder?

A single extruder will be identified as “Extruder A” or “Tool 0″ depending on the context.

My 3mm extruder seems to be depriming/retracting too much.

Use RepG’s Onboard Preferences window to enable “Extruder Hold”. It’s in the “Misc” tab. For extruders with high internal pressure — 3 mm extruders, typically — it is helpful to ignore GCode commands to temporarily disable the extruder stepper motor during a build. While this may not have been a problem for you previously, Skeinforge 50 generates these commands before any travel move.

No plastic comes out my extruder.

With 5D, or volumetric printing, the extruder is run in the opposite direction from non-5D. You likely need to change the “Invert A axis” setting in Machine > Onboard Preferences.

At the end of a build, my HBP temperature starts climbing.

If you are using the Altshell plugin in Skeinforge, make sure that the “Use M320/M321″ box is checked. Leaving the box unchecked may trigger a non Sailfish related bug in older versions of the Extruder Controller board.

5 Comments so far

  • Bryan Apperson
    January 26, 2013 at 10:13 pm
     

    Unfortunately my thing-o-matic endstops don’t work with this firmware. Is there any way to check why this may be, when homing the motor keeps stepping even after hitting the endstop

     
  • carlos ramirez
    January 29, 2013 at 3:00 pm
     

    no puedo actualizar el firmware 5.2 de la replicator dual
    cuando resect la maquina y pongo unload la maquina no hace nada
    hay otro metodo de cargarle el firmware a la maquina o actualizarla version
    5.5

     
  • john francis
    March 5, 2013 at 10:50 am
     

    For some reason after installing this along with updated firmware for my extruder board (ATM168) my build platform temperature reads 117 and the only way I can print is to edit the gcode to set the bed at 117. unfortunately there is no way to control the bed temperature so I’m getting some curling. any thoughts?

     
  • Melody
    Melody
    March 6, 2013 at 6:25 pm
     

    Hey guys,

    I’m sorry to hear that you’re having trouble. You might want to repost your questions at the Jetty Firmware Google Group — that’s the best source for Sailfish support.

     
  • john francis
    March 7, 2013 at 2:29 pm
     

    Thanks Melody. Since I also switched to PLA I just changed out my build platform to the included acrylic build platform with no heater. I’m using a much less smashed bottom layer to keep the prints from sticking to the platform so bad. All fixed here! I’ll definitely check out the link for future reference.

     
 

Leave your comment

 
 
 

xhtml: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>