I’m in the process of installing a BLTouch on a Velleman Vertex K8400. The board doesn’t have a dedicated servo pin, so I’ll assign one. No problem there.

The board only has a Z-min pin, so it’s my understanding that I’m supposed to unplug my Z-min cable and plug the BLTouch into the Z-min port.

My question is: "Can't I assign another unused pin as a Z-max, plug the BLTouch into that, adjust the firmware, and leave the existing Z-min sensor plugged in?"

Upon further review, I probably shouldn't have said Z-max, and will be more specific.

This is a Mega 2560 board with 2 available PWM pins. Anything wrong with this setup?


  #define SERVO_0_PIN 15 //PH3 (PWM)
  #define Z_MIN_PROBE_PIN 16 //PH4 (PWM)


=======Z Probe Option=======


  #define BLTOUCH

I want be able to keep my Z-min sensor plugged in as a backup to prevent a bed crash just in case the BL touch doesn't trigger. From what I see this should work as long as I make sure the BLTouch triggers before the Z-min. Any issues that anyone can see?


Note: The question has changed after posting this answer. This answer answered the previous question, but is now out-of-date with respect to how the question has changed; I'll update it later, as it is possible what is asked now.

You can change the Z-min and the Z-max pin assignment in Marlin Firmware in the pins_<boardname>.h file, you basically exchange the Z-min and the Z-max. Note that the switch connected to the old Z-min port now becomes a Z-max sensor if you enable that in the firmware; you should therefore remove it (the actual switch) from the minimum Z position.

To enable a BLTouch sensor you require 2 pins free on the microprocessor. One registers the signal of the trigger, the other triggers the servo to stow/deploy the sensor.

You can connect the white/black to the Z-min signal (Z-min pin) and ground of the Z-min connector (or if pins are swapped in the firmware to the Z-max). The other wires need to be connected to +5 V (red), ground (brown) and orange/yellow to a free analog pin (PWM pin):

BLTouch can be operated in the following condition.
- One I/O for control (PWM or Software PWM)
- One I/O for Zmin (Z Probe)
- GND and +5 V power

The PWM pin should be defined in your pins_<boardname>.h file, e.g.:

#define SERVO0_PIN         5 // RUMBA board


#define SERVO0_PIN         27 // ANET board

The Z-max signal pin is no PWM pin for the servo.

  • $\begingroup$ Hi, simple question.. where can I find pin 27 or pin 29 (Anet A6) on the motherboard?? I cant seem to find a pin layout... $\endgroup$
    – zwep
    Nov 2 '20 at 19:54

After studying the Marlin code, I found the answer I was looking for. If I have a spare PWM pin, I can assign it to anything I want. So the best solution is to define the pin as a Z_MIN_PROBE and then in Configuration.h in the Bltouch settings #define Z_MIN_PROBE_ENDSTOP rather than #define Z_MIN_ENDSTOP_USES.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.