Sailfish Firmware – Usage and Troubleshooting
The Sailfish Firmware referenced in this manual can be found on Thingiverse as Thing 32084.
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.
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.
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
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.
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/.
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.
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.
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”.
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.
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.
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.
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.
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.
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.
This is normal — just set the extruder count to the correct count of either 1 or 2.
A single extruder will be identified as “Extruder A” or “Tool 0″ depending on the context.
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.
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.
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.