I recently added a Creality BLTouch v3.1 to my Ender 3 which has a MKS Base v 1.6 motherboard and is running Marlin 2.0, but the Z-min never triggers.

I have made sure that the BLTouch unit lights up, uses the provided mount for the Ender 3 to get proper placement and is connected to the Z-min pins. Additionally, I have followed multiple youtube videos for connecting/setting the right parameters for the sensor. However, I haven't found the right combo.

I have tried both BLTouch and Creality BLTouch, different pin number assignments (other than the standard Z-min pin), but the status doesn't change with or without the sensor pushed in. Looking for suggestions on settings to apply, or if anyone has had this issue.

See pictures below:

  1. Connection to motherboard, tried using the other pin on the z min, and switching the black/white wires to see if they we're connecting wrong.
  2. BLTouch depressed which lights up as expected.
  3. BLTouch not illuminated when open.

Motherboard connections

BLTouch depressed & illuminated

BLTouch open & not illuminated

  • $\begingroup$ I updated the firmware and enabled BLTOUCH as well as AUTO_BED_LEVELING_LINEAR. When I powered on the printer, the unit does a self test and returns to the "triggered" position and the light is on, however Marlin still sees it as open. I also have Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN defined so I would expect it to recognize the BLTOUCH status correctly. $\endgroup$ Jan 26, 2021 at 20:18
  • $\begingroup$ What do you mean with "Marlin still sees it as open"? Please update the PasteBin files with the latest configuration edits, the first posted are now out of date. $\endgroup$
    – 0scar
    Jan 27, 2021 at 8:41
  • $\begingroup$ Only changed Configuration.h so here's the link for that pastebin.com/r72JJTya If I run M119 to check the end stop statuses, Marlin only shows the Z stop as "Open". I can trigger the BLTouch and see that the light is red, but after issuing the M119 command, Marlin tells me Recv: z_min: open. If I pull out the sensor on the BLTouch and the light is off, I get the same message from the M119 command. I also tried this on all 4 server pin sets just in case I hadn't put the correct pin in my config, and each time the BLTouch completed the self test as expected. $\endgroup$ Jan 27, 2021 at 16:51
  • $\begingroup$ Why would you want to run M119 with a BLTouch? That doesn't make sense to me, furthermore it is the first time I ever heard anybody do that. The documentation already expresses that you cannot do that! The BLTOUCH probe only sends a brief pulse, so “TRIGGERED” indicates the probe is in error state. So, your status being open is a good thing! $\endgroup$
    – 0scar
    Jan 28, 2021 at 7:47
  • $\begingroup$ Ah I had missed that bit. That's good to know that the seeing the open status is good in this case. Through Octoprint I tried to run the bed leveling function which called G28 command, but during the homing process, the Z axis kept trying to decrease and ran into the physical stop on the Z axis. If I take out the physical stop, the hot end continues to press down on the bed, so I end up killing power to the printer. I have set the probe offset to what others have said is right for the Ender3, but the printer tries to home where X=0 and Y=0. $\endgroup$ Jan 29, 2021 at 17:28

1 Answer 1


In order to use a BLTouch probe (or clone probe) you need to configure the firmware to know that a servo operated Z endstop is being used.

From the referenced files that are used for building the firmware you are running can be found in the configuration.h that:

 * The BLTouch probe uses a Hall effect sensor and emulates a servo.
//#define BLTOUCH

When using a servo port operated probe (position of the servo corresponds to a certain action) such as the BLTouch, 3DTouch, etc. you need to configure using it as such:

 * The BLTouch probe uses a Hall effect sensor and emulates a servo.
#define BLTOUCH

Furthermore, you need to be sure to connect the cables of the touch probe according to the pin arrangement as defined for you controller board.

E.g. #define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN could be used to re-use the Z-min endstop connector on the board.

Note that when using a touch probe (which is a sophisticated sensor with it's own onboardmicro-processor with dedicated firmware), you cannot use M119, the endstop status from the touch sensor cannot be read from the output of the command. According to "Marlin documentation", The BLTOUCH probe only sends a brief pulse, so “TRIGGERED” indicates the probe is in error state..


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .