Flashforge AD5M\pro nozzle brush using Bambulab A1 silicone brush
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
A nozzle brush mode for Flashforge AD5M series.
- Ocena
- 5 / 5
- Polubienia
- 219
- Pobrania
- 567
- Wydruki
- 4
- Wyświetlenia
- 6634
- Oceny
- 5
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Other Printer Parts & Upgrades
- Licencja
- Creative Commons — Attribution
[Changelog MK2] 20251103
User @CoreyRogers_489647 reported interference with bed issue. Lightly remix to increase clearance.
UNTESTED.
-----------------------------------------------------------------------------------------
As suggested per title.
I printed using PET-CF since my bed gets to 110. ABS\ASA might work as well. PC\NYLON variant should be even better.
You want to use heat resistant and tough material so PET-CF might not be ideal.
Printed with support, see photo. Reuse the existing M4 plastic screws.
I modified START_PRINT macro to do the brush before meshing. I am also using KAMP.
Thanks to @dimaj_298345's macro! This should work with vanilla AD5M setup I suppose. Link here: https://gist.github.com/dimaj/6b2007d76105feb7cbee29d0f2305aec
Now I can also post mine here for your reference since we've got something working : )
Here is my nozzle clean routine. You have to find your own coordinate boundary for your brush since obviously I have moved my origin to (0,0).
[gcode_macro NOZZLE_CLEAN]
gcode:
; define region for the brush
{% set brush_x_min = 92 %}
{% set brush_x_max = 125 %}
{% set brush_y_min = 216.5 %}
{% set brush_y_max = 220 %}
{% set brush_z_min = 4 %}
{% set brush_z_max = 5 %}
{% set extruder_temp = params.EXTRUDER_TEMP|default(180)|float %} ; extruder temp, usually set by slicer
{% set x_random = brush_x_min + (brush_x_max - brush_x_min) * (range(0, 100) | random) / 100 %}
{% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
RESPOND MSG="Moving over the brush: X{x_random} Y{y_random}"
G1 X{ x_random} Y{y_random} F6000
; set extruer temp 30 degree cooler than material extruding temp but not exceeding 260
M104 S{(extruder_temp - 30) if (extruder_temp - 30) <= 260 else 260 }
RESPOND MSG="Heating up nozzle..."
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp-33}
RESPOND MSG="Wiping..."
G1 Z{ brush_z_max} F300
; brush 10 moves
{% for i in range(10) %}
{% set x_random = brush_x_min + 0.5*(range(0, 100) | random) / 100 %}
{% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
{% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F3000
{% set x_random = brush_x_max + 0.5*(range(0, 100) | random) / 100 %}
{% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
{% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F3000
{% endfor %}
; cool off to probing nozzle temp
M104 S120
M106 S255
TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={140}
; brush 5 moves to remove cold filament
{% for i in range(5) %}
{% set x_random = brush_x_min + 0.5*(range(0, 100) | random) / 100 %}
{% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
{% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F1800
{% set x_random = brush_x_max + 0.5*(range(0, 100) | random) / 100 %}
{% set y_random = brush_y_min + (brush_y_max - brush_y_min) * (range(0, 100) | random) / 100 %}
{% set z_random = brush_z_min + (brush_z_max - brush_z_min) * (range(0, 10) | random) / 10 %}
G1 X{ x_random|float } Y{ y_random|float } Z{z_random|float} F1800
{% endfor %}
M106 S0
G1 Z10 F300
This routine is further called in this AUTO_BED_LEVEL routine as part of START_PRINT routine, before it calls BED_MESH_CALIBRATE which is redefined in KAMP.
[gcode_macro AUTO_BED_LEVEL]
gcode:
{% set bed_temp = params.BED_TEMP|default(60)|float %}
{% set extruder_temp = params.EXTRUDER_TEMP|default(200)|float %}
{% set profile = params.PROFILE|default("auto") %}
# clear old mesh and home if necessary
BED_MESH_CLEAR
{% if not "xyz" in printer.toolhead.homed_axes %}
G28
{% endif %}
# bed heating
G90 ; absolute coordinates
G1 Z10 F1800 ; raise bed
M140 S{bed_temp} ; set bed temp
# wait for bed to reach temp, don't wait for stabilization
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp-3}
LOAD_CELL_TARE ; reset tare before manual probe
# nozzle heating for cleaning
;M104 S{extruder_temp-30} ; set nozzle temperature
# wait for nozzle to reach temp, don't wait for stabilization
;TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp-30} NOZZLE_CLEAN EXTRUDER_TEMP={extruder_temp}
LOAD_CELL_TARE ; reset tare before manual probe
BED_MESH_CALIBRATE PROFILE={profile}
