Sailfish Firmware – Installation Guide
The Sailfish Firmware referenced in this manual can be found on Thingiverse as Thing 32084.
This document provides directions on how to install Sailfish Firmware on a Replicator 1, Replicator 2, Replicator 2X, Thing-O-Matic, Cupcake, or other RepRaps using either Gen 4 or Gen 3 electronics. If you are attempting to install v3.5 of the Jetty Firmware, a predecessor to Sailfish, please see the Jetty Firmware Setup Guide.
Sailfish requires use of “ReplicatorG 40 – Sailfish” or later. This version of ReplicatorG may be obtained as a download file from Thingiverse Thing 32084.
The Sailfish firmware described here runs on MightyBoard, Gen 4 and Gen 3 electronics. For all Replicators, both single and dual extrusion is supported.
- The Replicator 2 and 2X: MakerBot MightyBoard rev G or later electronics with one or two extruders.
- The Replicator 1: MakerBot MightyBoard rev E or later electronics with one or two extruders.
- Thing-O-Matics: a MakerBot v2.X motherboard, a Makerbot v3.6 Extruder Controller, Makerbot v3.3 Stepper Drivers, a stepper-based extruder, and an Arduino Mega or Arduino Mega 2560. Other than the extruder, these are all “stock” Thing-o-Matic electronics; i.e., Gen 4 electronics. Stepper-based extruders include the Mk6, Mk6+, Mk7, and Mk8. Other electronics and extruders may or may not work with the Sailfish firmware.
- Cupcakes with Gen 4 electronics: As per the above.
- EXPERIMENTAL – Cupcakes with Gen 3 electronics: A 3G5D Shield or the “Ugly Cable Hack” is required in order to control a stepper-based extruder. Additionally, the remaining complement of Gen 3 electronics: RepRap Motherboard v1.2, Plastruder Extruder Controller, and v2.3 or later stepper drivers.
Thing-O-Matic and Cupcake operators: please note that as of Sailfish 7.4 and 4.4, Sailfish requires the use of Volumetric 5D. MakerWare, Skeinforge 50, slice3r, and KISSlicer all produce Volumetric 5D gcode.
For Replicator operators, note that your out-of-the-box experience with MakerWare assumed use of Volumetric 5D: you were using it even if you did not realize it. Consequently, there’s no change to your usage here: this only impacts Thing-o-Matic and Cupcake operators who may have previously used RPM-based gcode with older versions of the Skeinforge slicing engine.
This step applies to Replicator operators running Makerbot’s 7.0 or later firmware and upgrading to Sailfish.
If you are currently running Makerbot’s 7.0 or later firmware and you have a non-zero Z Home Position (Z Home Offset), then record that value. You must use MakerWare to read that value from the machine’s onboard parameters (EEPROM). You will need to restore it in Sailfish after you have installed Sailfish. Failure to do this can lead to build plate or nozzle damage. Again, this is only applicable to your bot if you use a non-zero Z Home Position. If you have dual extruders, then you may also want to note your X and Y toolhead offsets. Again, you must use MakerWare to read these values; ReplicatorG will not correctly read them owing to changes MBI has made in their 7.x firmware. You will want to set this in Sailfish as well once Sailfish has been installed.
Before proceeding, if you are using a Thing-o-Matic or Cupcake then you must know the type of motherboard that you have. For Gen 4 electronics (Thing-O-Matics and upgraded Cupcakes), this will be an Arduino Mega or Arduino Mega 2560 and will appear in ReplicatorG’s Firmware Upgrade window as “MakerBot Motherboard v2.X (Gen4)” or “MakerBot Motherboard v2.X (Gen4) with Mega 2560”. For Gen 3 electronics (Cupcakes), it’ll be a RepRap Motherboard v1.X and will appear in ReplicatorG as “RepRap Motherboard v1.X (Gen3)”.
If you don’t know the Cupcake or Thing-o-Matic board type, stop now and inspect your bot to find out the type of board you have installed. For Thing-O-Matics, you will need to open up the bottom to inspect the board. You may even have to remove the Gen 4 shield (Motherboard v2.X) from the Arduino board. If that is the case, then carefully remove it, lifting straight up. When re-attaching it, be careful to not bend any of the pins.
The Conveyor component of MakerWare takes control of the USB connection to your bot and prevents ReplicatorG from communicating with the bot. Conveyor remains running in the background even if MakerWare is not running. You must stop Conveyor before updating your firmware and using ReplicatorG to communicate with your bot. Note that you can continue to use MakerWare to manipulate STL files and generate gcode, even when Conveyor is stopped.
To stop Conveyor, launch MakerWare. From MakerWare’s “Services” menu, select the “Stop Background Service” item. To restart Conveyor, use the “Services” menu’s “Restart Background Service” item.
The Sailfish firmware is a derivative of version 3.1 of the motherboard firmware. Consequently, you must first ensure that your Thing-o-Matic’s Extruder Controller (EC) is updated to v3.1 firmware. Thing-O-Matic owners should complete this step before beginning the next step.
This step is not necessary for Cupcakes using Gen 3 electronics and the 3G5D shield. However, directions on upgrading your Plastruder firmware may be found at the MakerBot wiki archive.
Start ReplicatorG and and from the ReplicatorG menu, select “Preferences”. Click the “Advanced” button. Change the “Firmware update URL” field from:
Then click “Close”.
After a few minutes, you will see something written in the bottom log region of ReplicatorG indicating the firmware has been downloaded; e.g.,
3495 bytes written to ~/.replicatorg/firmware.xml 351571 bytes written to ~/.replicatorg/fithermware/Mighty-mb40-Sailfish-v6.2.0-r642.hex 345737 bytes written to ~/.replicatorg/firmware/MB-mb24-Jetty-v3.1-3.5-r507.hex 328224 bytes written to ~/.replicatorg/firmware/MB-mb24-Sailfish-v4.0-r642.hex 345716 bytes written to ~/.replicatorg/firmware/MB-mb24-2560-Jetty-v3.1-3.5-r507.hex 328203 bytes written to ~/.replicatorg/firmware/MB-mb24-2560-Sailfish-v4.0-r642.hex 159154 bytes written to ~/.replicatorg/firmware/MB-rrmbv12-5DShield-Jetty-v3.1-3.5-r634.hex
If you don’t see this message or something similar after a few minutes, restart ReplicatorG.
First, a note on version numbers. On Replicator series printers, the Sailfish version numbers begin at 6.2. As of this writing, 7.4 is the current version of Sailfish for The Replicator 1, 2, and 2X. On Thing-O-Matic and Cupcake printers, Sailfish version numbers begin at 4.0, and, as of this writing, 4.4 is the current version.
Connect your bot’s USB cable to both the bot and the computer you will be performing the upgrade from. Next, power your bot on. But do not connect from RepG to the bot. Check the “Connection (Serial Port)” sub-menu of ReplicatorG’s “Machine” menu. Make sure that you see the USB port for your bot listed. If it does not appear, then select the “Rescan serial ports” item of that sub-menu. You cannot proceed until your bot’s serial port appears. Again, do not actually connect from RepG to the bot: the firmware upload process itself will automatically perform that step.
From ReplicatorG select the “Upload New Firmware” sub-menu of the “Machine” menu. You’ll see different boards listed. The suitable choice will be one of,
- Makerbot Replicator 2X — Use for the Replicator 2X
- MakerBot Replicator 2 — Use for Replicator 2
- Makerbot Replicator 1 Single & Dual — Use for all Replicator 1s
- Makerbot Replicator 1 with Mega 2560 — Use for customized Replicator 1s with ATmega 2560s
- MakerBot Motherboard v2.X (Gen4) — Use for the Arduino Mega
- MakerBot Motherboard v2.X (Gen4) with Mega 2560
- 3G 5D Shield for 3G Hardware — Use for Cupcakes with Gen3 electronics
Select the correct one for your bot and then click “Next”.
You should then see firmware listed. In the following picture you see just 6.2; however, you may see additional versions. Select the latest version. For a Replicator, the screen might appear as
For a Thing-O-Matic,
Click “Next” and then select the USB port your bot is connected to (it’s normally the first item). Again, click “Next”:
If your bot is a Replicator 2 or 2X, you will not be instructed to press a reset button — it is not needed for those bots. However, if you have a Replicator 1, Thing-o-Matic, or Cupcake then you do need to press its reset button. Press the reset button a fraction of a second before you click the “Upload” button on your computer screen. You may have to try this a few times. On a Thing-O-Matic with a Gen 4 LCD interface, when you have it correct, you’ll see the debug light rapidly flash whilst the upload takes place.
When the upload has finished, restart ReplicatorG and ensure that you can connect to your bot. The connect should happen automatically if you had previously checked the “Automatically connect to machine at startup” box in ReplicatorG’s preference window.
Note some machines may need the bot to be powered off to upgrade; some require electronics to be disconnected. This is a standard upgrade: whatever worked last time you installed firmware is what you should do here.
Once the firmware has been uploaded, your bot should perform a software reset, thereby rebooting itself. Connect to your bot over the USB cable from ReplicatorG. You should see in the activity log window at the bottom of ReplicatorG that the connection is successful and the reported firmware is the new version. There will also be a report of the Extruder Controller firmware. The Extruder Controller firmware will still be an older version such as 3.1. That is expected and as it should be.
You’re now ready to setup “ReplicatorG 40 – Sailfish” and your Makerbot for accelerated printing. Proceed to the Sailfish Firmware Setup Guide.