Sailfish 7.3 & 4.3 Release Notes

5 March 2013

The following are release notes for

  • Sailfish 7.3 for Replicator 1s & 2s
  • Sailfish 4.3 for Thing-o-Matics & Cupcakes
  • ReplicatorG 40r10 - Sailfish

As per the Sailfish Installation Guide, the Sailfish firmware may be obtained using ReplicatorG and pointing the download URL at

The download URL is set via the Advanced section of RepG's Preferences menu. Distributions of ReplicatorG 40r10 - Sailfish can be found as downloads of Thingiverse Thing 32084.

New for all machines

The following are new in Sailfish across all machines,

  1. Change temperature: It is now possible to adjust the extruder temperature while printing.
  2. SD card data verification: When printing from an SD card, the integrity of the SD card's raw data is checked for errors and automatically corrected if possible. No more failed prints owing to electrical noise or dirty SD card contacts.
  3. Improved SD card error handling: Graceful handling of non-recoverable SD card errors with more informative error messages.
  4. ReplicatorG can handle larger models: For Windows and OS X systems, ReplicatorG is now packaged such that it can handle larger models.
  5. ReplicatorG fixes: ReplicatorG in general — not just the Sailfish variant — had some bugs associated with the application of roundoff accumulation. See ReplicatorG 40r10 - Sailfish for details.

Additional new features specific to individual bots are presented in the next two sections.

New for the Replicator 1 and 2

For Replicators, a number of new features have been introduced which have long existed for Thing-o-Matics running Sailfish.

  1. Print statistics: At the end of each print, rather than returning to the top-level menu a screen is instead displayed which shows the total print time and filament used for the print. Note that this new feature is in addition to the existing statistics which can be displayed while printing and, through the Utilities menu, after a print. This same new screen provides for the new feature listed next.
  2. Print another copy: Upon completion of a successful print, you can elect to print another copy.
  3. Cooling fan: While printing, the cooling fan may be turned on or off. This feature is provided for all Replicators and not just the Replicator 2.
  4. Jogging while paused: While paused, the XY gantry may be jogged about. This allows you to move the extruder to an alternate location of choice when changing filament. You do not need to move the gantry back when you are done: when the print is resumed, it doesn't matter where you left the gantry. Just be sure to not jog the gantry into the end stops.
  5. Cold Pause: Pause with all heaters and LEDs turned off and the extruder stepper motors disabled. The latter is done to prevent stepper motor heat from softening any extruder modifications printed in PLA which softens at lower temperatures than ABS. Note that Cold Pause turns the heaters off even when "Heat During Pause" is enabled.
  6. Setting Pause @ ZPos height: Normally, if you just hold the "up" or "down" buttons long enough, the rate of height change increases considerably. Now you may also press the "right" button to change from increments of 0.01 mm to 0.1 mm, and with another press, to 1.0 mm. An additional press cycles back to increments of 0.01 mm.

New for Thing-o-Matics and Cupcakes

Although ReplicatorG 39 or later is required to use Sailfish, this release of Sailfish for Thing-o-Matics and Cupcakes will allow itself to be used with ReplicatorG 29r2. This because ReplicatorG 29r2 is the last release of ReplicatorG which can change the tool index of an Extruder Controller, a necessary step in building a Thing-o-Matic with dual extruders.

New in ReplicatorG 40r10 - Sailfish

  1. Manipulate larger models: Previously, ReplicatorG was packaged to only allow up to 1 GB of "virtual memory" (VM) usage on Macs and 750 MB on Windows. This limited the size of models and gcode files which could be handled. In this release, ReplicatorG is packaged to allow up to 2 GB of VM on Macs and 1.4 GB on Windows machines. Linux users may simply edit the replicatorg file and change the Java command to use the -Xmx switch, specifying the desired maximum heap size. Note that ReplicatorG is still being provided as a 32bit Java program and the largest values for each operating system has been selected.
  2. X3G default: The default file type when writing SD card files is now X3G. To write an S3G file, use the pull down menu to select that file type. MBI has designated X3G as the correct file type and extension for files containing accelerated move commands. In contrast, S3G files typically do not contain accelerated move commands. MBI introduced this distinction in ReplicatorG 0040.
  3. G92 bug fix: ReplicatorG appears to have had a bug for some time in which the G92 position information placed in the resulting S3G/X3G command may be off. The position output would often not agree with the actual extruder position and could be off by a step in X, Y, Z, or any of the three. This would, in turn, lead to prints which gradually skewed with increasing print height.
  4. Z oscillation bug fix: This is another bug which ReplicatorG may have had for some time. The S3G/X3G motion commands it would produce might be off by a step in X, Y, Z, or any combination of the three. This is because ReplicatorG was incorrectly applying roundoff accumulation to absolute moves. Such handling should only be done for relative moves. Many users noticed this effect in seeing S3G/X3G commands which would move the Z stepper motor up and down by a single step while printing a layer which should have had a constant Z height.

Change temperature while printing

While printing, you can increase or decrease the active extruder's temperature. This is done by accessing the same menu list that contains the pause, change speed, and other options.

Note that the current heater control system — a "PID" based control system — has considerable undershoot when the temperature is decreased and appears to be tuned more towards preventing overshoot rather than undershoot. If you adjust a temperature down by 5C, it may initially drop by 10 or even 15C before starting to rise and then settle on the desired target temperature. Do not panic! Instead, when lowering the temperature, consider doing it only a degree at a time. Or, pause the print, then lower the temperature. If you also have "Heat During Pause" enabled, then wait a bit before resuming the print (e.g., return to the print monitor mode and observe the temperature and resume after the new target temperature has been achieved).

SD card data checking

In general, SD cards are quite reliable. An important component of this reliability is support within SD cards to provide error detection when transferring raw data from the SD card to the computer retrieving data from the card. Unfortunately, the SD card library used by MBI does not allow use of this feature. As such, data transmission errors go unchecked which is a problem in electrically noisy environments such as your bot. (Especially so with the Replicator 1.)

Sailfish now provides support for SD card data checking: transmission of raw data from the SD card can be checked for errors using a Cyclic Redundancy Check (CRC). When an error is detected, Sailfish requests a retransmit of the data. For a given block of data, up to five retransmissions may be attempted. If it proves impossible to transmit the block without errors, then the print is cancelled and the user is told that a SD card error has occurred.

By default, this feature is disabled. Enable it either through the LCD display or from ReplicatorG 40r10 - Sailfish via the Machine > Onboard Parameters menu.

Improved SD card error handling

Ever start a print and then have it mysteriously stop part way through? But the bot's controls behaved normally — the bot was not hung nor did anything else seem wrong with it. It's just that the heaters were still on and the extruder was not moved away from the platform. If this has happened to you, it was likely an error reading from the SD card. The MBI firmware for Thing-o-Matics and Cupcakes would treat read errors as though the print was finished normally. For Replicators, it would at the end of a print see if the expected number of bytes had been read from the SD card and, if they had not been, then it would show a generic error message which did not provide much in the way of useful information.

The firmware now checks for errors while reading SD card data. If SD card data checking is enabled, some errors will silently be corrected, preventing your print from failing. However, in the event of unrecoverable errors, the build will gracefully be cancelled, the heaters turned off, the platform cleared, stepper motors disabled, and an error message indicating the nature of the problem displayed.