What Is the BLTouch Self Test? (How to Trigger It?)

The auto bed leveling technology is, without a doubt, one of the most impressive additions to a 3D printer due to a large number of benefits it offers.

While we can all agree that the best part about auto bed leveling is that it saves us from going through the process of manually leveling the bed, it’s worth mentioning that auto bed leveling also yields more consistent results than manual bed leveling; making it the better option overall.

On the other hand, auto bed leveling is not magic by any means, as an intricate process that allows the sensor to take readings from many points of the build plate needs to be entirely successful for the bed leveling to provide optimal results.

In today’s article, our topic is the self-test functionality of the BLTouch auto bed leveling sensor, which is a vital part of the BLTouch’s initialization process that shows us whether the sensor is working as intended or not.

So, what is the BLTouch self-test process?

The BLtouch self-test is a process that the BLtouch auto bed leveling sensor performs once powered on, where the sensor pushes the pin and pulls it up a couple of times to ensure that there are no issues with the movement of the pin.

Moving forward, we will analyze the self-test process of the BLTouch in more detail, find out how to trigger the self-test to confirm that the sensor works, look at signs that signify the BLTouch works as intended, and go through possible solutions for fixing a failed self-test.

What Is the BLTouch Self Test?

The self-test feature of the BLTouch sensor plays a significant role in ensuring that we don’t face any problems related to auto bed leveling while the printing process is underway.

The self-test feature of the BLTouch is a simple but effective one, where the sensor releases and pulls the push-pin a couple of times as soon as it powers on to ensure there are no issues that would prevent the auto bed leveling from working as it should.

If the BLTouch encounters an issue during the self-test process, it ends up going to alarm mode and lets us know that there is a problem by continuously flashing the red LED indicator, as opposed to the solid red color that we should observe while the BLTouch is idle.

This way, instead of finding out that there is an issue with the BLTouch after starting the printing process, we know that the auto bed leveling won’t be working as intended long before we move on to the print, which allows us to fix the problem.

How to Trigger the BLTouch Self Test?

Since ensuring that the BLTouch passes the self-test sequence before starting the printing process is paramount for a successful print, we highly recommend triggering the BLTouch self-test before printing if it doesn’t trigger automatically for some reason.

You can trigger the BLTouch self-test sequence by either power cycling the sensor, as the self-test should run whenever the sensor powers on for the first time, or with the G-code command to initiate the self-test process when you can’t get the self-test to run after a power cycle.

To power cycle the BLTouch, you can turn your printer off and on, which will cause the BLTouch to initiate the self-test process as it loses and regains power due to the printer powering down and up.

On the other hand, to trigger the BLTouch self-test with G-code, you will need to send the G-code M280 P0 S120 (for Marlin Firmware) to your 3D printer, which will immediately put the BLTouch in the self-test mode.

In this case, the M280 G-code is Marlin Firmware’s Servo Position command that allows us to set or get the position of a servo, P0 is the index of the servo (BLTouch sensor), and S120 is the servo position.

For the BLTouch, the servo position of 120 degrees corresponds to invoking the self-test feature of the BLTouch, and it’s possible to use different servo positions for issuing other commands to the BLTouch, such as S90 to pull the push-pin up or S160 for an alarm release.

BLTouch Fails Self Test – What to Do?

BLTouch failing the self-test means that the sensor cannot work as intended and level the bed correctly, meaning that we need to resolve the problem that’s causing it and get the self-test to succeed before moving forward with the printing process.

Here are the solutions to the most common problems that can cause the BLTouch to fail the self-test sequence:

  • Ensure that the push-pin of the BLTouch can move freely. If the pin cannot move freely for some reason, try to unscrew the BLTouch pin to find the source of the problem and screw it back on after resolving it.
  • Ensure that you have configured the firmware correctly to accommodate for the BLTouch. The BLTouch requires a specific configuration on the firmware level to operate correctly, which is disabled by default in Marlin Firmware as the BLTouch is an optional accessory.
  • Ensure that the wiring of the BLTouch is correct. Re-wiring the BLTouch while closely following the documentation is the best way to avoid wiring problems.
  • Ensure that you have configured the probe Z-offset correctly. The probe Z-offset value plays a vital role for the BLTouch to operate correctly. We highly recommend following the guide we have written on setting the probe Z offset with the M851 G-code for this process.

Wrapping Up

The self-test is a crucial part of the BLTouch’s initialization process as it allows the sensor to test itself and ensure that it’s ready to work as intended to avoid the possibility of issues appearing during the printing process instead.

To quickly recap, the BLTouch auto bed leveling sensor initiates a self-test process whenever it is powered on, where the sensor tests the push-pin by pushing it down and pulling it up to ensure that no obstructions or faults are preventing the pin from moving as intended.

In the case where a problem occurs during the self-test process, the BLTouch sensor will go into alarm mode, where the red LED indicator will continuously flash until you resolve the issue and release the alarm by invoking the alarm release command.

Happy printing!