While 3D printers making their way into our homes is an incredible advancement in itself, successfully going through the process of printing something with your 3D printer isn’t always straightforward yet. As we are at a stage where there is a multitude of things to troubleshoot, technical knowledge is usually required to solve the problems you may face.
For this reason, today, we will be talking about one of the most commonly asked questions about one of the most popular 3D printers on the market, as we believe that this information is crucial to everyone who owns an Ender 3 (Pro/V2).
So, what is the set home offsets command on the Ender 3, Ender 3 Pro, and Ender 3 V2?
The set home offsets command on the Ender 3 (Pro/V2) sets the X, Y, and Z home offsets relative to the linear distance between the front-left corner of the printer bed and the Y end stop (Y offset), and the linear distances between the nozzle and the X and Z end-stops (X and Z offsets).
For instance, if you use this command while the printer is set at X10 Y0 Z0, you would be setting the X home offset to -10. In this case, X10 Y0 Z0 would be the new origin point (0,0,0) for the upcoming printing process, with the nozzle located 10mm to the right of the X-axis end-stop.
If you are having trouble with your prints not being centered on the bed, you can use this command to adjust the home offsets and fix the centering issues.
As this can be confusing to understand, let’s first get into more detail about what home offsets are and why it’s necessary to ensure you set them correctly, both in the settings of your slicer and your 3D printer.
What Are Home Offsets?
Home offsets are split into three different numbers, with each number representing the offset of a single axis.
The Ender 3 is a Mendel-style printer where the hotend can only move in the X-axis and the Z-axis. As a result of this, the movement in Y-axis is provided by the movement of the printer bed.
The Y-axis home offset is the linear distance between the left-bottom corner of the printer bed and the Y-axis end stop, and the X-axis/Z-axis home offsets are the linear distances between the nozzle and the X-axis/Z-axis endstops.
End-stops are switches located at the end of each axis (X, Y, Z), effectively determining the origin point of the entire motion space of the printer. The end-stops of the Ender 3 are located at the left-front by design, but right-rear placement is also possible.
The purpose of the home offsets is to correct any positional inconsistencies that may occur after the homing process, which usually stem from factors such as the endstops being positioned incorrectly.
If you have been paying attention to the start of a printing process, you might have noticed that the printer bed moves to the end-stop on the Y-axis, whereas the nozzle moves to the end-stops on the X-axis and Z-axis.
This process is known as auto-homing, and even though you can do this manually, your slicer automatically adds the G-code required to execute this process before every print. After this process, the printer knows that both the nozzle and the bed are at the origin point.
After you complete the auto-homing process, the bed and the nozzle move to the coordinates determined by the home offsets, and the printing process starts.
Let’s go over a couple of examples to understand how home offsets work.
When you set the home offsets to X0 Y0 Z0, the origin points of the printer bed and the printhead would be equal to the origin point of the entire print space, meaning that the printer bed and the printhead would be located where the end stops are.
On the other hand, if you set the home offsets to X20 Y10 Z0, the left-front corner of the printer bed would be 10 millimeters away from the Y end-stop, and the printhead would be 20 millimeters away from the X end-stop.
Setting the Home Offsets on Your Ender 3 (Pro/V2)
Setting the home offsets on your Ender 3 can be done in a few different ways, so feel free to pick the one that is easiest for you.
Using the Ender 3 Interface
To set the home offsets on the interface of your Ender 3, the first thing you will have to do is to set the X, Y, and Z axes to the desired positions.
To set the axes, go into the Prepare menu and choose the Move axis option. Doing so will bring up a menu where you can select each axis individually. Upon selecting an axis, you will be able to choose whether you would like to move the axis with increments of 10mm, 1mm, or 0.1mm. By simply turning the knob after choosing one of the options, you will be able to move the axis to the desired position.
After you move all the axes to the desired positions, go to the Prepare menu once again, and select the Set home offsets option. This option will set the current linear distances between the axes and their endstops as the home offsets.
For your configuration to persist through power cycles, there is one more step you will need to take, which is to save the configuration to the EEPROM.
To save the configuration, go to the Control menu, and select the Store settings option. This option will allow your current settings to be saved to the EEPROM, allowing them to be retained even if the printer is powered off.
Using your PC (OctoPrint, Pronterface, etc.)
If you are using your PC to set the home offsets of your Ender 3, you are presented with two different options.
Using the M428 (Home Offsets Here) G-Code
Usage – M428
The M428 G-code works the same way as the Set home offsets option on the Ender 3 interface does, meaning that you will have to move the axes before using this command.
To move the axes, you can use the G1 (Linear Move) command. For instance, G1 X10 would set the X-axis to 10mm.
After setting the axis, run the M428 command to set the X home offset to -10 (X10 becomes the new X0, and X0 becomes X-10) and the M500 command to save your settings to the EEPROM.
Using the M206 (Set Home Offsets) G-Code
Usage – M206 X<offset> Y<offset> Z<offset>
Using the M206 G-code allows you to set the home offsets by passing the values instead of having to move the axes to their positions first.
For instance, the command M206 X10 Y20 Z0.5 would instantly set the home offsets to the X10 Y20 Z0.5 positions without you moving the axes manually.
You don’t have to pass all of the axes as values, meaning that you can set only one offset or two offsets if you wish to.
For instance, you can use the command M206 X20 Y20 to set the X and Y home offsets without changing the Z offset.
Once again, you should save your settings to the EEPROM by using the M500 (Save Settings) G-code.
How Do Home Offsets Affect the Printing Process?
Home offsets are a vital factor to consider before starting to print as wrongly set offsets can cause your print to be off-center, and in worse cases, cause the filament to fall into space instead of the printer bed.
That being said, the most significant point to consider here, before diving into the home offsets, is to ensure that the print bed dimensions in your slicer matches the physical dimensions of your 3D printer’s bed. If the dimensions of the slicer don’t match with the dimensions of the print bed, the G-code would be generated wrongly, causing your print to be mispositioned.
If you are having trouble with your prints being off-centered, even when there are no issues related to the print bed dimension configuration, taking a look at the home offset settings of your printer can most likely be helpful to solve the problem at hand.
How Do You Invoke the Auto-Home Function in Ender 3 (Pro/V2)?
Invoking the auto-home function of the Ender 3 is quite simple.
If you’re using the interface on your Ender 3, you can auto-home your Ender 3 by going to the Prepare menu and choosing the Auto home option.
On the other hand, if you have connected your Ender 3 to your computer, you can also auto-home the Ender 3 with the G28 G-code.
What To Do If Ender 3 (Pro/V2) Auto-Home Is Off the Printer Bed?
A common question related to the auto-home command is about the nozzle placing itself off the printer bed.
Most users think that there is a problem with their printer when they see that the nozzle isn’t aligned with the printer bed after using this function.
In reality, this is intended behavior. The command is designed to function this way to avoid a possible collision between the nozzle and the printer bed in a situation where the printer bed isn’t leveled.
The set home offsets command on the Ender 3 (Pro/V2) is an easy way to configure the X, Y, and Z home offsets of your printer as it automatically saves the current position of your printer as the home offsets.
With this feature, by simply issuing move commands to the desired X, Y, and Z positions, you can save the home offsets with the click of a button and resolve any issues you are having with the mispositioning of your prints, provided that there is no other misconfiguration involved related to the dimensions of the print bed.
Mike started his 3D printing journey with the Anet A8 when it first came out back in 2017, and has been obsessed with 3D printers ever since. Nowadays, he primarily uses his Ender 3 to print functional parts that make his life more convenient whenever possible.