MakerBot Replicator 2X

The information here applies to MakerBot Desktop v.3.9.2.

Replicator 2X G-Codes

Much of the MakerBot G code flavor is inherited from the G Codes and M Codes of ReplicatorG, MakerBot's previous, open-source slicer. Since ReplicatorG uses Skeinforge for conversion to G Code, MakerBot commands have some similarity to the RepRap flavor for which Skeinforge was developed.

MakerBot Desktop's approach to the main printing process consists of a long chain of G1 moves interspersed with M135 extruder changes and M73 progress updates. The Replicator 2X responds to many more, including the following that I have tested; those in bold are produced by MakerBot Desktop.
  • G0 X[mm] Y [mm] Z[mm] F[mm/min] A[?] B[?] - Rapid linear move
  • G1 X[mm] Y [mm] Z[mm] F[mm/min] A[?] B[?] - Linear move; without X/Y/Z, will set speed for a subsequent action. Z moves the bed, X and Y move the extruders.
  • ? G4 P[ms] - Dwell
  • G21 - Set units to mm
  • G28 - Home
  • G90 - Set absolute positioning (default state)
  • G91 - Set relative positioning (repeating a move command will result in further movement in the same direction)
  • G92 X[mm] Y [mm] Z[mm] A B E - Set (expected) position
  • M18 A B X Y Z - Turn off listed stepper motors (A and B)
  • M70 P[s] [Text] - Display text on screen
  • M72 P[#] - Play sound
  • M73 P[%] - Update progress on display; P0 serves as build start notification
  • M92 - Get current position
  • M96
  • M104 S[°C] T[#] - Set extruder temperature
  • M105 - Get extruder (and bed) temperature
  • M107 - Turn fan off
  • M109 S[°C] T[#] - Set bed temperature (observed problems when T0 was absent?)
  • M114 - Get current position
  • M127 T[#] - Fan off (T0)
  • M135 T[#] - Change to this tool (extruder)
  • M136 - "Enable build"
  • M137 - Build end notification
  • M140 S[°C] - Set bed temperature
  • M141 S[°C] - Set bed temperature, rapid
See another partial listing of MakerBot commands. There is a comprehensive command list with comparisons among printers, but I found some discrepancies between the MakerBot entries there and the 2X.

Increasing control over printing

Beyond MakerBot Desktop

MakerBot Desktop's custom profiles offer reasonable control over extruder and fan speeds, temperatures, infill, and auxiliary structures (basic purge walls, detailed options for rafts and supports). However, the user has little influence on the way in which structures are generated (sliced). Many alternative slicing programs offer this control, but hurdles exist because the Replicator 2X:
  1. differs in standard parameters, like every 3D printer;
  2. has two extruders and a heated bed, requiring extra complexity to take advantage of these features;
  3. has its own flavor of GCode, with some commands from other flavors ignored or used differently;
  4. requires files in the compressed .x3g format.

Differences in parameters

The sheer number of calculations needed to plan much more than a few lines of filament demands the use of a higher-level program to produce the G Code - MeCode if one wishes to write the movements from scratch, or a slicer to produce a CAD design. To slice correctly, the slicer must have a printer configuration in its desired format.

Dual extrusion and beds

Since the earliest printers consisted of a single extruder, and a great deal can still be done with one, some slicers do not support control of two extruders and a heated bed, or do so poorly.

MakerBot G code flavor

1 illustrate requires that GCode
Several solutions exist.
An exception is MatterControl

X3G format

G Code can be converted to X3G with:
  • GPX, a command-line G Code-to-X3G converter;
  • GPX UI, an out-of-the-box graphical tool based on GPX;
  • MatterControl, an open-source slicer that packages many other open-source packages, including GPX;
  • Simplify3D, a popular paid slicer;
  • and of course, ReplicatorG, which has gone a few years without development but was designed specifically for MakerBot compatibility.