Jetty Firmware - Setup Guide V3.4

This document is a setup guide for versions 3.4 and prior of the Jetty Firmware. For the current version of the Jetty Firmware, please see Jetty Firmware - Setup Guide.

Introduction

This document provides directions on how to setup the Jetty Firmware v3.4 and earlier on a Thing-o-Matic (with or without a Gen 4 LCD Interface), Cupcake (with 3G5D Shield or Ugly Cable Hack) and other RepRaps using either Gen 4 or Gen 3 electronics.

This document further assumes that you are starting from a fresh ReplicatorG installation, with minimal changes to defaults. ReplicatorG 29r2 or later is required.

5D (only for those using it)

Some users are using 5D settings in ReplicatorG: the Skeinforge "Dimension" plugin combined with the "makerbot4g" driver. If you have changed your settings previously to 5D and are experience problems, it’s suggested that you disable the Dimension plugin and switch your extruder back to the normal direction (i.e., not reversed). After making this reversion, check that you can still print before proceeding.

If you haven’t configured 5D or don’t know what it is, then ignore this. Note that 5D is not the same as the 3G5D Shield.

If you do wish to continue using 5D, note that as of ReplicatorG 34 there has been a fork producing "ReplicatorG for 5D". See the ReplicatorG site for further information.

Step 1: Install the firmware

Before proceeding you should know the motherboard type you have. For Gen 4 electronics (Thing-o-Matics, or upgraded Cupcakes), this will be an Arduino Mega or Arduino Mega 2560. For Gen 3 electronics (Cupcakes), it’ll be a 3G5D Shield or Ugly Cable Hack.

If you don’t know the 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 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.

Updating the Extruder Controller firmware

The Jetty Firmware is a derivative of version 3.1 of the Makerbot's Thing-o-Matic motherboard firmware. Consequently, you must first ensure that your Thing-o-Matic's Extruder Controller (EC) is updated to v3.1 firmware. You can do this with ReplicatorG as per the directions found at

Thing-o-Matic EC

Thing-o-Matic owners 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:

Plastruder Firmware Update

Obtaining the Jetty Firmware

Start ReplicatorG and from the ReplicatorG menu, select “Preferences”. Click the “Advanced” button. Change “Firmware update URL” field from:

http://firmware.makerbot.com/firmware.xml

to

http://jettyfirmware.yolasite.com/resources/release/firmware.xml

Then click “Close”.

flickr:6948723754

After a few minutes, you will see something written in the bottom log region of ReplicatorG indicating the firmware has been downloaded; e.g.,

356062 bytes written to MB-mb24-2560-Jetty-v3.1-3.2z-r336.hex
169230 bytes written to MB-rrmbv12-5DShield-Jetty-v3.1-3.2z-r336.hex

If you don’t see this message after a few minutes, restart ReplicatorG.

Installing the Jetty Firmware

Connect your bot via USB, and then power your bot on. 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.

From ReplicatorG select the "Upload New Firmware" sub-menu of the “Machine” menu. You’ll see three boards listed. Select the correct one for your bot and then click "Next". You should then see firmware listed. In the following picture you see 3.2z; however, you likely will see even newer firmware versions.

flickr:6948723758

Click "Next" and then select the USB port your bot is connected to (it’s normally the first item). Again, click "Next":

flickr:6948723760

Now press the reset button on your bot a fraction of a second before you click the “Upload” button on your computer screen. You may have to try this a few times, but 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 the same you should do here.

Step 2: Speeding up your machine driver (.xml file)

While you can slice your models at faster feed rates, the actual instructions sent to your bot will be limited by upper bounds set in ReplicatorG's machine "driver" definitions for your bot. The upper bounds in the .xml machine driver definition files provided with ReplicatorG are too small for accelerated printing. As such, you will want new machine driver definitions with larger bounds.

Machine definitions suitable for accelerated printing are contained in the three files

  • thingomatic-accelerated.xml
  • 3G-5D-(RPM)-accelerated.xml
  • 3G-5D-accelerated.xml

which may be downloaded as the file accelerated-machines.zip from Thing 17855. Once they have been downloaded, place them into the directory

  • Mac (OS X): ~/.replicatorg/machines/
  • Linux: ~/.replicatorg/machines/
  • Windows: C:\Documents and Settings\your-account\.replicatorg\machines\

Note that the machines subdirectory likely does not exist. That's okay: simply create it. However, be sure to use the exact name machines, all lowercase.

Next restart ReplicatorG and from the "Machine Type (Driver)" sub-menu of the
"Machine" menu, select the appropriate accelerated driver. The accelerated choices all have names ending with "(Accelerated)".

If you want to make adjustments to the maximum feed rates, note that in the .xml files they are expressed in units of millimeters per minute. If you plan to be printing at accelerated feed rates of 100 mm/s, then you will need to use maximum feed rates of at least 6000 in the .xml files. Note that you may want travel rates which are even faster so take them into account as well should you choose to adjust the values in the supplied .xml files.

