The Jetty Firmware referenced in this manual was originally released on Thingiverse as Thing 17855.
Table of Contents
This document provides directions on how to setup the Jetty Firmware on a Thing-o-Matic (with or without a Gen 4 LCD Interface), a Cupcake (with 3G5D Shield or Ugly Cable Hack), or other RepRaps using either Gen 4 or Gen 3 electronics.
It is assumed that you have already downloaded the Jetty Firmware to your bot. If you have not done so, then please refer to the Install Guide for directions. If you are using version 3.4 or earlier of the Jetty Firmware, please use v3.4 Setup Guide. Finally, for a usage manual, please see the Jetty Firmware Manual.
Note: ReplicatorG 39 or later is recommended. If you are using an earlier version of ReplicatorG, then you will need to follow the steps on obtaining machine definition files from Step 2 of the v3.4 Setup Guide. ReplicatorG 39 and later includes those files.
While the images shown in this document assumes that you are starting from a fresh ReplicatorG installation, that is not necessary.
Step 1: Speeding up your machine: raising the speed limits
Before slicing and building models, you need to tell ReplicatorG to use a different machine definition. Just as you might tell it to use a definition for a bot with an automated build platform or two extruder heads, you need to tell ReplicatorG to use a definition for a bot with acceleration. To do this, launch ReplicatorG and then, using the "Machine Type (Driver)" item of the "Machine" menu, select the appropriate accelerated machine type. For example, the following image shows an accelerated Thing-o-Matic with a HBP and Mk7 being selected,
If you do not see any of these accelerated machine definitions, then make sure that you are running ReplicatorG 39 or later. If you are using an earlier version, then you will need to download and install the accelerated machine definitions as per Step 2 of the v3.4 Setup Guide and then restart ReplicatorG.
The accelerated machine definitions increase the maximum feed rates for the machine. The unaccelerated machine definitions impose lower maximum feed rates.
Step 2: Speeding up your builds: an accelerated Skeinforge profile
This step is optional if you use Print-o-Matic: Print-o-Matic will automatically set the necessary Speed plugin settings described below. The Fill plugin setting is a recommendation and not required for accelerated printing.
Within ReplicatorG, select the "Edit Base Profiles…" sub-menu of the "GCode" menu item. In the resulting pop-up window, select the Skeinforge profile you wish to modify for acceleration. Then click the "Duplicate" button and enter a name for the new profile. For example, "SF-50-Thingomatic-HBP Accelerated". Once you have typed the new name, click the "OK" button. You will then be presented with Skeinforge's profile editing windows.
- In the "Fill" plugin, near the bottom of the page, change the "Thread Sequence Choice" to "Perimeter>Loops>Infill". This will give a better finish to the exterior of your prints.
- In the "Speed" plugin, set the slicing feed rate in the "Feed Rate (mm/s)" field. If using Volumetric 5D, then set the flow rate to match.
- Also within the "Speed" plugin, set a travel feed rate in the "Travel Feed Rate (mm/s)" field. The travel feed rate is typically the same or larger than the feed rate. The travel feed rate is how fast the build platform will move when no filament is being extruded.
- If you are using Skeinforge 40 or later, in the "Speed" plugin, you may also wish to change the "Maximum Z Feed Rate (mm/s)" setting. Note that many bots cannot run their Z axis much faster than 40 or 50 mm/s without skipping Z steps. It is best to use a conservative value — a value under 20 mm/s — for this setting. It will not slow your printing down appreciably unless you are printing specialized gcode which is constantly changing the z position (e.g., a spiral vase).
After making the above changes, select the "Save and Close" item of the "File" menu. You now have a new Skeinforge profile.
When slicing (building), select this new profile in the "Base Profile" drop-down list of the "Generate GCode" pop-up window.
Step 3: Installing altshell.py (optional)
When printing "final" quality parts using acceleration, the best surface finish is often achieved by using a slower feed rate whilst printing the part's exterior. This can be accomplished one of two ways,
- In the Skeinforge Speed plugin, set the perimeter rate multipliers to a value less than 1.0; e.g., try 0.5 to slow the feed rate down to half for the exterior. Disable the Altshell plugin when doing this.
- Enable the Altshell plugin. For the Jetty Firmware, make sure that the "use M320/M321" box is not checked. Ensure that the Perimeter factors are set to 1.0 in the Speed plugin.
Either method works well, although the Altshell plugin often gives better results at the cost of slightly slower builds. Altshell works by disabling acceleration whilst printing the exterior. With perimeter slowdown, acceleration remains enabled while printing the shell; however, the feed rate is reduced.
If your version of ReplicatorG does not include the Skeinforge Altshell plugin, then you may wish to manually install that plugin now. See Jetty Firmware -- Altshell Install for directions on installing it.
Step 4: Configuring firmware settings
Step 4a: Acceleration settings
For your first accelerated print, you should not need to change the acceleration parameters: by default, acceleration is enabled. By one of two means, you can confirm that acceleration is enabled:
- From ReplicatorG 39 or later, connect to the machine over USB, and then select "Onboard Preferences…" from the "Machine" menu item. Then, click on the "Acceleration" tab and check that the "Acceleration enabled" checkbox is checked,
Also, check the "Acceleration (Advanced)" tab and ensure that the "Acceleration planner enabled" box is checked, and that the "Acceleration strangled" box is not checked,
- Alternatively, if you have a Gen 4 LCD Interface, you can check that accelerated printing is enabled by ensuring that the BAR LED on the interface is lit. That's the bottom left LED. If it is not lit, then navigate through the Interface's menu items to the "Build Settings" menu item and select it. Then select the "Acceleration" item, and then select the "Stepper Driver" item. Finally, select "On - Planner" and press "OK". The firmware will do a soft reset after which accelerated printing should be enabled.
Step 4b: Other firmware settings
If you have a machine other than a Thing-o-Matic or 3G5D Gen3 Cupcake with stock stepper drivers and motors, then you may need to change the following firmware settings,
- Build Settings / Acceleration / Extdr. Steps/mm — This sets the number of stepper motor steps per millimeter of extruded noodle. It is not the same value as the "stepspermm" or "scale" found in the ReplicatorG machine definition (.xml file).
- Maximum Feed Rates — The maximum per axis feed rates.
- Axis Steps:mm — You need to set the correct values for each of the four axes: X, Y, Z, and A (extruder).
All of these parameters must be set to values appropriate to your machine before attempting any printing. The firmware's default values are appropriate for "standard" Thing-o-Matics and "standard" Cupcakes with either the 3G5D shield or the "ugly cable hack". If your machine has been upgraded with Pololu stepper drivers, different stepper motors, different idler pulleys, or other upgrades which change the steps per millimeter for any axis, then the firmware's default settings will not be correct for your bot.
You may change the first two parameter sets via
- The "Onboard Preferences" window accessed from ReplicatorG's "Machine" menu. See the two acceleration tabs.
- If you have a Gen 4 LCD Interface, then you can inspect and change those settings using the Interface.
The last parameter set, the axis steps per millimeter, can presently only be changed via the Gen 4 LCD interface or by using custom mcodes as described at Setting Parameters without a Gen 4 Interface.
Why does the firmware need to know the steps per millimeter values? Aren't they already in my ReplicatorG machine definition? Yes, they are already in the machine definition and ReplicatorG uses that information to translate the gcode instructions from units of millimeters to steps. However, the acceleration firmware also needs these values so that it can convert its acceleration parameters which are also in units of millimeters (e.g., millimeters per second-squared). The acceleration firmware could instead use units of steps but that is not only less human-friendly, but also makes it difficult to share and discuss settings for the acceleration parameters.
Step 5: Getting ready for your first accelerated print
You're almost ready. However, it's best to ensure that your extruder is mechanically ready to handle fast feed rates. From either ReplicatorG's machine control panel or a Gen 4 LCD Interface, try some test extrusions at fast speeds. Of course, you first need to get your extruder up to temperature!
If using a Gen 4 LCD Interface, use the "Preheat" menu item to start heating up the extruder. Use the "Extrude" menu item to then do some test extrusions. With that menu item, you can adjust the speed of the extruder as well as the duration of the extrude operation.
If your extruder will not handle faster feed rates — if it skips steps or jams — you should service it and perhaps tune it's plunger a bit. It may simply need the teeth of the feed gear cleaned.
Step 6: First accelerated print
For your first print, slice an object at a moderate, but fast feed rate. For example 50 mm/s. Before sending the gcode to the bot or an SD card, make sure that you have selected an accelerated machine in ReplicatorG's "Machine Type (Driver)" sub-menu of the "Machine" menu. Then print it.
The maximum feed rates in the machine definition (driver) will limit the feed rates sent to the bot or placed in the file on the SD card. Furthermore, the per-axis maximum feed rates set in the firmware's acceleration parameters will be applied each time the object is printed. The net effect will be that the smaller of the per-axis limits will always prevail: whichever is smaller from the machine definition or the firmware's acceleration settings. As such, it's generally easiest to have larger limits in the machine definition and then use the firmware's settings to impose your actual operating limits. With that approach, it is not necessary to rewrite the SD card every time you wish to change the limits: just change the firmware's settings.
If your printing doesn't appear to be accelerated, then either there's an issue with the machine definition and ReplicatorG is enforcing too low of maximum feed rates, or acceleration is not enabled in the firmware. Ensure that acceleration is enabled as per the directions in Step 4a.
After printing a few objects, you may decide you wish to tune your acceleration settings further, see the tuning guide, Jetty Firmware - Tuning Acceleration
If you encounter problems, please see the Sailfish Usage and Troubleshooting FAQ.