Method To Confirm Result Of `TOUCH_HOME`
Introduction
In the world of 3D printing, ensuring accurate and reliable results is crucial for producing high-quality prints. One of the critical steps in the printing process is the TOUCH_HOME
command, which sets the correct 0 position for the bed. However, verifying that this command has indeed set the correct position is essential to prevent errors and ensure the quality of the print. In this article, we will discuss a method to confirm the result of TOUCH_HOME
and provide a proposed solution to achieve this.
The Problem
Yell has expressed a desire to confirm that the TOUCH_HOME
command has set the correct 0 position for the bed. This is a valid concern, as incorrect bed leveling can lead to poor print quality, warping, and other issues. The current approach may not be sufficient to guarantee accurate results, and a more robust method is needed to confirm the correct position of the nozzle.
Proposed Solution
One possible solution to this problem is to implement a two-touch approach, where the printer performs a second touch after the initial TOUCH_HOME
command. This second touch can be used to verify that the nozzle has indeed reached the correct position. The proposed solution involves the following steps:
- Home using touch: The printer performs the initial
TOUCH_HOME
command to set the correct 0 position for the bed. - Touch, note trigger z: The printer performs a second touch, and the trigger z value is noted.
- Check that trigger z - z_offset < tolerance: The printer checks if the trigger z value is within a certain tolerance of the z_offset value. If the trigger z value is within the tolerance, it indicates that the nozzle has reached the correct position.
This approach works because the nozzle should always be at or above the bed after a touch home, within a tolerance. The printer never allows the user to say that the nozzle should be lower after a touch home.
Implementation
To implement this proposed solution, we can modify the existing G-code macros to include the additional touch and verification steps. Here is an example of how the modified G-code macros could look:
[gcode_macro PRINT_START]
gcode:
# ... snip
TOUCH_HOME
TOUCH
_EVALUATE_TOUCH
# ... snip
[gcode_macro _EVALUATE_TOUCH]
variable_tolerance: 0.05
gcode:
{% set touch = printer.cartographer.touch. %}
{% if touch.last_z_trigger - touch.z_offset < tolerance %}
{action_raise_error("Touch didn't home within tolerance")}
{% endif %}
In this example, the _EVALUATE_TOUCH
macro is modified to include the additional touch and verification steps. The variable_tolerance
value is set to 0.05, which is the tolerance value used to check if the trigger z value is within the correct range.
Benefits
The proposed solution offers several benefits, including:
- Improved accuracy: By performing a second touch and verifying the trigger z value, we can ensure that the nozzle has reached the correct position, reducing the risk of errors and improving print quality.
- Increased reliability: The two-touch provides a more robust method for confirming the correct position of the nozzle, reducing the likelihood of errors and improving the overall reliability of the printing process.
- Enhanced user experience: By providing a more accurate and reliable printing experience, we can enhance the user experience and improve the overall satisfaction of our customers.
Conclusion
Q&A
Q: What is the purpose of the TOUCH_HOME
command?
A: The TOUCH_HOME
command is used to set the correct 0 position for the bed in a 3D printing process. It is a critical step in ensuring accurate and reliable results.
Q: Why is it necessary to confirm the result of TOUCH_HOME
?
A: Confirming the result of TOUCH_HOME
is essential to prevent errors and ensure the quality of the print. Incorrect bed leveling can lead to poor print quality, warping, and other issues.
Q: What is the proposed solution to confirm the result of TOUCH_HOME
?
A: The proposed solution involves a two-touch approach, where the printer performs a second touch after the initial TOUCH_HOME
command. This second touch is used to verify that the nozzle has indeed reached the correct position.
Q: How does the two-touch approach work? A: The two-touch approach involves the following steps:
- Home using touch: The printer performs the initial
TOUCH_HOME
command to set the correct 0 position for the bed. - Touch, note trigger z: The printer performs a second touch, and the trigger z value is noted.
- Check that trigger z - z_offset < tolerance: The printer checks if the trigger z value is within a certain tolerance of the z_offset value. If the trigger z value is within the tolerance, it indicates that the nozzle has reached the correct position.
Q: What is the benefit of using a tolerance value in the two-touch approach? A: The tolerance value is used to ensure that the nozzle is at or above the bed after a touch home, within a certain range. This prevents the printer from allowing the user to say that the nozzle should be lower after a touch home.
Q: How can the proposed solution be implemented? A: The proposed solution can be implemented by modifying the existing G-code macros to include the additional touch and verification steps. This can be done by adding the following code to the G-code macros:
[gcode_macro PRINT_START]
gcode:
# ... snip
TOUCH_HOME
TOUCH
_EVALUATE_TOUCH
# ... snip
[gcode_macro _EVALUATE_TOUCH]
variable_tolerance: 0.05
gcode:
{% set touch = printer.cartographer.touch. %}
{% if touch.last_z_trigger - touch.z_offset < tolerance %}
{action_raise_error("Touch didn't home within tolerance")}
{% endif %}
Q: What are the benefits of the proposed solution? A: The proposed solution offers several benefits, including:
- Improved accuracy: By performing a second touch and verifying the trigger z value, we can ensure that the nozzle has reached the correct position, reducing the risk of errors and improving print quality.
- Increased reliability: The two-touch provides a more robust method for confirming the correct position of the nozzle, reducing the likelihood of errors and improving the overall reliability of the printing process.
- Enhanced user experience: By providing a more accurate and reliable printing experience, we can enhance the user experience and improve the overall satisfaction of our customers.
Q: Can proposed solution be used with other 3D printing software? A: Yes, the proposed solution can be used with other 3D printing software that supports G-code macros. The solution is designed to be flexible and adaptable to different software and hardware configurations.
Q: How can the proposed solution be customized to meet specific user needs? A: The proposed solution can be customized to meet specific user needs by modifying the tolerance value, the number of touches, and the verification steps. This can be done by modifying the G-code macros and adjusting the settings to suit the user's requirements.