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.
G-codes
G0 - G0 & G1: Move
G1 - G0 & G1: Move
G2 - G2 & G3: Controlled Arc Move
G3 - G2 & G3: Controlled Arc Move
G4 - G4: Dwell
G26 - G26: Mesh Validation Pattern
First layer calibration, must be run within selftest only.
G27 - G27: Park toolhead
See P0
G28 - G28: Move to Origin (Home)
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:
- X, Y, Z: home the individual axes.
- C: home Z-axis only
- P: just invalidate the selector's homing validity flag
- I: just invalidate the idler's homing validity flag
G29 - G29: Detailed Z-Probe
Invalidates previous bed mesh measurements and starts the Mesh Bed Leveling (MBL).
G30 - G30: Single Z-Probe
G54_59 - Select a new workspace
(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.
G64 - Measure Z-Axis height
Measure the Z length and saves the max_z_pos into EEPROM. Then, it shows the results on the serial line.
Parameters:
- D: Additional z offset
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.
G65 - Advanced homing/part 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.
G75 - G75: Print temperature interpolation
G76 - G76: PINDA probe temperature interpolation
G80 - G80: Mesh-based Z probe
For MK4 printer with MK3 G-code reverse compatibility.
Performs the Mesh Bed Leveling as with the G29.
G90 - G90: Set to Absolute Positioning
G91 - G91: Set to Relative Positioning
G92 - G92: Set Position
G162 - Calibrate Z
Z-axis leveling.
Parameters:
- Z: Calibrate Z.
With no parameters, no action is performed.
Example:
G162 Z : Level the Z-Axis.
G163 - Measure length of axis
Parameters:
- X, Y: Set an axis to measure the length on.
- S: Set sensitivity.
- P: Set measurement period.
G425 - G425: Perform auto-calibration with calibration cube
Automatic calibration with calibration object. Toolhead offset / Backlash calibration
M-codes
M0 - M0: Stop or Unconditional stop
Pauses a print and waits for user interaction.
M17 - M17: Enable/Power all stepper motors
M18 - M18: Disable all stepper motors
M20 - M20: List SD card
Lists the contents of the USB drive.
M23 - M23: Select SD file
Select a file from the USB drive.
M24 - M24: Start/resume SD print
Starts or resumes a print from USB drive.
M25 - M25: Pause SD print
Pauses a print from the USB drive.
Parameters:
- U: Unload filament when paused
M27 - M27: Report SD print status
Reports a status of a print from USB drive.
M28 - M28: Begin write to SD card
Related to USB drive instead.
M29 - M29: Stop writing to SD card
Related to USB drive instead.
M30 - M30: Delete a file on the SD card
Related to USB drive instead.
M31 - M31: Output time since last M109 or SD card start to serial
M32 - M32: Select file and start SD print
Related to USB drive instead.
M42 - M42: Switch I/O pin
M46 - M46: Show the assigned IP address
M50 - Selftest
Enforce Selftest
Parameters:
- X: X axis test
- Y: Y axis test
- Z: Z axis test
- F: Fan test
- H: Heater test
M73 - M73: Set/Get build percentage
Tells the firmware the current build progress percentage to be displayed.
Parameters:
- P: Percent finished
- R: Time remaining
- T: Time to pause
M74 - M74: Set weight on print bed
Set mass. (Input shaper related)
Parameters:
- W: Set the total mass in grams of everything that is currently sitting on the bed.
M75 - M75: Start print timer
M76 - M76: Pause print timer
M77 - M77 Stop print job timer
M80 - M80: ATX Power On
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:
- S: Report the current state and exit
Examples:
- M80 : Turn on the Power Supply
- M80 S : Report the current state and exit
M81 - M81: ATX Power Off
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!
M82 - M82: Set extruder to absolute mode
Set E axis normal mode (same as other axes).
M83 - M83: Set extruder to relative mode
M84 - M84: Stop idle hold
Disable stepper motors / Set timeout.
Parameters:
- X, Y, Z, E: Axis to disable stepper on
M85 - M85: Set Inactivity Shutdown Timer
M86 - M86: Set Safety Timeout
M92 - M92: Set axis_steps_per_unit
M104 - M104: Set Extruder Temperature
M105 - M105: Get Extruder Temperature
M106 - M106: Fan On
M107 - M107: Fan Off
M109 - M109: Set Extruder Temperature and Wait
M110 - M110: Set Current Line Number
M111 - M111: Set debug level
M112 - M112: Full (Emergency) Stop
M113 - M113: Host Keepalive
M114 - M114: Get Current Position
M115 - M115: Get Firmware Version and Capabilities
M117 - M117: Display Message
Set LCD message text, if possible
M118 - M118: Echo message on host
Display a message in the host console
M119 - M119: Get Endstop Status
M120 - Enable endstops
M121 - Disable endstops
M122 - M122: Debug Stepper drivers
Report driver configuration and status.
M123 - M123: Tachometer value
Print fan speed on serial port.
M125 - Store current position and move to parking position.
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:
- L: override retract length
- X: override X
- Y: override Y
- Z: override Z raise
M140 - M140: Set Bed Temperature (Fast)
M142 - M142: Set Cooler Temperature (Fast)
Set target heatbreak cooling temperature.
Parameters:
- S: Set heatbreak cooling temp in degree Celsius
M150 - M150: Set LED color
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
- R: Red intensity from 0 to 255
- G: Green intensity from 0 to 255
- B: Blue intensity from 0 to 255
HSV color space
- H: Hue from 0 to 360
- S: Saturation from 0 to 100
- V: Saturation form 0 to 100
Effects
- A: animation type (SolidColor / Fading)
- S: printer state
- Idle,
- Printing,
- Pausing,
- Resuming,
- Aborting,
- Finishing,
- Warning,
- PowerPanic,
- PowerUp
M151 - LED control for Side LED lights
Basic settings are the same as for M150.
Additional parameters:
Effects
- D: duration in milliseconds, iX printer only: set to 0 for infinite duration
- T: transition in milliseconds (fade in / fade out)
- Fade in is counted toward duration, so if duration is greater than 0 and less than transition, the effect doesn't reach full color intensity.
- Fade out is not counted towards the duration.
M155 - M155: Automatically send temperatures
Set temperature auto-report interval
M190 - M190: Wait for bed temperature to reach target temp
M200 - M200: Set filament diameter
M201 - M201: Set max acceleration
M203 - M203: Set maximum feedrate
M204 - M204: Set default acceleration
M205 - M205: Advanced settings
M206 - M206: Offset axes
M211 - Enable, Disable, and/or Report software endstops
M217 - M217: Toolchange Parameters
Set SINGLENOZZLE toolchange parameters. (MMU3)
Parameters:
- S[linear]: Swap length (Requires TOOLCHANGE_FILAMENT_SWAP)
- E[linear]: Purge length (Requires TOOLCHANGE_FILAMENT_SWAP)
- P[linear/m]: Prime speed (Requires TOOLCHANGE_FILAMENT_SWAP)
- R[linear/m]: Retract speed (Requires TOOLCHANGE_FILAMENT_SWAP)
- X[linear]: Park X (Requires TOOLCHANGE_PARK)
- Y[linear]: Park Y (Requires TOOLCHANGE_PARK)
- Z[linear]: Z Raise
M218 - M218: Set Hotend Offset
For XL only.
M220 - M220: Set speed factor override percentage
Set Feedrate Percentage.
Parameters:
- S: Feedrate Percentage
M221 - M221: Set extrusion percentage
Parameters:
- T: Tool number
- S: Extrusion rate Percentage
M226 - M226: G-code Initiated Pause
Wait until a pin reaches a state
M290 - M290: Babystepping
M300 - M300: Play beep sound
Beeep. Beep duration is limited to 0-5 seconds.
Parameters:
- S: Frequency in Hz
- P: Duration in ms
- V: Volume
M301 - M301: Set PID parameters
M302 - M302: Allow cold extrudes
Allow cold extrudes, or set the minimum extrude temperature
Parameters: S sets the minimum extrude temperature
P 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
M303 - M303: Run PID tuning
PID relay autotune
Parameters:
- S: sets the target temperature. (default 150C / 70C)
- E: (-1 for the bed) (default 0)
- C: Minimum 3. Default 5.
- U: with a non-zero value will apply the result to current settings.
M304 - M304: Set PID parameters - Bed
M330 - Select handler
**M330**` ` -- Select `handler` for configuration (`SYSLOG` is selected by default)
Example:
`M330 SYSLOG`
M331 - Enable metrics
**M331**` ` -- Enable `metric` for the currently selected `handler`.
Example:
`M331 pos_z`
M332 - Disable metrics
**M332**` ` -- Disable `metric` for the currently selected `handler`.
Example:
`M332 pos_z`
M333 - Print metrics and their settings for selected handler
List all metrics and whether they are enabled for the currently selected `handler`.
M334 - Handler-specific configuration
Handler-specific configuration
Example:
`M334 ` - Configures the syslog handler to send all the enabled metrics to the given IP address and port.
M335 - Logging
Example:
`M335 `
M340 - Syslog host and port configuration
M350 - M350: Set microstepping mode
M400 - M400: Wait for current moves to finish
M401 - M402: Deploy probe
M402 - M402: Stow probe
M403 - M403: Set filament type (material) for particular extruder and notify the MMU
M410 - M410: Quick-Stop
Abort all the planned moves.
M420 - Enable/Disable Bed Leveling
Enable/Disable Bed Leveling and/or set the Z fade height.
Parameters:
- S[bool] Turns leveling on or off
- Z[height] Sets the Z fade height (0 or none to disable)
- V[bool] Verbose - Print the leveling grid
* With AUTO_BED_LEVELING_UBL only: - L[index] Load UBL mesh from index (0 is default)
- T[map] 0:Human-readable 1:CSV 2:"LCD" 4:Compact
- C Center mesh on the mean of the lowest and highest (With mesh-based leveling only)
M428 - Apply current_position to home_offset
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.
M486 - M486: Cancel Object
A simple interface to identify and cancel printing one of multiple printed objects.
Parameters:
- T[count] : Reset objects and/or set the count
- S : Start an object with the given index
- P : Cancel the object with the given index
- U : Un-cancel object with the given index
- C : Cancel the current object (the last index given by S)
- S-1 : Start a non-object like a brim or purge tower that should always print
- Aname : Name the current object
- Nname : Legacy, same as Aname
- A and N need to be alone in the G-code line, use "M486 S1nM486 AMyAwesomeObject".
Spaces in name can get consumed by meatpack.
M500 - M500: Store parameters in EEPROM
M501 - M501: Read parameters from EEPROM
M502 - M502: Restore Default Settings
M503 - M503: Report Current Settings
Print settings currently in memory.
M509 - M509: Force language selection
M555 - Set print area
Set print area for detailed MBL.
Parameters:
- X: X coordinate of print area rectangle
- Y: Y coordinate of print area rectangle
- W: Width of print area rectangle
- H: Height of print area rectangle
Example:
M555 X112.5 Y88.5 W32 H29
M556 - Override modular bedlet active
XL only.
Parameters:
- X/Y: Set bedlet based on X, Y coordinates
(By default, all bedlets are set) - I: set bedlet based on its index
- A: Activate bedlet
- D: Deactivate bedlet
M557 - Set modular bed gradient parameters
XL only.
Parameters:
- C: Set gradient cutoff
- E: Set gradient exponent
- S: Set expand to sides
M569 - Enable StealthChop
Used specifically to enable StealthChop on an axis.
Parameters:
- S[1|0]: Enable or disable
- X|Y|Z|E : target an axis
- No arguments reports the stealthChop status of all capable drivers.
Example:
M569 S0 E - Set spreadcycle mode for extruder.
M572 M572: Set or report extruder pressure advance
Set parameters for pressure advance.
Parameters:
- D: Set the extruder number.
- S: Set the pressure advance value. If zero the pressure advance is disabled.
- W
M591 - Configure Filament stuck monitoring
Enable/Disable Filament stuck monitoring.
Prusa STM32 platform specific.
Parameters:
- S: 0 disable 1 enable
With no parameter, shows the state of EMotorStallDetector on the serial line.
M593 - Set parameters for input shapers.
Set parameters for input shapers.
Parameters:
- D: Set the input shaper damping ratio. If axes (X, Y, etc.) are not specified, set it for all axes. Default value is 0.1.
- F: Set the input shaper frequency. If axes (X, Y, etc.) are not specified, set it for all axes. Default value is 0Hz - It means that the input shaper is disabled.
- T[map]: Set the input shaper type, 0:ZV, 1:ZVD, 2:MZV, 3:EI, 4:2HUMP_EI, and 5:3HUMP_EI. Default value is 0:ZV.
- R: Set the input shaper vibration reduction. This parameter is used just for 3:EI, 4:2HUMP_EI, and 5:3HUMP_EI. Default value is 20.
- X<1>: Set the input shaper parameters only for the X axis.
- Y<1>: Set the input shaper parameters only for the Y axis.
- Z<1>: Set the input shaper parameters only for the Z axis.
- A: Set the input shaper weight adjust frequency delta.
- M: Set the input shaper weight adjust mass limit.
- W<1>: Write current input shaper settings to EEPROM.
M600 - M600: Filament change pause
Parameters:
- E[distance]: Retract the filament this far
- Z[distance]: Move the Z axis by this distance
- X[position]: Move to this X position, with Y
- Y[position]: Move to this Y position, with X
- U[distance]: Retract distance for removal (manual reload)
- L[distance]: Extrude distance for insertion (manual reload)
- B[count]: Number of times to beep, -1 for indefinite (if equipped with a buzzer)
- T[toolhead]: Select extruder for filament change
- A: If automatic spool join is configured for this tool, do that instead, if not, do manual filament change
* Default values are used for omitted arguments.
M601 - M601: Pause print
M602 - M602: Resume print
M603 - M603: Configure Filament Change
Parameters:
- T[toolhead]: Select extruder to configure, active extruder if not specified
- U[distance]: Retract distance for removal, for the specified extruder
- L[distance]: Extrude distance for insertion, for the specified extruder
M604 - Abort (serial) print
This is expected to be set as end-print command ("After print job is cancelled") in Octoprint.
M701 - M701: Load to nozzle
M701 Pn
Parameters:
- T, L, Z (as defined in Marlin)
- Pn → n index of slot (zero based, so 0-4 like T0 and T4)
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
- T: Extruder number. Required for mixing extruder.
* For non-mixing, current extruder if omitted. - Z: Move the Z axis by this distance
- L: Extrude distance for insertion (positive value) - 0 == PURGE
- S"Filament": save filament by name, for example S"PLA". RepRap compatible.
- W: Preheat
- W255: default without preheat
- W0: preheat no return no cool down
- W1: preheat with cool down option
- W2: preheat with return option
- W3: preheat with cool down and return options
Default values are used for omitted arguments.
M702 - M702: Unload filament
M702 Pn
Parameters:
- T, U, Z (as defined in Marlin)
- W: preheat with options to show additional cooldown and return buttons
- W'-1': default without preheat
- W0: preheat no return no cool down
- W1: preheat with cool down option
- W2: preheat with return option
- W3: preheat with cool down and return options - I: ask if the unload was successful
M704 - M704: Preload to MMU
M704 Pn
Parameters:
- Pn → n index of slot (zero based, so 0-4 like T0 and T4)
M705 - M705: Eeject filament
M705 Pn
Parameters:
- Pn → n index of slot (zero based, so 0-4 like T0 and T4)
M706 - M706: Cut filament
M706 Pn
Parameters:
- Pn → n index of slot (zero based, so 0-4 like T0 and T4)
M707 - M707: Read from MMU register
M707 A
CRead a variable from MMU.
Parameters:
- A: Address of register in hexidecimal.
- C: How many bytes to read (Optional)
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 - M708: Write to MMU register
M708 A
X CSet a variable in the MMU
Parameters:
- A: Address of register in hexidecimal.
- X: Data to write (16-bit integer). Default value 0.
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 - M709: MMU power & Reset
M709 Xn Sn Tn
Parameters:
- Xn: reset where n means:
0 - issue an X0 command via communication into the MMU (soft reset)
1 - toggle the MMU's reset pin
2 - power cycle the MMU (turn off and back on) - Sn: power off/on
0 - turn off MMU's power supply
1 - power up the MMU after being turned off
S without any parameter returns 0 or 1 for current state - T: index of MMU unit (in case there are multiple - same principle like M701 Tn)
M851 - M851: Set Z Probe Z Offset
M862 - M862: Print checking
Printer verifies if the G-code is compatible with the machine.
Common parameters:
- Q: get machine value.
- query is done during gcode execution (printing) - P: check if supplied value matches machine value
- This check is done before starting the print from file. If an incompatible feature is found, the printer shows a corresponding message.
This parameter is ignored during print or if supplied via USB CDC
Example:
M862.3 P "MINI"
M862.1 - M862.1: Check nozzle diameter
Parameters:
- T: Specific tool, default to currently active nozzle.
M862.2 - M862.2: Check model code
printer checks if the G-code is sliced for a compatible printer model.
M862.3 - M862.3: Check model name
printer checks if the G-code is sliced for a compatible printer model.
M862.4 - M862.4: Check Firmware version
M862.5 - M862.5: Check G-code level
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:
- Pnnnn nnnn: Gcode level
- Q: Current Gcode level
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:
- G-code sliced for a different level. Continue?
- G-code sliced for a different level. Please re-slice the model again. Print cancelled.
M862.6 - M862.6: Check Firmware features
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:
- G-code isn't fully compatible. misssing requested features: Input shaper
M863 - Tool remapping
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
M864 - Spool join settings
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
M900 - M900: Set Linear advance K factor
M906 - M906: Set motor current
In milliamps, using axis codes X, Y, Z, E.
Parameters:
- X[current]: Set mA current for X driver(s)
- Y[current]: Set mA current for Y driver(s)
- Z[current]: Set mA current for Z driver(s)
- E[current]: Set mA current for E driver(s)
- I[index]: Axis sub-index (Omit or 0 for X, Y, Z; 1 for X2, Y2, Z2; 2 for Z3.)
- T[index]: Extruder index (Zero-based. Omit for E0 only.)
* With no parameters, reports driver currents.
M910 - M910: TMC2130 init
M911 - Report stepper driver overtemperature pre-warn condition
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)
M912 - clear stepper driver overtemperature pre-warn condition flag
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:
- X, Y, Z, X1, Y1, Z1, X2, Y2, Z2, Z3 and E[index]: Specifies one or more axes to clear the flag on.
- If no axes are specified, clears all.
M914 - Set StallGuard sensitivity
Parameters:
- I: Index of a sensitivity value to set.
- X, Y, Z: Axis code
- * With no parameters, reports the current StallGuard sensitivity.
Examples:
M914 I0 Z200: Set StallGuard sensitivity for the Z-axis to 200:
M914: Print the current StallGuard sensitivity values.
M919 - TMC Config Write
Writes a value to the TMC driver’s register
M919
Example:
M919 X I_HOLD_IRUN 1000
M920 - TMC Config Read
Reads a value from the TMC driver’s register
M920
Example:
M920 Z SG2
M930 - Set SPI prescaler for xLCD
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.
M931 - Set SPI prescaler for EXT_FLASH
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.
M932 - Set SPI prescaler for TMC
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.
M958 - Excite harmonic vibration
M959 - Tune input shaper
M997 - Update firmware
Perform in-application firmware update. Prusa STM32 platform specific.
Parameters:
- O: Update older or same firmware on restart == force reflash == from menu
- S: Firmware module number(s), default 0
- 0 - main firmware.
- 1 - WiFi module firmware
- 2 - 4 - Reserved, check reprap wiki - B: Expansion board address, default 0
- Currently unused, defined just to be reprap compatible - /: Selected BBF SFN (short file name)
M999 - Reset MCU
Prusa STM32 platform specific.
Restarts after being stopped. With R parameter, resets the MCU.
Parameters:
- R: reset MCU
- Z: Wait for finishing planned moves, save Z coordinate and restore it after reset.
- Must be combined with R parameter, doesn't work otherwise.
- Z is restored only if USB flash drive is present.
This strange requirement is due to coupling with power panic.
M1587 - Wi-Fi credentials
Open Wi-Fi credentials dialog.
Similar to M587, but meant to be used internally.
Parameters:
- I: Generate ini file
M1600 - Change filament menu
Prusa STM32 platform specific.
Non-print filament change.
Not meant to be used during print.
Parameters:
- T: Extruder number. Required for mixing extruder.
- R: Preheat Return option
- U: Ask Unload type
- `U0` - return if filament unknown (default)
- `U1` - ask only if filament unknown
- `U2` - always ask - S"Filament": change to filament by name, for example `S"PLA"`
M1601 - Filament stuck detection
Prusa STM32 platform specific
M1700 - Preheat
Prusa STM32 platform specific.
Parameters:
- T: Extruder number. Required for mixing extruder.
For non-mixing, current extruder if omitted. - W: Preheat
- `W0` - preheat no return no cool down
- `W1` - preheat with cool down option
- `W2` - preheat with return option
- `W3` - preheat with cool down and return options - default - S: Set filament
- E: Enforce target temperature
M1701 - Autoload
Prusa STM32 platform specific.
Not meant to be used during print.
Parameters:
- T: Extruder number. Required for mixing extruder.
For non-mixing, current extruder if omitted. - Z: Move the Z axis by this distance
- L: Extrude distance for insertion (positive value) (manual reload)
* Default values are used for omitted arguments.
M1704 - Load test
Triggers the MMU3 Loading test.
T-codes
T Toolchange
Select extruder in case of multi extruder printer (XL). Select filament position 1-5 (T0-T4) in case of MMU3.
Parameters:
- F[units/min]: Set the movement feedrate
- S1: Don't move the tool in XY after change
- M0/1: Use tool mapping or not (default is yes)
- Lx: Z Lift settings 0 =- no lift, 1 = lift by max MBL diff, 2 = full lift(default)
- Dx 0 = do not return in Z after lift, 1 = normal return
Examples:
T0 : Select filament position 1 on MMU3 / Select Tool 1 on XL.
T1 : Select filament position 2 / Tool 2.
Tx - Select filament
(MMU3) Printer asks user to select a filament position. Then loads the filament from the MMU unit into the extruder wheels only.
Tc - Load to nozzle
(MMU3) Loads the filament tip from the extruder wheels into the nozzle.
Special / Other commands
P0 - Tool park
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:
- F[units/min]: Set the movement feedrate
- S1: Don't move the tool in XY after change
- M0/1: Use tool mapping or not (default is yes)
- Lx: Z Lift settings 0 =- no lift, 1 = lift by max MBL diff, 2 = full lift(default)
- Dx 0 = do not return in Z after lift, 1 = normal return
4 comments
1. You'd need to make sure the XL had TMC2130 drivers. I don't know.
2. The firmware for the buddy boards might not have this at all.
3. You'd have to break the appendix on the board to load a custom firmware build
I would suggest asking via Support for the ability to do this as a feature in a future firmware build.