<p>Figured it out: human error.</p>
<p>I will document the steps I took to resolve nonetheless.</p>
<p>Originally was confused why the probe was failing to probe areas that were clearly in range of the probe head (left and bottom of the print bed) which had me incorrectly thinking the issue was with CRTouch.</p>
<p><a href="https://i.sstatic.net/jZfMr.png" rel="nofollow noreferrer" title="Graphic showing the probe matrix with its default settings"><img src="https://i.sstatic.net/jZfMr.png" alt="Graphic showing the probe matrix with its default settings" title="Graphic showing the probe matrix with its default settings" /></a></p>
<p>Reflashed the firmware with the probe margin set to 2 mm instead of the default 10 mm which helped auto-probe the remaining areas the probe could reach.</p>
<pre><code>#define PROBING_MARGIN 2
</code></pre>
<p><a href="https://i.sstatic.net/FI0uR.png" rel="nofollow noreferrer" title="Graphic showing the probe matrix with a 2 mm margin"><img src="https://i.sstatic.net/FI0uR.png" alt="Graphic showing the probe matrix with a 2 mm margin" title="Graphic showing the probe matrix with a 2 mm margin" /></a></p>
<p>This made it abundantly clear I was an idiot as the probe could not physically reach the unpopulated areas in tandem with the direct drive Sprite hot end.</p>
<p>To complete the mesh I manually probed the three remaining corners (Mesh Edit option on the printer control panel) and then had the firmware smart auto-fill the remaining probe points using the terminal command <a href="https://marlinfw.org/docs/gcode/G029-ubl.html" rel="nofollow noreferrer"><code>G29 P3</code></a>.</p>
<p>The outcome was an extremely accurate mesh that allows full use of the original Ender-3 v1 bed.</p>
<p><a href="https://i.sstatic.net/LL5cm.png" rel="nofollow noreferrer" title="Graphic showing the probe matrix all parts of the bed measured"><img src="https://i.sstatic.net/LL5cm.png" alt="Graphic showing the probe matrix all parts of the bed measured" title="Graphic showing the probe matrix all parts of the bed measured" /></a></p>

CC BY-SA 4.0
2023-02-26T01:47:02.170Z
2023-02-26T02:45:41.427Z
2023-02-26T02:45:41.427Z
Unplanned Outage
<p>I don't know how useful this will be for you now, but I do have a couple of tidbits of info to help others who may have this question and find yours:</p>
<ol>
<li><p>You can replace the stock screws on the Plate that carries the extruder (Carriage). The stock ones are (I believe) M5x30 mm screws, you can replace the top right and bottom (when looking at the carriage from the front) screws with M5x25 mm screws. If you put them in from the back, and use a shorter nut, you can achieve the same range of motion you normally have with the stock extruder.</p>
</li>
<li><p>If you're configuring your own firmware, in <code>Configuration_adv.h</code> in the Marlin Firmware source files, you will find a section called @section Leveling. Here, you can modify the probing margins per axis, per value. You can set both the <code>MESH_MIN</code> and <code>MESH_MAX</code> distances for both X and Y axis.</p>
</li>
</ol>
<p>It should look something like this:</p>
<pre><code>    #if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL)
      // Override the mesh area if the automatic (max) area is too large
      #define MESH_MIN_X 20
      #define MESH_MIN_Y 20
      #define MESH_MAX_X X_MAX_POS - 48
      #define MESH_MAX_Y Y_BED_SIZE - (20)
    #endif
</code></pre>

CC BY-SA 4.0
2023-07-04T01:58:32.883Z
2023-07-04T03:09:07.760Z
2023-07-04T03:09:07.760Z
EchoTree
<p>I've been getting deeper and deeper down the rabbit hole of UBL and I am losing my mind!</p>
<p>Just installed the CR Touch and I am having print issue after print issue with larger prints despite manually leveling the bed (bed adjustment not UBL manual) to the best of my ability.</p>
<ul>
<li>Ender 3 v1</li>
<li>Board: Creality 4.2.7</li>
<li>Firmware: Marlin 2.1.2</li>
<li>Firmware config: <a href="https://www.dropbox.com/s/5bveiho4uh21iea/Configuration.h?dl=0" rel="nofollow noreferrer"><code>configuration.h</code></a></li>
<li>Hotend: Creality Direct Drive Sprite Pro</li>
<li>UBL Sensor: CR Touch</li>
</ul>
<p>The height map clearly shows an issue - I just don't know how to fix it.</p>
<p><a href="https://i.sstatic.net/mbfEP.png" rel="nofollow noreferrer" title="Screenshot of the bed mesh"><img src="https://i.sstatic.net/mbfEP.png" alt="Screenshot of the bed mesh" title="Screenshot of the bed mesh" /></a></p>
<p>Of note - <code>G29 P1</code> will only get through 44 of the 100 touchpoints</p>
<p>Here is the code I ran through to generate the mesh:</p>
<pre><code>G28       ; home all axes
M420 S0   ; Turning off bed leveling while probing, if firmware is set
          ; to restore after G28
