This is a list of currently implemented G-Codes in Prusa Buddy firmware for MINI/MINI+/XL/MK4/MK3.5 printers. The description is available only for Prusa Research-specific G-codes or the ones having a specific implementation.
Since, Prusa Buddy firmware uses a fork of Marlin 2 firmware, the generic G-codes should be Marlin-compatible and their description can be found in Marlin documentation or on RepRap Wiki.
First layer calibration, must be run within selftest only.
See P0
Performs the precise homing. (with no MBL, even without the stadard W parameter)
G28 issued without parameters homes the MMU3 as well. (invalidates the homing flags of Selector and Idler. These will perform homing async once it is considered safe, i.e. no filament in the selector)
Parameters:
Invalidates previous bed mesh measurements and starts the Mesh Bed Leveling (MBL).
(For iX printers only)
A workspace is an XYZ offset to the machine native space. All workspaces default to 0,0,0 at start, or with EEPROM support they may be restored from a previous session.
G92 is used to set the current workspace's offset.
Measure the Z length and saves the max_z_pos into EEPROM. Then, it shows the results on the serial line.
Parameters:
Examples:
G64 : Measure the Z length, save the measurement, show results on the serial line.
G64 D0.2 : Execute the G64 command but add extra 0.2 to the measurement.
(For iX printers only)
Homing to any endstop. Supports separate home positions in CNC workspaces(G54-G59.3)(enabled by defining CNC_COORDINATE_SYSTEMS in advanced config) Only supports homing of one axis at a time
Use: G65 [AXIS][ENDSTOP] D[DIRECTION][DISTANCE] [AXIS] Axis to home(X, Y, Z, E) [ENDSTOP] Target endstop number. [DIRECTION] Direction of homing '+' for positive or '-' for negative direction [DISTANCE] Distance to travel. If endstop is not reached within this distance, motion will stop and position will not be updated to endstop position.
For MK4 printer with MK3 G-code reverse compatibility.
Performs the Mesh Bed Leveling as with the G29.
Z-axis leveling.
Parameters:
Example:
G162 Z : Level the Z-Axis.
Parameters:
Automatic calibration with calibration object. Toolhead offset / Backlash calibration
Pauses a print and waits for user interaction.
Lists the contents of the USB drive.
Select a file from the USB drive.
Starts or resumes a print from USB drive.
Pauses a print from the USB drive.
Parameters:
Reports a status of a print from USB drive.
Related to USB drive instead.
Related to USB drive instead.
Related to USB drive instead.
Related to USB drive instead.
Enforce Selftest
Parameters:
Tells the firmware the current build progress percentage to be displayed.
Parameters:
Set mass. (Input shaper related)
Parameters:
Turn on the Power Supply.
If you have a switch on suicide pin, this is useful if you want to start another print with suicide feature after a print without a suicide...
Parameters:
Examples:
Turn off Power, including Power Supply, if possible.
Examples:
M81: Turn off Power, including Power Supply, if there is one. This code should ALWAYS be available for FULL SHUTDOWN!
Set E axis normal mode (same as other axes).
Disable stepper motors / Set timeout.
Parameters:
Set LCD message text, if possible
Display a message in the host console
Report driver configuration and status.
Print fan speed on serial port.
Called on pause (by M25) to prevent material leaking onto the object. On resume (M24) the head will be moved back and the print will resume.
When not actively SD printing, M125 simply moves to the park position and waits, resuming with a button click or M108. Without PARK_HEAD_ON_PAUSE, the M125 command does nothing.
Parameters:
Set target heatbreak cooling temperature.
Parameters:
Set display LED color and animations. Color input supports RGB and HSV format.
LED strips on MK3.5, MK3.9, MK4, MINI, MINI+ and XL machines are not user-configurable from a G-code!
Parameters:
RGB color space
HSV color space
Effects
Basic settings are the same as for M150.
Additional parameters:
Effects
Set temperature auto-report interval
Set SINGLENOZZLE toolchange parameters. (MMU3)
Parameters:
For XL only.
Set Feedrate Percentage.
Parameters:
Parameters:
Wait until a pin reaches a state
Beeep. Beep duration is limited to 0-5 seconds.
Parameters:
Allow cold extrudes, or set the minimum extrude temperature
Parameters: S<temperature> sets the minimum extrude temperature
P<bool> enables (1) or disables (0) cold extrusion
Examples:
M302 ; report current cold extrusion state
M302 P0 ; enable cold extrusion checking
M302 P1 ; disables cold extrusion checking
M302 S0 ; always allow extrusion (disables checking)
M302 S170 ; only allow extrusion above 170
M302 S170 P1 ; set min extrude temp to 170 but leave disabled
PID relay autotune
Parameters:
**M330**` <handler>` -- Select `handler` for configuration (`SYSLOG` is selected by default)
Example:
`M330 SYSLOG`
**M331**` <metric>` -- Enable `metric` for the currently selected `handler`.
Example:
`M331 pos_z`
**M332**` <metric>` -- Disable `metric` for the currently selected `handler`.
Example:
`M332 pos_z`
List all metrics and whether they are enabled for the currently selected `handler`.
Handler-specific configuration
Example:
`M334 <ip address> <port>` - Configures the syslog handler to send all the enabled metrics to the given IP address and port.
Example:
`M335 <ip address> <port>`
Abort all the planned moves.
Enable/Disable Bed Leveling and/or set the Z fade height.
Parameters:
Set home_offset based on the distance between the current_position and the nearest "reference point."
If an axis is past center its endstop position is the reference-point. Otherwise it uses 0. This allows the Z offset to be set near the bed when using a max endstop.
M428 can't be used more than 2cm away from 0 or an endstop.
Use M206 to set these values directly.
A simple interface to identify and cancel printing one of multiple printed objects.
Parameters:
Print settings currently in memory.
Set print area for detailed MBL.
Parameters:
Example:
M555 X112.5 Y88.5 W32 H29
XL only.
Parameters:
XL only.
Parameters:
Used specifically to enable StealthChop on an axis.
Parameters:
Example:
M569 S0 E - Set spreadcycle mode for extruder.
Set parameters for pressure advance.
Parameters:
Enable/Disable Filament stuck monitoring.
Prusa STM32 platform specific.
Parameters:
Set parameters for input shapers.
Parameters:
Parameters:
Parameters:
This is expected to be set as end-print command ("After print job is cancelled") in Octoprint.
M701 Pn
Parameters:
M701 also has a Tn parameter - that we understand like an extruder index, not the MMU (having an XL with 5 MMU's connected ) → M701 T4 P4
M702 Pn
Parameters:
M704 Pn
Parameters:
M705 Pn
Parameters:
M706 Pn
Parameters:
M707 A<address> C<size>
Read a variable from MMU.
Parameters:
Example:
M707 A0X19 - Read a 8bit integer from register 0X19 (Idler_sg_thrs_R) and prints the result onto the serial line.
Does nothing if the A parameter is not present or if MMU is not enabled.
M708 A<address> X<value> C<size>
Set a variable in the MMU
Parameters:
Example:
M708 A0x19 X07 - Write to register 0x19 (Idler_sg_thrs_R) the value 07. Does nothing if A parameter is missing or if MMU is not enabled.
M709 Xn Sn Tn
Parameters:
Printer verifies if the G-code is compatible with the machine.
Common parameters:
Example:
M862.3 P "MINI"
Parameters:
printer checks if the G-code is sliced for a compatible printer model.
printer checks if the G-code is sliced for a compatible printer model.
G-code levels refer to different versions or configurations of G-code. The G-code level determines the set of commands and parameters that the printer can understand and execute.
The M862.5 command will compare the input value with the G-code level supported by the printer. If the G-code level does not match the input value, a warning or error message may be displayed.
Parameters:
When run with P<> argument, the check is performed against the input value.
When run with Q argument, the current value is shown.
Example messages:
The printer has a list of supported features. Using the M862.6 P[feature], it checks if the list of the required features in the G-code matches the features available on the printer.
If an incompatible feature is found, the printer shows a corresponding message.
Example:
M862.6 P "Input shaper"
Example messages:
Allows to redefine which tools use for certain parts of the print.
If a part of an object is sliced to be printed with filament 1 - but you wish to print it with filament 2 instead, this G-code helps you achieve so.
Examples:
M863 M P0 L1 : Instead of tool 0, use tool 1
M863 E1/0 : Enable/disable tool remapping
M863 R : Reset tool remapping
M863 : Report current tool mapping
Enables to configure Spool join function, defining which material to use after the one used runs out.
Examples:
M864 J A1 B2 : When tool 1 runs out of filament, continue with tool 2
M864 R : reset any settings
M864 : Report current spool join settings
In milliamps, using axis codes X, Y, Z, E.
Parameters:
Report TMC stepper driver overtemperature pre-warn flag.
This flag is held by the library, persisting until cleared by M912.
(Requires at least one _DRIVER_TYPE defined as TMC2130/2160/5130/5160/2208/2209/2660)
Clear TMC stepper driver overtemperature pre-warn flag held by the library.
(Requires at least one _DRIVER_TYPE defined as TMC2130/2160/5130/5160/2208/2209/2660)
Parameters:
Parameters:
Examples:
M914 I0 Z200: Set StallGuard sensitivity for the Z-axis to 200:
M914: Print the current StallGuard sensitivity values.
Writes a value to the TMC driver’s register
M919 <axis> <TMC reg> <data>
Example:
M919 X I_HOLD_IRUN 1000
Reads a value from the TMC driver’s register
M920 <axis> <TMC reg>
Example:
M920 Z SG2
Set up the prescaler of the LCD perifery SPI.
This is used for manipulating communication frequency during HW testing.
If value was not set or was set 0, prescaler will set up 0 (frequency will be divided by 1 = unchanged).
Parameters:
[uint16] Prescaler value (0-7) is mapped internally on power of 2.
Set up the prescaler of the EXT_FLASH perifery SPI.
This is used for manipulating communication frequency during HW testing.
If value was not set or was set 0, prescaler will set up 0 (frequency will be divided by 1 = unchanged).
Parameters:
[uint16] Prescaler value (0-7) is mapped internally on power of 2.
Set up the prescaler of the TMC perifery SPI.
This is used for manipulating communication frequency during HW testing.
If value was not set or was set 0, prescaler will set up 0 (frequency will be divided by 1 = unchanged).
Parameters:
[uint16] Prescaler value (0-7) is mapped internally on power of 2.
Perform in-application firmware update. Prusa STM32 platform specific.
Parameters:
Prusa STM32 platform specific.
Restarts after being stopped. With R parameter, resets the MCU.
Parameters:
Open Wi-Fi credentials dialog.
Similar to M587, but meant to be used internally.
Parameters:
Prusa STM32 platform specific.
Non-print filament change.
Not meant to be used during print.
Parameters:
Prusa STM32 platform specific
Prusa STM32 platform specific.
Parameters:
Prusa STM32 platform specific.
Not meant to be used during print.
Parameters:
Triggers the MMU3 Loading test.
Select extruder in case of multi extruder printer (XL). Select filament position 1-5 (T0-T4) in case of MMU3.
Parameters:
Examples:
T0 : Select filament position 1 on MMU3 / Select Tool 1 on XL.
T1 : Select filament position 2 / Tool 2.
(MMU3) Printer asks user to select a filament position. Then loads the filament from the MMU unit into the extruder wheels only.
(MMU3) Loads the filament tip from the extruder wheels into the nozzle.
Park extruder (tool) (XL only)
Pn: n index of a tool (zero based, so 0-4 like T0 and T4 for tools 1 and 5)
Parameters:
If you have a question about something that isn't covered here, check out our additional resources.
And if that doesn't do the trick, you can send an inquiry to [email protected] or through the button below.