What Is the Ender 3 “Err: Too Far” Error? Causes & Fixes

Setting home offsets is a necessary step to get your Ender 3 correctly configured, as the way the limit switches are positioned doesn’t precisely reflect the print area. Unfortunately, this process may not always go as intended, with the “Err: Too Far” error sometimes getting in the way.

In this guide, we will explain the meaning of the “Err: Too Far” error in detail, find out what can cause this error to show up on your Ender 3, and discuss what you can do to fix the problem.

What Is the Ender 3 “Err: Too Far” Error?

The “Err: Too Far” error, which can pop up on the screen of your Ender 3 after clicking on the Set Home Offsets menu option, practically tells you that the current position of the printer was too far from the reference points at the time you have tried to set the offsets.

ender 3 err too far error message

The rule for the M428 (Home Offsets Here) G-code command (which is the command that gets invoked once you click on Set Home Offsets) to work as intended is for the printer to be positioned within 20 mm (2 cm) of the reference points for each axis, and when this limit is exceeded, even for only one of the axes, the “Err: Too Far” error is displayed on the screen.

The reference point of an axis, in this case, refers to either the position of the corresponding endstop or the default 0 position of the axis, based on whether the endstop is positioned at the min position or the max position and whether the current position of the axis is past the center point in cases where the endstop is positioned at the max position.

m206 g-code source code in marlin

When an endstop is placed at the min position, the 0 position and the endstop position will naturally be the same, and regardless of where the axis is positioned at the time, the reference point will lead to the same exact place.

On the other hand, when an endstop is placed at the max position, the endstop position will be on one end of the axis, and the 0 position on the other, which means that the reference point will be the one that the current position of the axis is closer to at the time.

For instance, if the Z endstop is placed at Zmax (away from the print bed), but the printhead is currently closer to the 0 position (the other end of the Z-axis, close to the print bed) than the Z endstop, the 0 position will be considered the reference point instead of the endstop position, and it will be possible to set home offsets within 20 mm of it.

m428 gcode reference point example

As all the endstops are placed at the min positions of the axes in the case of a default Ender 3, the reference points for the X and Z axes will always be where the printhead contacts the X and Z endstops, and the reference point for the Y axis will always be where the print bed contacts the Y endstop for an Ender 3, provided that you haven’t made modifications.

How to Fix the Ender 3 “Err: Too Far” Error?

Avoiding the “Err: Too Far” error on your Ender 3 practically comes down to one thing, which is to set the home offsets correctly.

Fixing “Err: Too Far” on the X and Y Axes

To start, we will fix the home offsets for the X and Y axes and get them out of the way, as they are both easier to calibrate correctly and less likely to cause this problem.

For this process, you will need to set home offsets for the X and Y axes as usual (move the nozzle to the bottom-left corner of the print bed and click on the Set Home Offsets menu entry), which should work without problems in most cases, as the “Err: Too Far” error usually stems from issues with the Z-axis offset.

That being said, if you encounter this error when setting the X and Y home offsets, it most likely means that either one or both of the reference points are physically too far from the bottom-left corner, making it impossible to use the Set Home Offsets menu entry to set the home offsets correctly.

To verify, you can check the positions of the X and the Y axes when you try to click on Set Home Offsets, and if either (or both) of them is greater than 20 or lesser than -20 with no home offsets currently active (you can check with M503), it practically confirms the nature of the issue you’re having.

In this case, we recommend reading the following section before moving on to the Z-axis, where we will go over two distinct methods you can utilize when a home offset value greater than 20 millimeters is required to correct the home position.

Once you get the home offsets for the X and Y axes sorted without any errors in sight, you can continue with fixing the Z-axis home offset.

Fixing “Err: Too Far” on the Z-Axis

The Z-axis is where things get a bit more complicated, as the presence of an automatic bed leveling probe, such as a BLTouch or CRTouch, changes things slightly, contributing to this error in many cases.

To start, you will need to find the correct Z offset value using the paper (or feeler gauge) method, which works the same way regardless of whether your Ender 3 has an automatic bed leveling probe attached to it.

Once you have the correct position, the next step will be to set the offset, and the process to do so will vary based on whether you’re using an automatic bed leveling probe.

Setting Z Home Offset (without Auto Bed Leveling Probe)

If your Ender 3 has a standard limit switch on the Z-axis, you should be able to use the Set Home Offsets menu entry to set the Z-axis home offset.

Provided the distance between the endstop and the print bed isn’t larger than 20 millimeters, the command should work without problems.

On the other hand, offsets won’t be helpful if the Z limit switch and the print bed are somehow positioned in a way that causes the distance between the two to be larger than 20 millimeters, as physical constraints will be involved in such a scenario.

In this case, you wouldn’t be able to apply the paper method to find the Z offset, as homing would fail due to the nozzle crashing into the print bed before activating the limit switch (limit switch below the bed), or it would be impossible to get the printhead close enough to the bed due to the limit switch blocking movement (limit switch above the bed).

