Why Bltouch Failed To Verify Sensor State: Everything You Need To Know (2023)
In 3D printing, problems with the first layer sticking together and the extruder skipping steps during the first layer happen often. These problems are often caused by an uneven bed, which has a direct effect on the final product and your 3D printing experience as a whole.
To help with bed leveling and to ease these problems, the BLTouch is an automated bed-leveling sensor developed by ANTCLABS. A high-precision auto-leveling solution for your 3D printer, it has been on the market since 2015 and uses solenoids and hall sensors.
This page has all the information you need to make an informed decision about the BLTouch sensor. Learn all you need to know, from the technology’s inner workings to its installation and frequent issues like “bltouch failed to verify sensor state” in this guide. Let’s figure out how to fix things so we can deliver you a great foundation layer.
CR Touch Vs BLTouch: Differences And Comparison
BLTOUCH AUTO BED LEVELING SENSOR
There are a lot of licensed and unlicensed versions, but this one from ANTCLABS in South Korea is the original.
What is a BLTouch Sensor?
Antclabs says that BLTouch is a semiconductor hall sensor and an electric part for 3D printers. The BLTouch has been fine-tuned to perfection.
When compared to other bed sensors, the device’s complexity stands out. A microprocessor, solenoid switch, and bed-contacting pushpin probe are its main components. The original BLTouch’s high-precision Hall sensor and physical pushpin make it compatible with a wide variety of bed types.
This sensor is like a micro switch on a servo arm, operated by a servo motor. The Hall sensor is triggered when the tool head is lowered to “home” the nozzle on the Z-axis, at which time the bed pulls the pushpin slightly upwards, and the tool head is raised.
A few companies, like MakerGear and CraftBot, employ BLTouch on their top-tier machines since it is one of the most precise and reliable sensors on the market.
Multiple Leveling Sensor Options
A Variety of Replacement Sensors for Detecting Elevation
There are a variety of auto bed leveling sensors available, the BLTouch being only one of them. While all leveling sensors aim to determine the distance between the print nozzle and the print bed, they do it in somewhat different ways.
We’ll examine three more varieties of widespread bed-leveling sensors.
Microswitch + Radio Controlled Servo
Utilizing a servo equipped with a micro switch was one of the first methods for bed probing and auto leveling on DIY 3D printers. An arm and a stop were joined to a servo motor (micro switch).
The servo arm extends so that the microswitch is facing the bed at the appropriate angle. The switch is triggered when the tool carriage touches the print bed as it descends (or rises) along the Z axis. The servo arm then detaches to return the switch to its up position.
Although this measurement approach is dependable and repeatable, it is too cumbersome to fit in an extruder carriage of reasonable size.
Inductive sensors are a kind of non-contact bed leveling sensor that operates on the basis of electromagnetic inductance. These sensors generate a magnetic field and analyze the disruption caused by nearby metal objects.
For this reason, these sensors are more expensive than others and are only compatible with metal beds. However, when used properly, they are very exact and provide reliable results every time. They retain their accuracy over time and last for a long time since they don’t have any moving components.
Capacitive sensors for automatic bed leveling are an example of another type of non-contact sensor. If the probe is brought close to a surface, the capacitance (the amount of energy that can be stored in the device’s capacitor) is measured. There are a variety of materials that may serve as the surface, including glass, metal, polycarbonate, and even PEI.
They are superior to inductive sensors with regard to compatibility with bed materials. These sensors, however, are very delicate to changes in ambient temperature and humidity. Additionally, the z-offset of these sensors must be modified each time a new bed surface is used.
How to Install the BLTouch?
Hooking up BL-Touch
You shouldn’t use your bare fingers to contact the BL-Touch pin since it’s easily damaged by oils from your skin. Be careful not to bend or push anything if you must touch it.
Follow the instructions for your MCU or those provided by BL-Touch to connect the “servo” connection to a control_pin. The original setup called for the yellow wire from the triple to serve as the control_pin and the white wire from the pair to serve as the sensor_pin. These pins must be set up in a certain way for your wiring to work. For instance:
[bltouch] sensor_pin: P1.24 control_pin: P1.26
Set endstop_pin: probe:z_virtual_endstop in the [stepper_z] config part if you’ll be using the BL-Touch to home the Z axis, and add a [homing_override] config section to elevate the z-axis, home the x, and y axes, move to the middle of the bed, and home the z-axis. For instance:
[homing_override] gcode: G90 ; Use absolute position mode G1 Z10 ; Move up 10mm G28 X Y G1 X166 Y120 F6000 ; Change the X and Y coordinates to the center of your print bed G28 Z set_position_z: 0.0
If the probe pin is at its lowest condition, the homing override’s initial Z upward movement must be large enough to prevent the probe from colliding with anything.
Setting up the Software/Firmware
It is necessary to make certain adjustments to the printer’s firmware in order to get the BLTouch working. Our firmware is the most recent and reliable version of Marlin 2.0, which was released in August 2021. Microsoft’s Visual Studio Code is an IDE that you may use to access the Marlin package. The configuration. h tab may be found after the marlin.no file has been imported into the IDE.
In order to get the BLTouch sensor working, we must first define it. To uncomment the “define” statement, remove the two slashes before the statement:
After attaching the probe, take measurements in both the X and Y directions (away from the nozzle) to use as the basis for setting the BLTouch’s offset. The initial Z offset must be determined by gauging the distance between the expanded probe’s tip and the nozzle. Of course, this figure is normally adjustable from the printer’s display, so if measuring proves difficult, -2.5 is a safe amount to start with.
When you have finalized your dimensions, please enter them in the spaces provided.
#define X_PROBE_OFFSET_FROM_EXTRUDER <X measurement> // X offset: -left +right [of the nozzle] #define Y_PROBE_OFFSET_FROM_EXTRUDER <Y measurement> // Y offset: -front +behind #define Z_PROBE_OFFSET_FROM_EXTRUDER <Z measurement> // Z offset: -below +above
While most 3D printers allow you to make direct adjustments to the Z offset (depending on the Marlin setup), such adjustments may not always take effect. You may uncomment the line below to solve this:
After you’ve adjusted the offset, you may decide which bed-leveling method to use. There are other options for leveling, but we’ll pick Bilinear since it’s straightforward to implement.
Removing the slashes from an option makes it available for selection. Keep in mind that you can only leave one option unchecked. This is the general format your code should follow:
//#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR #define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING
The default is to probe 9 locations, creating a 3×3 grid along the X and Y axes, however, this may be changed to suit your needs. More points may be added for better precision, but this comes at the expense of longer probing times. In the lines below, you’ll find a slider that lets you change the density of the grid’s points.
// Set the number of grid points per dimension. #define GRID_MAX_POINTS_X 3 #define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
Last but not least, some BLTouch customers have complained that electrical interference from the hot end heater cables negatively affects the device. If you want to disable heaters while the sensor is probing the bed, you may do so by uncommenting the following line in Marlin.
Preparing the Slicer for Use
After initial setup, you may choose to set up your slicer (such as Cura) to automatically level the bed of your printer before each print. The “G29” G-code command may be added to the start G-code script of your slicer in place of the “G28” command, which is already there.
By including the “G29” instruction, the printer will automatically perform a bed leveling routine before each print. While this may improve the quality of your initial layer prints, it may also cause your print to start a little later than expected. However, if you don’t want to wait, you can just take out the “G29” instruction from the beginning of your script and level the bed whenever it’s most convenient for you to do so through the printer’s screen.
The BL-pin Touch should be around 2 mm above the nozzle when retracted, so make sure it’s mounted properly before continuing.
The BL-Touch probe is designed to run through a self-test when the printer is turned on, which involves moving the pin up and down a few times. The pin should be withdrawn and the red LED on the probe turned on after the self-test is complete. If the probe is blinking red or the pin is pointing down instead of up, you should turn off the printer and double-check the connections.
If all of that checks out, we can move on to making sure the probe follows firmware commands. In the printer terminal, type BLTOUCH_DEBUG COMMAND=pin_down first. Be sure the pin slides down and the probe’s red light stops blinking. If not, double-check the connections and settings. Then, make sure the red light comes back on when you send a BLTOUCH_DEBUG COMMAND=pin_dow. Problems exist if the light begins flashing.
We’re going to put a new spin on the homing test now. Don’t contact the probe pin to the print bed; instead, use your fingernail. Once the G28 has been issued and the pin has begun to descend, the movement can be halted by lightly tapping the pin with a nail. Given that it’s set up to probe twice by default, you’ll likely have to perform it twice. In the event that the printer doesn’t stop when you touch the pin, you should be ready to switch it off to prevent damage.
If it worked, repeat the G28 but this time make sure it touches the floor instead of the bed.
BL-Touch offset calibration
You can use the Probe Calibrate manual to change the x offset, y offset, and z offset configuration settings. Verifying that the Z offset is within 1mm is recommended. If this is not the case, try raising or lowering the probe to see if it helps. It needs to go off before the nozzle even touches the bed so that a stuck filament or a warped bed won’t throw off the probing. But when the print head is retracted, it should be as far away from the nozzle as possible so that printed parts don’t touch it. If the probe’s position is changed, the calibration process must be repeated.
The BL-Touch will flash red whenever it detects an unstable state. Forcing it out of that condition requires issuing:
If its calibration is thrown off because the probe can’t be removed, this could happen.
A potential downside is that the BL-Touch might no longer be able to self-calibrate. This occurs if the probe pin’s magnetic core has shifted or the screw on its top is in an improper place. The pin may no longer be able to be lowered if it has risen and become stuck on the screw. When this happens, you can open the screw using a ballpoint pen and coax it back into position. To replace the pin in its extracted BL-Touch position, just re-insert it. Replace the headless screw cautiously. You have to find the sweet spot when the pin goes down and up and the red light blinks on and off. To accomplish this, use the
down , respectively.
Bltouch Failed To Verify Sensor State
If you’ve double-checked the BL-wiring Touch’s and still get the “BLTouch failed to validate sensor state” error when you try to probe, you might need to set pin-up touch mode reports triggered: False in the device’s configuration. This option is necessary for the BL-Touch v3 and several clones.
Connecting the signal wire of a BL-Touch v3 to the Z end-stop pin on some printer boards can cause unexpected behavior. This issue manifests itself when the following sequence of events occurs: the BL-Touch probe deploys, the printer lowers, the probe makes contact with a surface, the BL-Touch raises the probe, the BL-Touch fails to successfully notify the micro-controller, and the printer lowers further. Some printer boards use a capacitor to filter the signal at the Z end-stop pin, which the BL-Touch v3 might not be able to handle. As an easy workaround, connect the BL-Touch v3 sensor wire to a free, non-end-stop-related pin on the printer board (and thus is unlikely to have a capacitor). There is also the option of adding a hardware “pull-up resistor” to the BL-Touch v3 sensor wire or manually disabling the provided end-stop capacitor on the printer board.
Where to Buy?
There are a lot of licensed and unlicensed versions, but this one from ANTCLABS in South Korea is the original.
DISCLOSURE: THIS POST MAY CONTAIN AFFILIATE LINKS, MEANING I GET A COMMISSION IF you DECIDE TO MAKE A PURCHASE THROUGH MY LINKS, AT NO COST TO YOU. PLEASE READ MY DISCLOSURE FOR MORE INFO.