<p>I have an Ender 3 pro and BLTouch and the following procedure works for me, I'll post it because it should be quite the same for all the Creality printers:</p>
<ul>
<li>First of all install <strong>Pronterface</strong> (from the PrintRun software suite), a program that let you interact with the printer from the PC.</li>
<li>Find a USB to mini-USB cable (the port on your printer should be a mini-USB) and connect the PC with the printer</li>
<li>Choose the right COM port between the PC and the printer (you can find the correct one opening the &quot;device manager&quot; on Windows and searching for &quot;COM PORTS&quot;</li>
<li>Then you can connect the printer with the PC and start to interact with it.</li>
<li>From the command line I send the following:</li>
</ul>
<pre><code>G28; (AUTO HOME)
G0 Z0; (Z AXIS move to ZERO)
M211 S0; (DISABLES ENDSTOPS)
</code></pre>
<ul>
<li><p>Then you raise/lower the nozzle from the bed using the &quot;buttons&quot; on the left part of Pronterface, until you find the perfect height (use the piece of paper method). Usually I just calibrate the height in the middle of the bed and that's fair enough if you have leveled the complete bed manually.</p>
</li>
<li><p>When you have found the perfect height for the Z axis, input the following lines:</p>
</li>
</ul>
<pre><code>M114; (GET COORDINATES)
M851 Z[ insert z coordinate here -- see end of the answer ]
M211 S1; (ENABLES ENDSTOPS)
M500; (SAVE VALUES in MEMORY)
</code></pre>
<ul>
<li>After that you should be done. Send again <code>G28</code> and <code>G0 Z0</code> to check if the printer head is now at the correct height: repeat the process above if it's not.</li>
</ul>
<p>When you calculate the Z height in the <code>M851</code> command, bear in mind that you have to do the following:</p>
<p><em>new Z height = old Z height + height corrections done in pronterface</em></p>
<p>For example: my <em>old Z height was -0.2</em> , I <em>lowered the nozzle by -0.5 with Pronterface</em> (to get the nozzle closer to the bed), then my <em>new Z height would be -0.7</em></p>
<p>My start G-CODE in Cura is:</p>
<pre><code>G92 E0 ; Reset Extruder
G28
G29 ; Home all axes
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
</code></pre>

CC BY-SA 4.0
2021-09-06T09:37:52.247Z
2021-09-06T10:07:41.267Z
2021-09-06T10:07:41.267Z
NerfWarrior282
<p>I just upgraded my CR-10 to a 32-bit board with Marlin and a BLTouch for bed-leveling.</p>
<p>Here is my process:</p>
<ol>
<li>Run bed-leveling and save setting to EEPROM</li>
<li>Make sure that software end-stops are off with <code>S211 S0</code></li>
<li>Move Nozzle to Z = 0.1 mm</li>
<li>Use a .1 mm feeler gauge and baby-stepping to create a 0.1 mm nozzle height.</li>
<li>Save the baby-stepping value.</li>
<li>Run print.</li>
</ol>
<p>The print then shoves the nozzle well below bed level and scratches up the bed.</p>
<p>I use the following G-code at the start of each print.  (Added by my slicer)</p>
<pre><code>    G28 ; home all axes
    M420 S1 Z25; Enable Bed mesh leveling
</code></pre>
<p>What am I doing wrong?</p>

CC BY-SA 4.0
2021-08-18T03:22:55.143Z
Correct me if im wrong. I would think the G28 home command at the start of your Gcode will undo any calibration you did to baby step. Is the baby step value saved as a slicer offset? Or some other way?
Kezat
CC BY-SA 4.0
2021-08-18T16:44:51.063Z
Is there a better homing command to use?  How are others doing this?
SvdSinner
CC BY-SA 4.0
2021-08-18T21:35:38.917Z
All done by using the menu structure? You haven't send `M851 Z...` to the printer to store your offset?
0scar
<bed-leveling><nozzle>
Z-Probe height isn't working
SvdSinner
# Z-Probe height isn't working

(Asked by: username_0 on 2021-08-17)

I just upgraded my CR-10 to a 32-bit board with Marlin and a BLTouch for bed-leveling.

Here is my process:

1. Run bed-leveling and save setting to EEPROM
2. Make sure that software end-stops are off with `S211 S0`
3. Move Nozzle to Z = 0.1 mm
4. Use a .1 mm feeler gauge and baby-stepping to create a 0.1 mm nozzle height.
5. Save the baby-stepping value.
6. Run print.

The print then shoves the nozzle well below bed level and scratches up the bed.

I use the following G-code at the start of each print. (Added by my slicer)

```
    G28 ; home all axes
    M420 S1 Z25; Enable Bed mesh leveling

```

What am I doing wrong?

**Tags:** bed-leveling, nozzle

> **Comments:**
> **username_1**: Correct me if im wrong. I would think the G28 home command at the start of your Gcode will undo any calibration you did to baby step. Is the baby step value saved as a slicer offset? Or some other way?  
> **username_0**: Is there a better homing command to use?  How are others doing this?  
> **username_2**: All done by using the menu structure? You haven't send `M851 Z...` to the printer to store your offset?  

---

## 1 answers

### Answer by username_3 on 2021-09-06. Score: 0

I have an Ender 3 pro and BLTouch and the following procedure works for me, I'll post it because it should be quite the same for all the Creality printers:

* First of all install **Pronterface** (from the PrintRun software suite), a program that let you interact with the printer from the PC.
* Find a USB to mini-USB cable (the port on your printer should be a mini-USB) and connect the PC with the printer
* Choose the right COM port between the PC and the printer (you can find the correct one opening the "device manager" on Windows and searching for "COM PORTS"
* Then you can connect the printer with the PC and start to interact with it.
* From the command line I send the following:

```
G28; (AUTO HOME)
G0 Z0; (Z AXIS move to ZERO)
M211 S0; (DISABLES ENDSTOPS)

```

* Then you raise/lower the nozzle from the bed using the "buttons" on the left part of Pronterface, until you find the perfect height (use the piece of paper method). Usually I just calibrate the height in the middle of the bed and that's fair enough if you have leveled the complete bed manually.
* When you have found the perfect height for the Z axis, input the following lines:

```
M114; (GET COORDINATES)
M851 Z[ insert z coordinate here -- see end of the answer ]
M211 S1; (ENABLES ENDSTOPS)
M500; (SAVE VALUES in MEMORY)

```

* After that you should be done. Send again `G28` and `G0 Z0` to check if the printer head is now at the correct height: repeat the process above if it's not.

When you calculate the Z height in the `M851` command, bear in mind that you have to do the following:

*new Z height = old Z height + height corrections done in pronterface*

For example: my *old Z height was -0.2* , I *lowered the nozzle by -0.5 with Pronterface* (to get the nozzle closer to the bed), then my *new Z height would be -0.7*

My start G-CODE in Cura is:

```
G92 E0 ; Reset Extruder
G28
G29 ; Home all axes
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

```


---

