Sailfish 7.5 & 4.5 Release Notes

9 June 2013

Sailfish 7.5 & 4.5 Release Notes

  • Sailfish 7.5 for Replicator 1, 2, & 2X
  • Sailfish 4.5 for Thing-o-Matics & Cupcakes
  • ReplicatorG 40r22 - 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. Platform specific distributions of ReplicatorG 40r22 - Sailfish can be found as downloads of Thingiverse Thing 32084.

New for all machines

It is important that when upgrading to Sailfish 4.5 and 7.5, that you must also upgrade to ReplicatorG 40r22 - Sailfish or later. Earlier versions of ReplicatorG will not correctly handle error responses generated by Sailfish 4.5 and 7.5. Owing to what appear to be bugs in MakerWare, you presently cannot print over USB to Sailfish 4.5 or 7.5 from MakerWare. MBI has been informed of the problem; it appears as though MakerWare does not properly handle some or all S3G error responses from a bot with which it is communicating.

This release of Sailfish is primarily intended to improve some longstanding issues associated with USB communications. We stress "improve" since there will always be significant concerns and safety issues when printing over USB. As such, printing over USB is strongly discouraged not only on grounds of reliability but, more importantly, safety.

MBI's firmwares have not been sending back any response, either positive or negative, for commands received in error. That violates MBI's own S3G specification, S3G Protocol: Normal Communication, which states (emphasis added), "If the slave device [bot] receives the packet [s3g command], it MUST respond with a single packet, containing a response code". Sailfish inherited this behavior from MBI's firmware. Not returning an error response for commands received in error leads to ReplicatorG and MakerWare continuing a print over USB even though commands have not been executed by the bot. For example, a command to wait for the heaters to reach temperature or a command at the end of a print to turn the heaters off can be dropped without ReplicatorG or MakerWare knowing.

To improve the reliability of USB communications, Sailfish now sends back error responses when packets are received in error. Further, ReplicatorG 40r22 - Sailfish and later is capable of handling these errors, resending commands where appropriate and cancelling the print when deemed necessary. However, this is not an entire fix for USB communications as the error checking used by S3G is not perfect and admits the possibility of incorrect packets being received without the bot being able to detect the error. Moreover, problems such as the USB cable failing or the host going to sleep can leave the bot idle with heaters turned on until the bot's firmware idle timer turns them off.

In addition to the USB changes which apply to all bots, the following features and changes apply to some or all bots. Most of these additional changes do not apply to Thing-o-Matics and Cupcakes since, unlike Replicators, the firmware for their Extruder Controllers is not part of Sailfish.

  1. Heaters now automatically turned off at the end of a print: For all bots, at the end of a print with a "M73 P100" command, all heaters will be turned off. Subsequent commands can re-enable heaters and as such, custom end gcode files should avoid setting non-zero temperatures after that command. Moreover, end gcode files should continue to explicitly turn heaters off and not rely upon this special behavior of the "M73 P100" command.
  2. Tighter PID control: A coding choice made by MBI a couple of years ago introduced roughly +/- 1.0C of input control noise. This has been corrected for all Replicators and results in better temperature control. This change does not apply to Thing-o-Matics or Cupcakes.
  3. Less temperature swing when changing temperatures: When the temperature change menu is used whilst printing, the temperature will not swing as much as long as the new temperature setpoint is within 10C of the prior setpoint. This change does not apply to Thing-o-Matics or Cupcakes.
  4. New max temperatures: Extruder temperatures cannot be set in excess of 280C and build platform temperatures cannot be set in excess of 130C. This change does not apply to Thing-o-Matics or Cupcakes.
  5. Thermocouple fixes: MBI's thermocouple reading code for the Replicator 2 and 2X has errors and generates false heater errors for extruder temperatures in excess of 240C + ambient (e.g., when the ambient temperature is 20C, a false heater error is generated for temperatures above 260C). It appears that MBI will be releasing equivalent fixes in their next firmware update.
  6. .x3g vs. .X3G: On all Replicators, the firmware accepts the .x3g and .s3g file extensions in any case: upper, lower, or mixed. On Thing-o-Matics and Cupcakes, that has always been the case. This facilitates usage with devices such as Toshiba's FlashAir WiFi-enabled SD card. See Jake Bordens' write up at
  7. Replicator 2X slicing profile: A Replicator 2X slicing profile has been added to ReplicatorG. This profile includes support for dualstrusion and a heated build platform.
  8. Replicator 2 HBP machine definition: In anticipation of Bottleworks' Heated Build Platform (HBP) for the Replicator 2, a machine definition has been added to ReplicatorG for a Replicator 2 equipped with a HBP.

Other miscellaneous changes

  1. The "Reset Settings" item of the LCD display's Utilities menu now performs a reset to factory defaults. Previously, it only reset settings which could themselves be set through the bot's LCD display. That was in keeping with how MBI originally implemented "Reset Settings". However, MBI since changed it to perform a full reset to factory defaults of all bot settings and not just those which could be set via the LCD display. Sailfish is now following suit. This applies to all Replicators. No such menu item is present on Thing-o-Matics.
  2. As a safety precaution, changes to the digital potentiometer (digipot) settings are read back to ensure that the change was correctly received by the digipot. This to prevent the possibility of the stepper motor current not be correctly changed during initial warming of the heaters.
  3. The splash screen for a Replicator 2X now indicates that the firmware is for a 2X. Previously, the same splash screen was used for both the Replicator 2 and 2X.
  4. The tool count now defaults to 2 for the Replicator 2X.