<p>Tiny Machines firmware is based on Marlin firmware. Note that I personally am more comfortable using the original sources than a fork or copy from another derivative source. Using a derivative means that you will have to wait a second development commitment to post new features and bug fixes.</p>

<p>A similar reasoning is applicable using premade hex files opposed to compiling the sources yourself.</p>

<p>There are 2 things (related to the bed X, Y positioning) you need to be aware of when using a Z probe. When using the probe you must ensure that the probe deploys on the bed during probing.</p>

<p>First, define in your firmware that the probe can only deploy in the center of the build plate. In e.g. Marlin firmware this is described in the configuration.h; you need to enable <code>Z_SAFE_HOMING</code>:</p>

<pre>
// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
#define Z_SAFE_HOMING
</pre>

<p>Second, you need to define a confined bed area for the sensor to deploy, this is described in question: "<a href="/q/8153">How to set Z-probe boundary limits in firmware when using automatic bed leveling?</a>".</p>

<hr>

<p>Note that flashing an existing firmware does not guarantee anything, the used firmware from Tiny Machines (or e.g. from TH3D) try to simplify the firmware configuration for you by adding additional specific settings/constants (<code>#defines</code>), underneath the waterline all sorts of things are then handled for you. Personally I'd like to be in control and do the modifications myself. If the probe position you use is different from the probe position used in the pre-build firmware you will not be able to use this firmware safely. We can check this: e.g. in the Tiny Machines firmware there are 3 predefined positions for the sensor, in the sources itself none is active (see below), so it is not known which option is used for compiling the hex files they made available:</p>

<pre>
//#define CREALITY_ABL_MOUNT //Using creality ABL mount
//#define E3D_DUALFAN_MOUNT // Using HD Modular mount as above with 2 5015 blowers and sensor on the right
//#define E3D_PROBEMOUNT_LEFT // Default is probe mounted to the right for E3D. Set this to invert.
</pre>

<p>When you define one of these options above, the probe position can be read from:</p>

<pre>
   #if (ANY(ABL_BLTOUCH, ABL_EZABL,ABL_NCSW) && ANY(HotendE3D, HotendMosquito))
    #if ENABLED(E3D_DUALFAN_MOUNT)
      #if ENABLED(E3D_PROBEMOUNT_LEFT)
        #define NOZZLE_TO_PROBE_OFFSET { -63, 5, 0 }
      #else
        #define NOZZLE_TO_PROBE_OFFSET { 63, 5, 0 }
      #endif
    #else
      #define NOZZLE_TO_PROBE_OFFSET { 32, 5, 0 }
    #endif
   #endif
</pre>

<p>You will see that the <code>E3D_PROBEMOUNT_LEFT</code> and <code>E3D_DUALFAN_MOUNT</code> need to be active (you see that <code>E3D_PROBEMOUNT_LEFT</code> is embedded in the <code>E3D_DUALFAN_MOUNT</code> option, this cannot be correct...) to get a probe offset of (-63, +5) which is close to your probe (60 mm to the left and 6 mm forward translates to (-60, +6)). This is exactly why I use the Marlin firmware from the main source code, not a simplified derivative (which in this case is not accurate and unknown what options are used in the pre-build hex files).</p>

<p>Please note that the original Marlin sources also maintain configuration files for many printer types, e.g. the CR-10S is also listed in <a href="https://github.com/MarlinFirmware/Configurations/tree/master/config/examples/Creality" rel="nofollow noreferrer">this overview</a>. </p>

CC BY-SA 4.0
2020-02-02T11:40:11.323Z
Many thanks for your time and help. the only reference to what you have described is:#if PROBE_SELECTED
  #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE 
  #define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE
  #define MIN_PROBE_EDGE_FRONT (MIN_PROBE_EDGE + 5) 
  #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE + ClipClearance) 
#endif.  I am very new on modifying these text lines, How would you alter these?, I have tried adding a number after the line but i get an error
paul harper
CC BY-SA 4.0
2020-02-02T08:01:16.183Z
2020-03-03T21:51:07.777Z
2020-03-03T21:51:07.777Z
0scar
<p>I have finally sorted the problems out with the frozen screen, but inevitably there's always more to take there place.</p>

<p>I have installed the latest version of the 'Tiny Machines' Firmware but on trying to do a 'Level' on the bed the nozzle/BLTouch sensor moves to the front left corner and tries to take a 'level' reading whilst the BLTouch sensor is 20&nbsp;mm off the build surface, so the nozzles hits the build surface.</p>

<p>Can anyone point me in the right direction to where the settings are to correct this?</p>

<p>I have an E3D v6 HotEnd and to the left of that is the BLTouch Sensor (60&nbsp;mm to the left and 6&nbsp;mm forward).</p>

CC BY-SA 4.0
2020-02-02T08:09:35.203Z
Hi, welcome to 3DPrinting.SE! Are you compiling the sources yourself, or use a premade hex file? Which Marlin version?
0scar
<creality-cr-10><bltouch>
BLTouch missing build plate on levelling
paul harper
# BLTouch missing build plate on levelling

(Asked by: username_0 on 2020-02-01)

I have finally sorted the problems out with the frozen screen, but inevitably there's always more to take there place.

I have installed the latest version of the 'Tiny Machines' Firmware but on trying to do a 'Level' on the bed the nozzle/BLTouch sensor moves to the front left corner and tries to take a 'level' reading whilst the BLTouch sensor is 20 mm off the build surface, so the nozzles hits the build surface.

Can anyone point me in the right direction to where the settings are to correct this?

I have an E3D v6 HotEnd and to the left of that is the BLTouch Sensor (60 mm to the left and 6 mm forward).

**Tags:** creality-cr-10, bltouch

> **Comments:**
> **username_1**: Hi, welcome to 3DPrinting.SE! Are you compiling the sources yourself, or use a premade hex file? Which Marlin version?  

---

## 1 answers

### Answer by username_1 on 2020-02-02. Score: 1

Tiny Machines firmware is based on Marlin firmware. Note that I personally am more comfortable using the original sources than a fork or copy from another derivative source. Using a derivative means that you will have to wait a second development commitment to post new features and bug fixes.

A similar reasoning is applicable using premade hex files opposed to compiling the sources yourself.

There are 2 things (related to the bed X, Y positioning) you need to be aware of when using a Z probe. When using the probe you must ensure that the probe deploys on the bed during probing.

First, define in your firmware that the probe can only deploy in the center of the build plate. In e.g. Marlin firmware this is described in the configuration.h; you need to enable `Z_SAFE_HOMING`:

```

// Use "Z Safe Homing" to avoid homing with a Z probe outside the bed area.
//
#define Z_SAFE_HOMING

```

Second, you need to define a confined bed area for the sensor to deploy, this is described in question: "[How to set Z-probe boundary limits in firmware when using automatic bed leveling?](/q/8153)".

---

Note that flashing an existing firmware does not guarantee anything, the used firmware from Tiny Machines (or e.g. from TH3D) try to simplify the firmware configuration for you by adding additional specific settings/constants (`#defines`), underneath the waterline all sorts of things are then handled for you. Personally I'd like to be in control and do the modifications myself. If the probe position you use is different from the probe position used in the pre-build firmware you will not be able to use this firmware safely. We can check this: e.g. in the Tiny Machines firmware there are 3 predefined positions for the sensor, in the sources itself none is active (see below), so it is not known which option is used for compiling the hex files they made available:

```

//#define CREALITY_ABL_MOUNT //Using creality ABL mount
//#define E3D_DUALFAN_MOUNT // Using HD Modular mount as above with 2 5015 blowers and sensor on the right
//#define E3D_PROBEMOUNT_LEFT // Default is probe mounted to the right for E3D. Set this to invert.

```

When you define one of these options above, the probe position can be read from:

```

   #if (ANY(ABL_BLTOUCH, ABL_EZABL,ABL_NCSW) && ANY(HotendE3D, HotendMosquito))
    #if ENABLED(E3D_DUALFAN_MOUNT)
      #if ENABLED(E3D_PROBEMOUNT_LEFT)
        #define NOZZLE_TO_PROBE_OFFSET { -63, 5, 0 }
      #else
        #define NOZZLE_TO_PROBE_OFFSET { 63, 5, 0 }
      #endif
    #else
      #define NOZZLE_TO_PROBE_OFFSET { 32, 5, 0 }
    #endif
   #endif

```

You will see that the `E3D_PROBEMOUNT_LEFT` and `E3D_DUALFAN_MOUNT` need to be active (you see that `E3D_PROBEMOUNT_LEFT` is embedded in the `E3D_DUALFAN_MOUNT` option, this cannot be correct...) to get a probe offset of (-63, +5) which is close to your probe (60 mm to the left and 6 mm forward translates to (-60, +6)). This is exactly why I use the Marlin firmware from the main source code, not a simplified derivative (which in this case is not accurate and unknown what options are used in the pre-build hex files).

Please note that the original Marlin sources also maintain configuration files for many printer types, e.g. the CR-10S is also listed in [this overview](https://github.com/MarlinFirmware/Configurations/tree/master/config/examples/Creality).

> **Comments:**
> **username_0**: Many thanks for your time and help. the only reference to what you have described is:#if PROBE_SELECTED   #define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE    #define MIN_PROBE_EDGE_RIGHT MIN_PROBE_EDGE   #define MIN_PROBE_EDGE_FRONT (MIN_PROBE_EDGE + 5)    #define MIN_PROBE_EDGE_BACK (MIN_PROBE_EDGE + ClipClearance)  #endif.  I am very new on modifying these text lines, How would you alter these?, I have tried adding a number after the line but i get an error  

---