Note: If you're a Mac user, it's likely that the .replicatorg folder is hidden. To view hidden files in finder, please follow the instructions here,

[http://www.mikesel.info/show-hidden-files-mac-os-x-10-7-lion/]

Step 3: Setting up a new accelerated Skeinforge Profile

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-35-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.

  1. 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.
  2. In the "Speed" plugin, set the slicing feed rate in the "Feed Rate (mm/s)" field.
  3. 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.
  4. 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 three 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 4: Installing altshell.py (optional)

The optional "Altshell" plugin for Skeinforge may be used to generate gcode which will give an exterior shell that has none of the blemishes which might be caused by accelerated printing. When using the Altshell plugin with the Jetty Firmware, ensure that the "use M320/M321" box is not checked.

The "Altshell" plugin may be downloaded as the file altshell-plugin.zip from Thing 17855. The plugin is a single text file entitled altshell.py. Also included in the .zip file are replacement extrusion-NN.py files where NN is a the Skeinforge version number (e.g., 35). Installation directions, repeated below, are provided towards the top of the altshell.py file.

If you are on Mac or Linux, we've included an install.sh file written by Aaron Ciuffo which you can run by typing:

chmod u+x install.sh
./install.sh

Alternatively, you can follow these instructions to install manually:

First, locate the plugin directory for the version of Skeinforge you are using. This is a relatively deep directory tree. If the version of Skeinforge is NN (e.g, "35", "47", etc.) and the version of ReplicatorG is XXXX (e.g., "0034"), then the path to the directory will be

  • Mac (RepG 33 and later): /Applications/ReplicatorG.app/Contents/Resources/skein_engines/skeinforge-NN/skeinforge_application/skeinforge_plugins/craft_plugins/
  • Mac (RepG 29 and earlier): /Applications/replicatorg/skein_engines/skeinforge-NN/skeinforge_application/skeinforge_plugins/craft_plugins/
  • Windows: C:\Program Files\ReplicatorG\replicator-XXXX\skein_engines\skeinforge-NN\skeinforge_application\skeinforge_plugins\craft_plugins\
  • Linux: TBD

In that craft_plugins directory, place the altshell.py file.

Replace the extrusion.py file with the extrusion-NN.py file for your version of Skeinforge,

  • Mac (RepG 33 and later): /Applications/ReplicatorG.app/Contents/Resources/skein_engines/skeinforge-NN/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py
  • Mac (RepG 29 and earlier): /Applications/replicatorg/skein_engines/skeinforge-NN/skeinforge_application/skeinforge_plugins/profile_plugins/extrusion.py
  • Windows: C:\Program Files\ReplicatorG\replicator-XXXX\skein_engines\skeinforge-NN\skeinforge_application\skeinforge_plugins\profile_plugins\extrusion.py
  • Linux: TBD

Be sure to change the name from extrusion-NN.py to extrusion.py. You may wish to save the original extrusion.py file before overwriting it with the replacement file.

If there is not an extrustion-NN.py file for your version of Skeinforge, then you can manually edit extrusion.py as per the directions found within the altshell.py file.

The Altshell plugin is then activated the same way you would activate any other Skeinforge plugin: edit the Skeinforge profile, select the Altshell plugin, and check the "Activate" checkbox. Then save the profile.

Step 5: Configuring firmware settings

Step 5a: Acceleration settings

For your first accelerated print, you should not need to change the acceleration parameters. However, if you have a Gen 4 LCD Interface, you can check that accelerated printing is enable 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.

If you do not have a Gen 4 LCD Interface, don't worry: you can just try a test print and only if acceleration does not appear to be enabled do you need to then take extra steps.

Step 5b: Other firmware settings

If you have a machine other than a Thing-o-Matic or 3G5D Gen3 Cupcake with stock stepper drivers and motors, please visit the following firmware settings

  • Axis Steps:mm — You need to set the correct values for each of the four axes: X, Y, Z, and A (extruder).
  • 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.

If you have a Gen 4 LCD Interface, then you can inspect and change those settings using the Interface. If you do not have a Gen 4 LCD Interface, then you must change them through a modified version of ReplicatorG. See Jetty Firmware - Setting Parameters without a Gen4 Interface for instructions.

All of those parameters must be changed 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.

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 6: 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 7: 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 seeing too low of maximum feed rates, or acceleration is not enabled in the firmware. Ensure that acceleration is enabled. If you do not have a Gen 4 LCD Interface, then in order to ensure that acceleration is enabled, you will need to manually send some custom "mcodes" as per the directions at Jetty Firmware - Setting Parameters without a Gen4 Interface.

Finally

After printing a few objects, you may decide you wish to tune your acceleration settings further, see the tuning guide, Jetty Firmware - Tuning Acceleration

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.