Skip to content

Klicky Probe Macros 3DPD v1.0.0

Latest
Compare
Choose a tag to compare
@3DPrintDemon 3DPrintDemon released this 06 Dec 11:41
· 1 commit to main since this release

Klicky Probe Macros 3DPrintDemon v1.0.0

  • Fixed the climbing homing thing if axes are already homed & printer is XYZ homed again. This may cause the machine to top out if the toolhead is near max height. System is set to raise Z once only if below safe_z height otherwise normal homing will result.

  • Added new variable for homing Z where it allows you to back off the Y axis after Z homing for use with sensorless homing systems where the axis will need some travel room to home, especially if the machine is restarted with the toolhead directly above the Z end stop switch at the very back of the printer.

*Added a new Macro that checks for probe condition before homing as after a print error & axes are still enabled when used with conditional homing it can cause the toolhead to home with the probe still attached. See explanation below!
Paste the below _klicky_check macro into your macros file & call _klicky_check in your PRINT_START macro if you're using conditional homing as shown.

To view changes in files search 3dpd or use diff

Replace equivalent main branch files with these to implement changes. Or clone the whole fork here…
https://github.com/3DPrintDemon/Klicky-Probe


Conditional Homing Probe Check

If the user encounters a "probe triggered prior to movement" error during probing like if there's a poor connection with the magnets due to say a buildup of old filament candy floss, or a failing probe for example it leaves potential for the possibility for the user to start the next print with the probe still attached & it's state unchecked - if Klicky is used on a machine with conditional homing in the Print_Start macro instead of a plain G28 command.

I experienced these series of events during a live print_start & was able to start the next print with the probe state unchecked. I then could replicate this series of events manually by triggering the probe while the printer was probing the bed & got the same results every time. I understand these series of events are extremely unlikely for most users but it is possible to do this.

Example of conditional homing used that bypassed the standard Klicky probe state check after error :

   {% if "xyz" not in printer.toolhead.homed_axes %}
    STATUS_HOMING
    M117 Homing...
    G28

   {% endif %}

This was allowed to occur because after the "probe triggered prior to movement" error the system parks the toolhead but does not disable the steppers, so the active toolhead status is retained, & if the user then forgets to manually remove the probe from the toolhead before starting the next print the conditional homing will not call a homing event so the Klicky status is not checked & the new print starts with the probe still on the toolhead.

I made a simple macro that inserts a Klicky state check using probe_query to use if the steppers are still active & conditional homing is not engaged, if Klicky is found to be attached the macro will call Dock_Probe_Unlock to dock the probe before continuing on with the new print.

Example of modified conditional homing with Klicky state check before continuing:

 {% if "xyz" not in printer.toolhead.homed_axes %}
    STATUS_HOMING
    M117 Homing...
    G28
 {% else %}
    _klicky_check
 {% endif %}

Example of simple Klicky state check & how to proceed:

[gcode_macro _klicky_check]
gcode:   
    query_probe
    _probe_state action={ params.ACTION }


[gcode_macro _probe_state]
gcode:
  {% set query_probe_triggered = printer.probe.last_query %}
  {% set action  = params.ACTION|default('') %}
  
  {% if query_probe_triggered %}

  {% else %}
    Dock_Probe_Unlock  
  {% endif %}

I know my macro writing skills aren't anything special but the above works & if it helps someone else who's using a similar setup & experienced the same thing that's great. Also I hope you'll be able to take this account & incorporate something to help mitigate this in the future for everyone else.

Thanks for reading.