<p>A friend and I ran into this problem with TH3D and this was the workaround for <strong>our</strong> situation. Pretty sure I know what's causing it, but I haven't had the chance to rebuild the firmware yet to test it.</p>
<p>Autohome, update your bed mesh, either through the menu or via the terminal with <code>G28</code> &amp; <code>G29</code>. Store settings via menu or <code>M500</code> via terminal.</p>
<p>Reboot/power cycle the printer, autohome/<code>G28</code>, and insert <code>M420 S</code> into your print file G-code <strong>after</strong> <code>G28</code>.</p>
<p>Let me know if it works.</p>

CC BY-SA 4.0
2023-05-10T17:00:31.357Z
Have you found the cause of this issue by chance? I am running into same results with the TH3D firmware and your solution using the M240 S instead of G29 has been my only working solution.
Eric Sutter
CC BY-SA 4.0
2022-11-20T03:16:28.850Z
2022-11-20T04:12:26.597Z
2022-11-20T04:12:26.597Z
Greasy Geek
<p>Do you still have this issue? My Ender with a BLTouch won't respect the Z-off set setting in <strong>Motion</strong> &gt; <strong>Control</strong> &gt; <strong>ZOffset</strong>. You can change it to -10 and it will still start printing about 1 cm above the bed.</p>
<p>All of this started to happen after I used <strong>Bed Leveling</strong> from the prepare menu. To work around the issue, I reset the settings <strong>Initialize EPROM</strong> in the control menu.</p>
<ol>
<li>Reset All settings <strong>Initialize EPROM</strong></li>
<li>Set the Z-offset (In my case -3.3)</li>
<li>Store settings in the control menu</li>
<li>Switch off the printer (settings won't take effect even if you select to load settings)</li>
</ol>
<p>Then start printing. This doesn't solve the issue because it defeats the purpose of having a BLTouch in the first place. but at least I'm able to print again.</p>
<p>In a nutshell, avoiding auto bed leveling does the trick (or at least in my case)</p>

CC BY-SA 4.0
2022-05-01T14:19:32.620Z
2023-05-11T10:18:18.300Z
2023-05-11T10:18:18.300Z
Martin Viljoen TheTechTinker T
<p>I'm pretty sure something is wrong with the firmware I downloaded. I flashed the 3/5/21 version of Marlin firmware from <a href="https://marlin.crc.id.au/" rel="noreferrer">https://marlin.crc.id.au/</a> and it is somehow working better with the LCD firmware (which I got from TH3D), the Z offset is working as it should, and the leveling process has more points and goes faster.</p>

CC BY-SA 4.0
2023-05-11T10:21:13.960Z
Please don't forget to mark your answer as the accepted answer (if it is indeed the correct answer). Thanks
Greenonline
CC BY-SA 4.0
2021-03-06T05:07:48.127Z
2021-03-06T05:07:48.127Z
Nate Hitze
<p>I had the BLTouch (3.1) working with stock firmware on an Ender 3 v2 but wanted to get a 5x5 mesh instead of the 3x3 so I installed the TH3D firmware. With the stock firmware my Z-offset was -2.95 mm.</p>
<p>After installing TH3D firmware, my Z-offset has to be in excess of -6 mm to reach the same nozzle-to-bed height. I've tried setting the Z-offset via LCD and through G-code, saving to EEPROM. I'm having 2 problems with this that I assume are connected:</p>
<ol>
<li>Z-offset seems to not be applied when setting Z axis position. When I autohome and then set Z axis to 0, even the extended probe from the BLTouch does not touch the bed (it's actually 1-2 mm away from touching). And this is with the Z-offset set to -6 mm.</li>
<li>I tried running a print, which includes an ABL request (<code>G29</code>), the print head crashed into the bed immediately after finishing levelling. My hunch is that when starting to print the -6 mm Z-offset starts being correctly taken into account.</li>
</ol>
<p>Could this be the result of something I did in the Configuration.h when compiling the firmware?</p>
<p>I made the following changes:</p>
<p><a href="https://github.com/th3dstudio/UnifiedFirmware/blob/2.0.x/Board%20Configuration%20Files/CrealityV42X/Firmware/Marlin/Configuration.h" rel="nofollow noreferrer">CrealityV42X/Firmware/Marlin/Configuration.h</a></p>
<ul>
<li>Line 24: uncommented <code>#define ENDER3_V2_V422_BOARD</code></li>
<li>Line 43: uncommented <code>#define CUSTOM_PROBE</code></li>
<li>Line 66: changed <code>#define EZABL_POINTS</code> from 3 to 5</li>
<li>Line 124: changed <code>#define NOZZLE_TO_PROBE_OFFSET</code> from <code>{ 10, 10, 0}</code> to <code>{ -44, -6, 0 }</code></li>
<li>Line 233: uncommented <code>#define BLTOUCH</code></li>
<li>Line 235: uncommented <code>#define SERVO0_PIN PB0</code></li>
<li>Line 636: commented out <code>#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN</code></li>
<li>Line 636: added <code>#define USE_PROBE_FOR_Z_HOMING</code></li>
</ul>
<p>In <a href="https://github.com/th3dstudio/UnifiedFirmware/blob/2.0.x/Firmware/Marlin/Configuration_backend.h" rel="nofollow noreferrer">Configuration_backend.h</a> the only change I made was increasing <code>Z_PROBE_OFFSET_RANGE_MIN</code> from -5 to -20.</p>

CC BY-SA 4.0
2021-03-05T09:57:19.110Z
It could well be a configuration problem, but having no access to the configuration it is impossible to assess if that is the case. You could post a link to your configuration in comments to  a file put on PasteBin or your own Github repository fork. Regular users can look into it and copy the relevant parts into the question for you and base their answer on this. Hope this helps!
0scar
CC BY-SA 4.0
2021-03-05T15:36:19.657Z
@0scar I've added the configuration changes I made, confirmed with a diff between the files. Thanks!
Nate Hitze
CC BY-SA 4.0
2021-03-08T13:23:11.760Z
You can simply change the dimension of the probe grid in proper Marlin with the "GRID_MAX_POINTS_X" setting. No need to use TH3Ds obsolete copy.
towe
<creality-ender-3><bltouch><th3d>
Z offset not working after flashing TH3D firmware
Nate Hitze
# Z offset not working after flashing TH3D firmware

(Asked by: username_0 on 2021-03-05)

I had the BLTouch (3.1) working with stock firmware on an Ender 3 v2 but wanted to get a 5x5 mesh instead of the 3x3 so I installed the TH3D firmware. With the stock firmware my Z-offset was -2.95 mm.

After installing TH3D firmware, my Z-offset has to be in excess of -6 mm to reach the same nozzle-to-bed height. I've tried setting the Z-offset via LCD and through G-code, saving to EEPROM. I'm having 2 problems with this that I assume are connected:

1. Z-offset seems to not be applied when setting Z axis position. When I autohome and then set Z axis to 0, even the extended probe from the BLTouch does not touch the bed (it's actually 1-2 mm away from touching). And this is with the Z-offset set to -6 mm.
2. I tried running a print, which includes an ABL request (`G29`), the print head crashed into the bed immediately after finishing levelling. My hunch is that when starting to print the -6 mm Z-offset starts being correctly taken into account.

Could this be the result of something I did in the Configuration.h when compiling the firmware?

I made the following changes:

[CrealityV42X/Firmware/Marlin/Configuration.h](https://github.com/th3dstudio/UnifiedFirmware/blob/2.0.x/Board%20Configuration%20Files/CrealityV42X/Firmware/Marlin/Configuration.h)

* Line 24: uncommented `#define ENDER3_V2_V422_BOARD`
* Line 43: uncommented `#define CUSTOM_PROBE`
* Line 66: changed `#define EZABL_POINTS` from 3 to 5
* Line 124: changed `#define NOZZLE_TO_PROBE_OFFSET` from `{ 10, 10, 0}` to `{ -44, -6, 0 }`
* Line 233: uncommented `#define BLTOUCH`
* Line 235: uncommented `#define SERVO0_PIN PB0`
* Line 636: commented out `#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN`
* Line 636: added `#define USE_PROBE_FOR_Z_HOMING`

In [Configuration\_backend.h](https://github.com/th3dstudio/UnifiedFirmware/blob/2.0.x/Firmware/Marlin/Configuration_backend.h) the only change I made was increasing `Z_PROBE_OFFSET_RANGE_MIN` from -5 to -20.

**Tags:** creality-ender-3, bltouch, th3d

> **Comments:**
> **username_1**: It could well be a configuration problem, but having no access to the configuration it is impossible to assess if that is the case. You could post a link to your configuration in comments to  a file put on PasteBin or your own Github repository fork. Regular users can look into it and copy the relevant parts into the question for you and base their answer on this. Hope this helps!  
> **username_0**: @username_1 I've added the configuration changes I made, confirmed with a diff between the files. Thanks!  
> **username_2**: You can simply change the dimension of the probe grid in proper Marlin with the "GRID_MAX_POINTS_X" setting. No need to use TH3Ds obsolete copy.  

---

## 3 answers

### Answer by username_0 on 2021-03-06. Score: 5 | Accepted answer

I'm pretty sure something is wrong with the firmware I downloaded. I flashed the 3/5/21 version of Marlin firmware from <https://marlin.crc.id.au/> and it is somehow working better with the LCD firmware (which I got from TH3D), the Z offset is working as it should, and the leveling process has more points and goes faster.

> **Comments:**
> **username_6**: Please don't forget to mark your answer as the accepted answer (if it is indeed the correct answer). Thanks  

---

### Answer by username_3 on 2022-11-20. Score: 2

A friend and I ran into this problem with TH3D and this was the workaround for **our** situation. Pretty sure I know what's causing it, but I haven't had the chance to rebuild the firmware yet to test it.

Autohome, update your bed mesh, either through the menu or via the terminal with `G28` & `G29`. Store settings via menu or `M500` via terminal.

Reboot/power cycle the printer, autohome/`G28`, and insert `M420 S` into your print file G-code **after** `G28`.

Let me know if it works.

> **Comments:**
> **username_4**: Have you found the cause of this issue by chance? I am running into same results with the TH3D firmware and your solution using the M240 S instead of G29 has been my only working solution.  

---

### Answer by username_5 on 2022-05-01. Score: 1

Do you still have this issue? My Ender with a BLTouch won't respect the Z-off set setting in **Motion** > **Control** > **ZOffset**. You can change it to -10 and it will still start printing about 1 cm above the bed.

All of this started to happen after I used **Bed Leveling** from the prepare menu. To work around the issue, I reset the settings **Initialize EPROM** in the control menu.

1. Reset All settings **Initialize EPROM**
2. Set the Z-offset (In my case -3.3)
3. Store settings in the control menu
4. Switch off the printer (settings won't take effect even if you select to load settings)

Then start printing. This doesn't solve the issue because it defeats the purpose of having a BLTouch in the first place. but at least I'm able to print again.

In a nutshell, avoiding auto bed leveling does the trick (or at least in my case)


---

