Giter Site home page Giter Site logo

Voron TAP support about klippain HOT 6 CLOSED

frix-x avatar frix-x commented on September 28, 2024 5
Voron TAP support

from klippain.

Comments (6)

AMFkuna avatar AMFkuna commented on September 28, 2024 1

I modified the ACTIVATE_PROBE macro to heat the nozzle to 150 when cold before using the TAP to soften the rest of the filament on the nozzle.
Next, I set the start_print sequence in variables.cfg as follows: variable_startprint_actions: "bed_soak", "chamber_soak", "tilt_calib", "clean", "bedmesh", "extruder_heating", "material", "purge", "clean", " primeline" and variable_force_homing_before_brush: False
I also added to END_PRINT macros to clean the nozzle after printing is complete.

`

[gcode_macro ACTIVATE_PROBE]
description: Put the machine in a state being able to probe
variable_temperature: 0
gcode:
{% set LOCK = params.LOCK|default(False, boolean=true) %}

{% set probe_type_enabled = printer["gcode_macro _USER_VARIABLES"].probe_type_enabled %}
{% set tap_max_probing_temp = printer["gcode_macro _USER_VARIABLES"].tap_max_probing_temp|float %}

# If a dockable probe is defined, then check and ATTACH the probe
{% if probe_type_enabled == "dockable" %}
    _CHECK_PROBE action=query
    {% if LOCK %}
        _ATTACH_PROBE_LOCK
    {% else %}
        _ATTACH_PROBE
    {% endif %}

# If a Voron TAP probe is defined, then check the temperature and lower it if needed
{% elif probe_type_enabled == "vorontap" %}
    SAVE_GCODE_STATE NAME=BEFORE_TAP_ACTION

    {% set ACTUAL_TEMP = printer.extruder.temperature %}
    {% set TARGET_TEMP = printer.extruder.target %}

    SET_GCODE_VARIABLE MACRO=ACTIVATE_PROBE VARIABLE=temperature VALUE={TARGET_TEMP}

    {% if TARGET_TEMP > tap_max_probing_temp %}
        { action_respond_info('Extruder temperature target of %.1fC is too high for TAP probing, lowering to %.1fC' % (TARGET_TEMP, tap_max_probing_temp)) }
        M106 S255 ; 100% the part cooling fan to help the extruder cooling
        M109 S{tap_max_probing_temp}
        M106 S0   ; Stop the part cooling fan

    # Temperature target is already low enough, but nozzle may still be too hot.
    # We accept a temperature fluctuation of +3°C as a close-enough value to eliminate PID issues.
    # Current klipper PID algorithm has some difficulties to handle low thermal latency HE.
    {% elif ACTUAL_TEMP > tap_max_probing_temp + 3 %}
        { action_respond_info('Extruder temperature %.1fC is still too high for TAP probing, waiting until below %.1fC' % (ACTUAL_TEMP, tap_max_probing_temp)) }
        M106 S255 ; 100% the part cooling fan to help the extruder cooling
        TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={tap_max_probing_temp}
        M106 S0   ; Stop the part cooling fan

    {% elif ACTUAL_TEMP < tap_max_probing_temp -1 %}
        { action_respond_info('Extruder temperature %.1fC is too low for TAP probing, waiting until %.1fC' % (ACTUAL_TEMP, tap_max_probing_temp)) }
        M109 S{tap_max_probing_temp}
        M106 S0   ; Stop the part cooling fan
        SET_GCODE_VARIABLE MACRO=ACTIVATE_PROBE VARIABLE=temperature VALUE=150

    {% endif %}
{% endif %}

[gcode_macro END_PRINT]
description: Stop the print and filter the atmosphere for 10min before shuting down
gcode:
{% set disable_motors_in_end_print = printer["gcode_macro _USER_VARIABLES"].disable_motors_in_end_print %}
{% set turn_off_heaters_in_end_print = printer["gcode_macro _USER_VARIABLES"].turn_off_heaters_in_end_print %}
{% set safe_extruder_temp = printer["gcode_macro _USER_VARIABLES"].safe_extruder_temp|float %}
{% set light_intensity_end_print = printer["gcode_macro _USER_VARIABLES"].light_intensity_end_print %}
{% set ercf_enabled = printer["gcode_macro _USER_VARIABLES"].ercf_enabled %}
{% set filter_enabled = printer["gcode_macro _USER_VARIABLES"].filter_enabled %}
{% set light_enabled = printer["gcode_macro _USER_VARIABLES"].light_enabled %}
{% set status_leds_enabled = printer["gcode_macro _USER_VARIABLES"].status_leds_enabled %}
{% set bed_mesh_enabled = printer["gcode_macro _USER_VARIABLES"].bed_mesh_enabled %}

{% set purge_and_brush_enabled = printer["gcode_macro _USER_VARIABLES"].purge_and_brush_enabled %}
{% set force_homing_before_brush = printer["gcode_macro _USER_VARIABLES"].force_homing_before_brush %}

PARK

{% if ercf_enabled %}
    # unload filament and park into ercf
    ERCF_EJECT
{% else %}
    # pull back the filament a little bit
    _TIP_SHAPING
    G92 E0
    G1 E-10 F2100
{% endif %}

{% if purge_and_brush_enabled %}
    {% if force_homing_before_brush %}
        G28 Z # perform homing before going to the brush to avoid a miss or crash
    {% endif %}
    G4 P10000
    CLEAN_NOZZLE
    PARK
{% endif %}

{% if turn_off_heaters_in_end_print %}
    TURN_OFF_HEATERS
{% else %}
    SET_HEATER_TEMPERATURE HEATER=extruder TARGET={safe_extruder_temp}
{% endif %}

M107
M400

{% if bed_mesh_enabled %}
    BED_MESH_CLEAR
{% endif %}


{% if disable_motors_in_end_print %}
    M84
{% endif %}


# If a filter is connected, filter the air at full power
# for a couple of min before stopping everything
{% if filter_enabled %}
    {% set FILTER_TIME = params.FILTER_TIME|default(600)|int %}
    START_FILTER SPEED=1
    UPDATE_DELAYED_GCODE ID=_STOP_FILTER_DELAYED DURATION={FILTER_TIME}
{% endif %}

{% if light_enabled %}
    LIGHT_ON S={light_intensity_end_print}
{% endif %}
{% if status_leds_enabled %}
    STATUS_LEDS COLOR="OFF"
{% endif %}

`

