What Is the M205 G-Code in Marlin Firmware? (Detailed)

There is no dispute that using raw G-code commands is not very necessary to operate or configure a 3D printer nowadays, with modern slicer software and 3D printing interfaces providing all the functionality in a more user-friendly manner that won’t require the learning process that G-code does.

On the other hand, as sending G-code commands directly to the printer is still the most straightforward way of performing printer configuration in most cases, and understanding how G-code commands operate is a great way to have a better understanding of how 3D printers work, we believe that there is still good reason to be knowledgeable about G-code after all.

Today, our topic will be the M205 G-code in Marlin firmware, which is one of the more advanced utility G-codes that allow us to configure the 3D printer and edit some parameters that modify how it conducts the printing process.

So, what is the purpose of the M205 G-code in Marlin firmware?

The M205 G-code command in Marlin firmware allows you to set advanced settings related to the motion capabilities of your 3D printer, such as the minimum feed rate for print and travel moves, max jerk values for the X, Y, Z, and E axes, the junction deviation, and the minimum segment time.

Next up, we will analyze the purpose of the M205 G-code in Marlin firmware in greater detail, find out how to use this G-code and its parameters, learn how to save the changes we have made, and finally, take a quick look at other 3D printer firmware where it’s also possible to invoke this command.

What Is the M205 (Set Advanced Settings) G-Code in Marlin Firmware?

While the M205 G-code is not one that you will regularly use due to it being a utility command, having an idea of its purpose can definitely come in handy as it controls some of the essential parameters that the 3D printer utilizes during the printing process.

The M205 G-Code command in Marlin firmware makes it possible to tweak the advanced motion settings of the 3D printer, which are the minimum segment time, max jerk value for all axes, junction deviation, and minimum feed rate for both print and travel moves.

  • Minimum segment time – The minimum amount of time spent for each segment in the queue.
  • Max jerk – The maximum jerk value, which determines the maximum point at which the 3D printer will apply acceleration to the movement actions.
  • Junction deviation – The junction deviation value, which is responsible for how much the 3D printer slows down during the printing of corners for more accurate printing.
  • Minimum feed rate – Minimum feed rate is the minimum possible value for feed rate, which is the multiplier applied to every movement-related parameter of the 3D printer, such as the print and travel speeds.

It’s worth noting that as M205 is a G-code that we can consider to be more on the advanced side, utilizing this command is not something you will need to do frequently, especially considering that the parameters you can modify with this G-code should only require an initial setup process in most cases.

How to Use the M205 G-Code in Marlin Firmware?

While executing the M205 G-code is no different than using any other G-code command, it’s also worth mentioning that this G-code comes with quite a few parameters that we can consider to be more on the complex side of things as far as settings go.

To use the M205 G-code, all you need to do is append the parameter you would like to modify and its value next to the command and send the G-code command to the 3D printer.

Since knowing the functionality of each of the parameters that the M205 G-code supports is essentially the core of learning how to use this command, let’s proceed by taking a detailed look at the parameters:

  • B (microseconds) – Minimum segment time
  • E (units per second) – Max jerk for the E (extruder) axis
  • J (deviation) – Junction deviation
  • S (units per second) – Minimum print move feed rate value
  • T (units per second) – Minimum travel move feed rate value
  • X (units per second) – Maximum jerk for the X-axis
  • Y (units per second) – Maximum jerk for the Y-axis
  • Z (units per second) – Maximum jerk for the Z-axis

Now, let’s take a look at a quick example of using the M205 G-code for setting the minimum feed rate value for travel moves to 50 millimeters per second:

M205 T50

As it’s also possible to pass multiple parameters at once to set multiple values with a single execution of the M205 G-code, let’s take a look at another example that highlights this by setting the feed rate value for travel moves to 40 mm/s, and the feed rate value for print moves to 30 mm/s:

M205 T40 S30

Finally, to see the current values for the parameters you have configured with the M205 G-code, you can utilize the M503 G-code, which will give you a detailed report of the 3D printer’s settings.

How to Save the Changes of M205 G-Code in Marlin Firmware?

Similar to other configuration commands, the changes you have made with the M205 G-code will only be in effect temporarily until the 3D printer powers off unless you go through the necessary process of saving the changes to the permanent storage, known as EEPROM.

You can save the changes you have performed wıth the M205 G-code by executing the M500 (Save Settings) command afterward, which will transfer the changes from the volatile memory to the permanent storage (EEPROM) of the 3D printer.

Alternatively, if you can find an option that reads similarly to “Store/Save Settings” on your 3D printer’s interface, you can invoke this option through the LCD panel to save the changes to the EEPROM which essentially is the same thing as using the M500 G-code.

Is It Possible to Utilize the M205 G-Code in Other 3D Printer Firmware?

Even though all 3D printer firmware don’t necessarily share the same pool of G-code commands, especially when it comes to configuration, it’s also possible to find instances where a G-code command has the exact same functionality across multiple firmware.

While the M205 G-code command does have the same functionality of setting advanced motion settings in many other popular 3D printer firmware, such as Repetier, Smoothie, and Prusa, it’s possible to observe differences in the syntax.

As a result, we always recommend directly going to the documentation of the firmware you’re using for any G-code-related info, as the knowledge you have for one firmware might not necessarily apply to the other, even when the purpose of the G-code commands are identical.

Wrapping Up

Despite the M205 G-code not being something you will utilize a lot due to it being an advanced configuration command, we believe it’s still a valuable piece of information to keep in mind for when the occasion arises.

To quickly recap, the M205 G-code makes it possible to configure and fine-tune advanced settings related to the motion of the 3D printer, with minimum feed rate (travel moves and print moves) and maximum jerk (X, Y, Z, and E axes) being two of the primary ones that we have all heard about before.

Please note that improperly configuring these settings can prevent your 3D printer from functioning correctly, which is why we only recommend tinkering with the M205 G-code if you are familiar with the settings you’re configuring and their optimal values.

Happy printing!