To fix this problem, you will need to bring the limit switch and the print bed closer to each other, which can be done in two ways.

The first method we recommend is to turn the bed leveling knobs to either push the bed up or pull it down, which can help bring the limit switch and the bed closer to each other in a convenient way without any disassembly required.

On the other hand, as the range of motion is somewhat limited for the first method, in cases where turning the bed leveling knobs cannot bring the bed close enough to the limit switch, you will need to unscrew the limit switch and modify its positioning instead, which can be a bit more complicated.

Once you get the limit switch and the print bed close enough, you can once again utilize the Z home offset for the fine-tuning part.

Setting Z Probe Offset (with Auto Bed Leveling Probe)

According to the community feedback we have seen so far, the “Err: Too Far” error is especially common with printers that have an auto bed leveling probe attached to them, as the correct command to set the Z offset changes in this case.

When setting the Z-axis offset with an auto bed leveling probe, you will need to use the Probe Z Offset (M851 G-Code) menu entry instead of Set Home Offsets, which is the correct way of specifying the distance between the nozzle and the probe.

While the exact wording of the Probe Z Offset command and its location in the menu can vary based on the firmware you’re using, you should be able to find a command that achieves this effect in any BLTouch-enabled firmware’s menus.

In this case, all you will need to do is enter the Z-axis value you found earlier with the paper method as the Probe Z Offset value (don’t forget to Store Settings afterward), which won’t be constrained by the 20 mm limit like the Set Home Offsets command does, and won’t produce the “Err: Too Far” error.

To verify that the offset is indeed working, you can home your Ender 3 and bring the Z-axis to the 0 position (if the firmware doesn’t do that for you automatically after homing), which should correctly position the nozzle at the exact position you have found when using the paper method.

What to Do When a Home Offset Greater Than 20 mm (or Lesser Than -20 mm) Is Required?

While the Set Home Offsets menu entry on your Ender 3 is constrained by the 20 mm limit, there are alternative methods that will allow you to achieve the same effect when greater physical distances are involved.

Set Home Offsets with M206

The direct alternative to setting the home offsets with Set Home Offsets (M428) is to use the M206 G-code, which allows you to set the X, Y, and Z home offsets without a limit.

Unlike the M428 G-code, which sets the home offsets based on the current position of the axes, M206 G-code accepts three parameters of X, Y, and Z and three values to go with them, which become the new home offsets.

When using the M206 G-code, one crucial thing to pay attention to is negating the axes’ current values to find the offset values, as this is the correct method of calculating offsets from current positions.

For instance, if the nozzle is correctly positioned at the bottom-left corner of the bed at X20 Y30, the command you will want to run to set the home offsets correctly is M206 X-20 Y-30, which will shift the print area 20 mm to the right side, and 30 mm to the back, making X20 Y30 the new home (X0 Y0) position.

Set Minimum and Maximum Positions

Another way to bypass the 20 mm limit of the Set Home Offsets command is to set the minimum and maximum positions for the axes directly.

While this isn’t technically the same thing as setting offsets, it’s possible to use this method to achieve the same effect of effectively shifting the position of the print area and correcting the home position.

To set the minimum and maximum positions, the first step you will need to take is to locate the X_MIN_POS, X_MAX_POS, Y_MIN_POS, Y_MAX_POS, Z_MIN_POS, and Z_MAX_POS variables in the Configuration.h file of Marlin firmware.

marlin x y z min max position variables

Once you have located the variables, you will need to add the offset to both the minimum and the maximum position variables for the axis you would like to modify, which will shift the print area while keeping its size the same.

For instance, if you would like to add an X-axis offset of -30, with the default values of X_MIN_POS being 0 and X_MAX_POS being 200, you would need to set the value of X_MIN_POS to -30 and the value of X_MAX_POS to 170.

modifying x min and max position in marlin source code

This change would shift the print area 30 mm to the right by telling the printer that the location of the X-axis limit switch should now be considered the -30 position rather than 0, but also keep the X-axis length stable at 200 mm by changing the position of the opposite edge of the axis accordingly.

Similar to any other change that involves making edits to the configuration file, you will need to compile the firmware from the source code and flash it to your Ender 3 for the changes to be active as the last step of the process.

As it’s possible to edit the minimum and maximum positions directly from the Ender 3 screen in some firmware, such as Professional Firmware for Ender 3 V2/S1, it can be a good idea to inspect the menus thoroughly before going down the configuration file route, as this will save you from the extra steps of compiling and re-flashing.

ender 3 v2 x y position setting in professional firmware


Now that you know what exactly the “Err: Too Far” error means, why it can appear on your Ender 3’s screen, and what you can do to fix it, we hope that you will be able to get your printer in working condition again and get back to enjoying your prints in no time.

While the “Err: Too Far” error can be challenging to diagnose due to the many factors involved, it should be solvable in almost every case as it’s an error that stems from problems related to configuration rather than something being wrong with the hardware of your Ender 3.