from klippain.

MarcHerzig avatar MarcHerzig commented on September 28, 2024

are there some news about the voron TAP?

from klippain.

Frix-x avatar Frix-x commented on September 28, 2024

Yes, everything is done regarding the probe management on the newer v3 version that I'm currently working on.
This v3 version will allow the use of TAP, but will also stay compatible with the classical "inductive probes" or "dockable probes".

You can have a look at the v3.0.0-alpha branch. But be aware that it's not ready for production yet as there is still other features and documentation that I need to add before the release :)

from klippain.

Frix-x avatar Frix-x commented on September 28, 2024

Hello AMFkuna, thanks for your comments!

Regarding the TAP probing temperature, I think I could add a variable to force heating up to the safe temperature every time a probe is needed. So that way people could choose to let it like it is today or heat up everytime as you have done it.

Regarding the modification of the end_print to do a clean, be careful as this is quite dangerous if you are printing big parts. You could make a crash, that's why I'm not a fan of this...
But if some other users want to do this also, I could add it as a variable to enable a final clean in the print_end with lot of warnings.

Final note: in the meantime you can perfectly do what you want by using the overrides mechanism. Just copy/paste my version of the full macro in your overrides.cfg file and modify it as you need. This new macro will override and replace mine. Then when I update the repo you will be able to remove the overrides (or keep them if you prefer) :)

from klippain.

AMFkuna avatar AMFkuna commented on September 28, 2024

To clean the nozzle at the end of the print, my Stealthburner takes 37mm off the print surface on the Y axis.

from klippain.

AMFkuna avatar AMFkuna commented on September 28, 2024

Hi, the dangerous cleaning of the nozzle after the end of the print can be disabled using the SIZE variable for the adaptive bed mesh from the START_PRINT macro. What do you think?

from klippain.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.