Untitled Document

10 August 2014
Sailfish 7.7 & 4.7 Release Notes

  1. New Documentation: Revised and expanded documentation in both PDF and HTML format is available.
  2. Auto-leveling: Sailfish now supports firmware-based auto-leveling in bots equipped with ATmega 2560 processors.
  3. Deutsch and Français: Localizations in Deutsch and Français are now available for Replicator-style printers.
  4. Core-XY & H-Gantry: Support for Core-XY and H-Gantry was added mid-release in 7.6.
  5. Firmware deprime only on pauses: Firmware deprime can now be configured to only occur when pauses, planned or otherwise, occur.
  6. ReplicatorG 40r28 - Sailfish: A new revision of ReplicatorG 40 - Sailfish may be downloaded.
  7. Other new features: Other assorted new features have been introduced.

New Documentation

Updated and greatly expanded Sailfish documentation is now available at http://www.sailfishfirmware.com/doc/. With community encouragement and funding, Laurel Newman undertook the considerable task of writing new documentation for Sailfish and then making the documentation and sources available under a Creative Commons license. A side effect of that project was a cleanup of the front panel user interface on the Replicator-line of printers: more conistency and some added features to streamline usage.


Full sources for the documentation are kept on github at




Firmware-based auto-leveling support has been developed by the MagicFirm Europe AB and contributed back to the Sailfish community. This code is fully tested and functional in the ZYYX line of printers which began shipping in July 2014 (http://zyyx3dprinter.com/). The code has been brought back into the mainline Sailfish code and thus is available to the entire Sailfish community. Because of the additional code space needed, it is only being provided for Replicator-style printers with ATmega 2560 processors. After the mainline branch in Sailfish has seen a bit more testing, it will also appear in a revision release for Thing-o-Matics with Arduino Mega 2560 boards. Again, the code available on the ZYYX printers is 100% tested and functional. The code pulled back into Sailfish has necessarily been generalized a little to allow for arbitrary probing points. As a result it is not, at this point, as thoroughly tested as the ZYYX version.

Deutsch and Français

Thanks to work by GottfriedSp, localizations of Sailfish is built for Replicator-style printers in Deutsch and Français. The translations are not complete. Translation of any of the remaining text is welcome. To access the localizations, change ReplicatorG's download URL to

Core-XY & H-Gantry

Since February 2014, Core-XY and H-Gantry (aka, "H-Bot") support has been available in Sailfish 7.6. With Sailfish 7.7, the support is now "official" and extensively tested thanks to Jetguy, James Armstrong, and Ryan Carlyle. See Thing 393155 for the most recent consolidation of the requisite parts and bill of materials for a Core-XY build using MightyBoard electronics and Sailfish.

Firmware Deprime only on Pauses

You can now enable the firmware deprime to only occur on pauses and not on travel moves; i.e., for manual pauses, P-Stop pauses, and "micro" pauses caused when the acceleration planner falls too far behind printing. To use this functionality, ReplicatorG 40r27 - Sailfish or later is needed. MakerWare and Desktop users can install the latest EEPROM maps which may be downloaded from the Sailfish Thing at thingiverse.com.

To enable, set non-zero values for deprime and uncheck the "Deprime on Travel" check box (RepG) or set the "Extruder Deprime On Travel"" setting to zero in MakerWare/Desktop.

ReplicatorG 40r28 - Sailfish

A new revision of ReplicatorG 40 - Sailfish is available. It is a download of the Sailfish Thing at thingiverse.com. The only new features in this revision are new options in the "Onboard Parameters" window accessed from the "Machine" menu. These new options are for controlling new features in Sailfish: namely those for auto-leveling and controlling "Deprime on Travel"

Other new features for all bots

  1. Jogging and homing now honor maximum feedrates stored in EEPROM. MBI decided around the time of their 5.2 firmware release to forego having the firmware impose maximum axial feedrates, leaving it to the gcode to X3G translation process to apply. However, this overlooked jogging done from the control panel as well as homing commands from both gcode and built in scripts.
  2. Rearranged the splash and version information screens to include a build date in year/month/day format. On Replicator-type printers (which have a 20 column display) the version and revision numbers are now displayed on the same line. The 16 column wide display on Thing-o-Matics is not as accommodating.
  3. Removed leading zeros from the display of integer values. E.g., "32C" instead of "032C".
  4. A minor performance improvement in the acceleration planner which also saves a little code space has been implemented. As an aside, the "max acceleration for normal moves" and "max acceleration for extruder only moves" are now ignored. They actually were only useful if you set them below the max per axial accelerations. If they were the same or larger, then one of the per axial accelerations would instead prevail. Since it is unlikely anyone was setting these below the per axial accelerations, they have been removed in order to save code space and improve performance.
  5. Removed support for the ReplicatorG 39 and earlier dualstrusion systems. No one should be using them anymore and this saves code space.

Replicators 1, 2, 2X, and clones

  1. Print statistics during a running print now show the estimated time left to complete the print. These estimates are based upon the "percentage complete" markers placed in the print file by your slicer. As such, their accuracy is only as good as the information provided by the slicer. To make room for this feature, tracking and display of the misnamed "line count" has been removed. (The "line count" is actually the count of S3G/X3G commands; that is, it was actually a "command count".) The S3G/X3G commands do not always map one-to-one to lines of gcode. For example, a single M6 gcode command generates one, two, or even three S3G/X3G commands.
  2. When heating an extruder for filament loading or unloading, the extruder's current and target temperatures are now displayed.
  3. Should your LCD display becomes garbled, you can reset it by pressing the right key. This works on all screens except for the Jog, Pause @ ZPos, and Profile Change Name screens. Those three screens use the right key for other actions.
  4. Under Utilities, there is now a submenu to display and change the toolhead offsets. This submenu only appears on the Replicator 1, Replicator 2X, and clones. It does not appear on the Replicator 2. With this built into the firmware, users upgrading to Sailfish now only need to use ReplicatorG to the download the firmware to the bot. Users can use the front panel to reset to factory defaults as well as check and set the home and toolhead offsets. Hopefully, this will make it a little easier for new users to follow the directions and have a successful experience switching to Sailfish.
  5. The RGB LED menu items have been removed from the LCD menus in order to save code space. Use the "Lighting"  tab in r27 or later of ReplicatorG 40 - Sailfish. Settings can also be done via MakerWare and Desktop.
  6. To aid new users, the leveling script now has a couple of extra screens providing directions. Just push the center key to skip on past each one.
  7. After homing, the leveling script would move to Z=10 without changing the X or Y position and then move to (X,Y,Z) = (0, 0, 0). For very thick build plates and a non-zero Z home offset, this could lead to the extruder hitting the build plate. Consequently, the leveling script has been changed to move to Z=10, then (0,0,10), and finally (0,0,0).
  8. More apt home offsets for the WanHao Duplicator 4 and 4X bots are provided in the WanHao specific builds. The home offset values were provided by Jetguy.
  9. The Sailfish sources now incorporate Jake Borden's code refactoring for supporting I2C displays including the Viki display, alternate UARTs for serial communications, and alternate keypads. For the I2C displays and alternate keypads, you must make your own Sailfish builds. If your bot has an ATmega 2560, then the alternate UART support is compiled in. The alternate UART support is experimental and aimed at advanced users who want to experiment with adding Bluetooth, network, or other communication paths to their bots.
  10. MBI's I2C code for RGB LED support was talking to the LEDs at the wrong data rate. Jake Borden spotted this bug and fixed it in Sailfish.
  11. A longstanding issue with Z Hold has been fixed. The issue only impacted printing over USB and likely was only seen on bots with heavy Z platforms. This issue also exists in MBI's firmware. If your Z platform would appear to slip and drop lower than it should while printing over USB, then you were likely impacted by this bug.
  12. Under some circumstances, printing from an SD card followed by printing over USB would then, at the end of the USB print, offer the "Print Another Copy" choice . If selected, it would print the SD card file previously printed. The choice of repeating the print should not have been offered when the USB print completed. This has been corrected. Note that it only happened under certain circumstances so you may never have seen this occur.
  13. Fixed a logic bug which could cause the estimated time remaining to not be displayed when prints reached the 1% mark in under one second of having been started.
  14. Fixed an issue whereby pre-heating might be turned off after loading or unloading filament.
  15. If mid print an extruder was turned off -- its temperature set to 0 -- then the running print statistics erroneously no longer showed the accumulated filament usage past the point at which the extruder was deactivated. The totals accumulated in the filament odometers once the print was finished were, however, correct; it was only the running display mid print which ceased to update further. This has been fixed.
  16. When an extruder is disabled (i.e., not present), the firmware no longer manages its heatsink cooling fan. This has been done to aid users who wish to experiment with using the fan's control electronics for other purposes.

Thing-o-Matics and Cupcakes

There's no printer-specific new features or bug fixes for these bots. These bot did receive the general new features listed above. And, since the firmware is very mature, no new bugs have been discovered.