M155 S30  ; reduce temperature reporting rate to reduce output pollution
M190 S65  ; (optional) wait for the bed to get up to temperature
G29 P1    ; automatically populate mesh with all reachable points
G29 P3    ; infer the rest of the mesh values
G29 P3    ; infer the rest of the mesh values again
@BEDLEVELVISUALIZER ; tell the plugin to watch for reported mesh
M420 S1 V ; enabled leveling and report the new mesh
G29 S0    ; Save UBL mesh points to slot 0 (EEPROM).
G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
G29 A     ; Activate the UBL System.
M500      ; save the current setup to EEPROM
M155 S3   ; reset temperature reporting
M140 S0   ; cooling down the bed
</code></pre>

<creality-ender-3><marlin><firmware>
Ender 3 CR Touch UBL Fails to Produce Viable Mesh
Unplanned Outage
# Ender 3 CR Touch UBL Fails to Produce Viable Mesh

(Asked by: username_0 on 2023-02-23)

I've been getting deeper and deeper down the rabbit hole of UBL and I am losing my mind!

Just installed the CR Touch and I am having print issue after print issue with larger prints despite manually leveling the bed (bed adjustment not UBL manual) to the best of my ability.

* Ender 3 v1
* Board: Creality 4.2.7
* Firmware: Marlin 2.1.2
* Firmware config: [`configuration.h`](https://www.dropbox.com/s/5bveiho4uh21iea/Configuration.h?dl=0)
* Hotend: Creality Direct Drive Sprite Pro
* UBL Sensor: CR Touch

The height map clearly shows an issue - I just don't know how to fix it.

[![Screenshot of the bed mesh](https://i.sstatic.net/mbfEP.png "Screenshot of the bed mesh")](https://i.sstatic.net/mbfEP.png "Screenshot of the bed mesh")

Of note - `G29 P1` will only get through 44 of the 100 touchpoints

Here is the code I ran through to generate the mesh:

```
G28       ; home all axes
M420 S0   ; Turning off bed leveling while probing, if firmware is set
          ; to restore after G28
M155 S30  ; reduce temperature reporting rate to reduce output pollution
M190 S65  ; (optional) wait for the bed to get up to temperature
G29 P1    ; automatically populate mesh with all reachable points
G29 P3    ; infer the rest of the mesh values
G29 P3    ; infer the rest of the mesh values again
@BEDLEVELVISUALIZER ; tell the plugin to watch for reported mesh
M420 S1 V ; enabled leveling and report the new mesh
G29 S0    ; Save UBL mesh points to slot 0 (EEPROM).
G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
G29 A     ; Activate the UBL System.
M500      ; save the current setup to EEPROM
M155 S3   ; reset temperature reporting
M140 S0   ; cooling down the bed

```

**Tags:** creality-ender-3, marlin, firmware


---

## 2 answers

### Answer by username_0 on 2023-02-26. Score: 0 | Accepted answer

Figured it out: human error.

I will document the steps I took to resolve nonetheless.

Originally was confused why the probe was failing to probe areas that were clearly in range of the probe head (left and bottom of the print bed) which had me incorrectly thinking the issue was with CRTouch.

[![Graphic showing the probe matrix with its default settings](https://i.sstatic.net/jZfMr.png "Graphic showing the probe matrix with its default settings")](https://i.sstatic.net/jZfMr.png "Graphic showing the probe matrix with its default settings")

Reflashed the firmware with the probe margin set to 2 mm instead of the default 10 mm which helped auto-probe the remaining areas the probe could reach.

```
#define PROBING_MARGIN 2

```

[![Graphic showing the probe matrix with a 2 mm margin](https://i.sstatic.net/FI0uR.png "Graphic showing the probe matrix with a 2 mm margin")](https://i.sstatic.net/FI0uR.png "Graphic showing the probe matrix with a 2 mm margin")

This made it abundantly clear I was an idiot as the probe could not physically reach the unpopulated areas in tandem with the direct drive Sprite hot end.

To complete the mesh I manually probed the three remaining corners (Mesh Edit option on the printer control panel) and then had the firmware smart auto-fill the remaining probe points using the terminal command [`G29 P3`](https://marlinfw.org/docs/gcode/G029-ubl.html).

The outcome was an extremely accurate mesh that allows full use of the original Ender-3 v1 bed.

[![Graphic showing the probe matrix all parts of the bed measured](https://i.sstatic.net/LL5cm.png "Graphic showing the probe matrix all parts of the bed measured")](https://i.sstatic.net/LL5cm.png "Graphic showing the probe matrix all parts of the bed measured")


---

### Answer by username_1 on 2023-07-04. Score: 0

I don't know how useful this will be for you now, but I do have a couple of tidbits of info to help others who may have this question and find yours:

1. You can replace the stock screws on the Plate that carries the extruder (Carriage). The stock ones are (I believe) M5x30 mm screws, you can replace the top right and bottom (when looking at the carriage from the front) screws with M5x25 mm screws. If you put them in from the back, and use a shorter nut, you can achieve the same range of motion you normally have with the stock extruder.
2. If you're configuring your own firmware, in `Configuration_adv.h` in the Marlin Firmware source files, you will find a section called @section Leveling. Here, you can modify the probing margins per axis, per value. You can set both the `MESH_MIN` and `MESH_MAX` distances for both X and Y axis.

It should look something like this:

```
    #if EITHER(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL)
      // Override the mesh area if the automatic (max) area is too large
      #define MESH_MIN_X 20
      #define MESH_MIN_Y 20
      #define MESH_MAX_X X_MAX_POS - 48
      #define MESH_MAX_Y Y_BED_SIZE - (20)
    #endif

```


---

