When it works as intended, utilizing automatic bed leveling sensors, such as the BLTouch, serves as a great way to both save a lot of time and effort and also achieve consistent and high-quality results with the bed always being perfect leveled without the need for any manual action before the printing process.
On the other hand, just like any other component in a 3D printer, the addition of an automatic bed leveling sensor also adds another layer of complexity to the 3D printing process that can suffer from problems, meaning that it’s not a magical way to keep your bed level at all times without the need for any troubleshooting.
Today, we will be going into one of the common pin-movement related issues that the BLTouch can have at times, where the push-pin that is responsible for moving in and out of the sensor’s body to take the necessary readings for the bed leveling process does not go back inside the sensor’s body due to various reasons.
So, what can prevent the BLTouch from retracting the pin back inside?
Below, we have listed the most common causes that can prevent the BLTouch from retracting the push-pin:
- BLTouch High-Speed Mode is on
- Incorrect or damaged wiring
- Magnetization problems
- Dirt build-up on the pin and in the shell
- Malfunctioning firmware
Moving forward, we will further examine the potential causes that can prevent the BLTouch from retracting the pin, find ways of remedying the situation as efficiently as possible, and take a look at the process of using the BLTouch self-test feature to diagnose the pin movement problem.
What Can Cause the BLTouch to Not Retract the Pin?
The BLTouch not being able to retract the pin back inside is definitely a sign that there is a problem somewhere, as the pin should automatically be going back in after making contact with the build plate and taking the necessary readings.
You can find the most common culprits behind the issue of the BLTouch not retracting the pin, which we tried to explain in as much detail as possible:
- The BLTouch High-Speed Mode is active. The BLTouch high-speed mode is a feature you can activate in Marlin firmware, prompting the BLTouch to work quickly to save time, which involves the pin staying extended instead of the standard action of stowing after detection. In this case, the pin remaining extended is the intended behavior, and if your BLTouch is working without issues, you don’t need to worry.
- The wiring of the BLTouch is incorrect or damaged. Incorrect or damaged wiring creates the bulk of the problems with the BLTouch, especially due to the correct positioning of the wires varying depending on the mainboard you’re attaching them to, which creates a lot of confusion.
- The magnetization of the adjustment screw and the pin is weak. As the BLTouch pulls the push-pin back up through magnetic force, unless both the pin and the adjustment screw that acts as the magnetic core are sufficiently magnetized, the magnetic force won’t be enough to pull the pin.
- There is dirt, grease, etc., that restrict the pin movement. The magnetic pull between the adjustment screw and the push-pin is pretty sensitive, and even a tiny amount of dirt or grease that prevents the BLTouch from optimally moving can entirely block it from going up.
- The firmware is malfunctioning. As the firmware is responsible for the actions of your BLTouch, it’s entirely possible for the BLTouch never to receive the command that tells it to stow its pin in the case of malfunctioning firmware. Such problems usually occur due to bugs in the firmware and are generally fixed with a new version.
How to Fix the Issue of BLTouch not Retracting the Pin?
Fixing the problem of the BLTouch not retracting the pin back into its body can be a bit of a process due to the number of potential factors involved unless you already know the cause and can apply the appropriate fix that corresponds to it.
Below are our solution suggestions that correspond to the common factors that prevent your BLTouch from retracting the pin:
- Control the wires for any signs of damage or deformation. The wires being overly bent, broken, tangled, and kinked can be signs of an issue with them, preventing the signal from moving through properly. In such a case, replacement is the best course of action.
- Double-check the positioning and the seating of the cables. Paying close attention to the standard wiring diagram of the BLTouch, and finding a diagram that directly corresponds to the mainboard you’re using is the best course of action to ensure that the wires are correctly positioned. As the plug can need a bit of a push to be correctly seated, it’s a good idea to double-check that too.
- Re-magnetize the adjustment screw and the push-pin. For this process, start by removing the adjustment screw, which will free the push-pin and allow you to take it out of the BLTouch. Afterward, magnetize the push-pin and the adjustment screw by placing them next to a strong magnet. For best results, we recommend magnetizing for 24 hours.
- Thoroughly clean the push-pin and the inside of the shell. For this process, you can spray some de-greasing glass cleaner on a Q-tip or a piece of cotton and wipe all areas of the push-pin and the shell.Avoid touching the push-pin or the inside of the BLTouch with your bare hands, as this will make matters worse.
- Flash an updated version of reputable firmware. We recommend downloading a fresh and up-to-date copy of Marlin firmware from the official website and flashing it to your 3D printer. If Marlin isn’t compatible with your 3D printer, we would recommend going with the most popular firmware with the largest community, which will reduce the chance of you facing problems.
How to Manually Trigger a BLTouch Self-Test to Diagnose the Pin Movement?
The BLTouch sensor has a self-test functionality that it executes whenever it’s automatically powered on to ensure that all the components are in working order, and since it’s also possible to trigger this functionality manually, it makes for a great option to diagnose any potential issues.
To trigger the self-test functionality of your BLTouch, you will need to execute the Servo Position G-code along with the servo angle value of 120 (or PWM value of 1782) as a parameter by sending the appropriate command that applies to the firmware you’re using to your 3D printer.
For instance, in the case of Marlin firmware, the Servo Position G-code command is M340 and has the syntax below:
M340 P<index> S<angle>
According to this syntax, by executing the M340 P0 S120 command (considering that you have only one servo attached to your 3D printer and it’s the BLTouch, else change the P parameter accordingly), you can trigger the self-test process of the BLTouch manually.
Issues related to the movement of the BLTouch pin are pretty common in the 3D printing community, with the pin not being able to retract also falling into this category. Fortunately, it’s possible to fix the problem in most cases, as the potential culprits behind it aren’t too technically complex.
To quickly recap, issues such as wire damage or mispositioning, the adjustment screw and the push-pin being not magnetized enough to create enough pull, dirt gathering on the pin and in the shell preventing smooth pin movement, or malfunctioning firmware can all be behind the issue of the BLTouch not retracting the pin.
On the other hand, while the BLTouch high-speed mode being on will also cause the pin not to retract, this is expected behavior and will not create any problems considering that your BLTouch is operating correctly despite the pin not going back inside.
Mike started his 3D printing journey with the Anet A8 when it first came out back in 2017, and has been obsessed with 3D printers ever since. Nowadays, he primarily uses his Ender 3 to print functional parts that make his life more convenient whenever possible.