Silicone brush for Ender 3 V3 Plus
Obliczymy ostateczną cenę na podstawie wybranego pliku. Sprawdzisz ją i zaakceptujesz przed płatnością.
Zapisane na tym urządzeniu.
Hi, i've made this stl to let your Ender clean the nozzle with a Bambulab A1 Mini silicone brush. Need a Coprint KCM kit
- Ocena
- 0 / 5
- Polubienia
- 3
- Pobrania
- 11
- Wydruki
- 0
- Wyświetlenia
- 148
- Oceny
- 0
Aktualizacja u źródła:
Informacje o modelu
- Źródło
- Printables
- Kategoria
- Creality Parts & Upgrades
- Licencja
- Creative Commons — Attribution
Hei YOU! Yes You!
Do you want your Ender to clean its nozzle like your friend bambulab's printer or better?
THEN USE MY ATTACHMENT!
____This mod is meant to be used with a Coprint Kcm kit and its own Chromahead cause the extruder need to reach negative Y coordinates (to go out of the plate for the brush)___
Material required:
- Bambulab A1 mini silicone brush like these https://it.aliexpress.com/item/1005010050904402.html?spm=a2g0o.order_list.order_list_main.5.5fb83696UeSSir&gatewayAdapt=glo2ita
- 2 x M3x12 mm screws
- 2 x M3 nuts
Assembly phases:
1) i higly suggest you to follow this service tutorial from Creality up to 2:14
2) unscrew the 2 M3 screws on the left side of the gauge at the bottom left.
3) stick the silicone brush to the attachment and screw it with the 2x M3 screws and the 2x M3 nuts to the plate with the bottom left gauge.
4) reassemble everything following the tutorial.
5) go have fun with cfg files *crying face*
Plastic material and instruction:
- I've printed this part with eSun ASA+ with 2 mm layers height, 5 walls, 15% infill.
ASA is the best if you want this piece to resist high temp.
- You can print them with ABS or PETG if you want but i don't know if they are able to withstand the heat from the plate. I don't recommend PLA.
MACROS: -----CFG FILE HERE-----
Now comes the not-so-fun part:
- You have to tell your printer to clean up. These are my macros. they still need tweaking. If anyone can tweak and improve them, I'd appreciate it. Please share. <3
- Copy and paste these macros into gcode_macro.cfg file.
- My suggestion: if you don't know what these things called macros are, is to copy them into an AI program like Chatgpt or similar and ask it to explain what they are and read them to you line by line. This way, if you know what they are and how they work, so you can customize and improve them as needed.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- The macro's coordinates are for my Ender; they don't correspond to the mm for all other Enders. Everyone is required to measure their own coordinates and substitute them into the macro. USING THIS MACRO WITHOUT CHANGING THE COORDINATES CAN BE DISASTROUS.
-The coordinates of the macros and the brush will match more closely if you use this Carriage. They should be identical, but I strongly recommend recalibrating and measuring again. Even just 1 mm differently could cause the nozzle to crash into the plate.
https://www.printables.com/model/1589458-ender-3-v3-plus-and-non-plus-x-axis-carriage-for-c
-I have informed readers of the risks of using third-party custom macros, and will not be held responsible for any damages.
- REMEMBER TO MAKE A BACKUP OF YOUR ORIGINAL FILES. Remember if you modify cfg files without a backup you risk your printer.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1) This is the main macro for cleaning. It simply tells the extruder to go over the brush and do some cleaning strokes. (SPAZZOLATA = BRUSHED in Italian)
[gcode_macro SPAZZOLATA]
gcode:
RESPOND MSG="Cleaning nozzle with silicone brush"G90
M400
# go over the silicone brush
G1 Z8 F6000
G1 X34 Y-1 F8000
# go down Z on the brush
G1 Z1.5 F800
# cleaning left right left
G1 X75 F12000
G1 X30 F12000
G1 X75 F12000
G1 X30 F12000
G1 X75 F12000
G1 X30 F12000
G1 X75 F12000
G1 X30 F12000
G1 X75 F12000
# go up in Z
G1 Z20 F4000
# go far from the brush
G1 Y50 F4000</code></pre><p></p><p><strong>2) </strong>This is the secondary macro for cleaning the nozzle. This macro is intended to clean the extruder before the initial calibration, it is slower and more delicate.</p><pre><code>[gcode_macro SPAZZOLATA_BASSA]
gcode:
RESPOND MSG="Pulizia nozzle su spazzola"
G90
M400
# go over the silicone brush
G1 X34 Y-1 F8000
G1 Z8 F6000
# go over the silicone brush
G1 Z2.2 F800
# cleaning left right left
G1 X75 F8000
G1 X30 F8000
G1 X75 F8000
G1 X30 F8000
G1 X75 F8000
G1 X30 F8000
G1 X75 F8000
G1 X30 F8000
G1 X75 F8000
G1 X30 F8000
G1 X75 F8000
G1 X30 F8000
G1 X75 F5000
# go up in Z
G1 Z20 F4000
# go far from the brush
G1 Y50 F4000</code></pre><p><br><strong>3) </strong>This step is to add macros to the START_PRINT or initial print sequence. And the macro "[gcode_macro NOZZLE_CLEAR]" is designed to override the cleaning macro that scratches the bed to clean the nozzle. The macro that cleans the nozzle by scratching the bed at the top center is stored in the custom Python files of the Creality Klipper build. They're unavailable (I looked for them for 1 week and I didn't find them hahaha), so the solution is to override them with this simple macro. It simply tells the printer not to use the sequence that scratches the bed to clean the extruder and instead tells it to use "SPAZZOLATA_BASSA" macro.</p><pre><code>[gcode_macro START_PRINT]
variable_prepare: 0
variable_z_sensorless: 0
gcode:
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
{% set EXTRUDER = params.EXTRUDER|default(0)|int %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %}
{% set axismax = printer.toolhead.axis_maximum %}
{% set axismin_x = printer.toolhead.axis_minimum.x %}
{% set axismin_y = printer.toolhead.axis_minimum.y %}
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
SET_GCODE_VARIABLE MACRO=M106 VARIABLE=user_flag VALUE=0
WAIT_TEMP_END
CLEAR_PAUSE
# SET_TEMPERATURE_FAN_TARGET temperature_fan=soc_fan target=5
{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}
{% set bed_temp = printer.custom_macro.default_bed_temp %}
{% set extruder_temp = printer.custom_macro.default_extruder_temp %}
{% if 'BED_TEMP' in params|upper and (params.BED_TEMP|float) %}
{% set bed_temp = params.BED_TEMP %}
{% endif %}
{% if 'EXTRUDER_TEMP' in params|upper and (params.EXTRUDER_TEMP|float) %}
{% set extruder_temp = params.EXTRUDER_TEMP %}
{% endif %}
{% if printer['gcode_macro START_PRINT'].prepare|int == 0 %}
{action_respond_info("not prepare.\n")}
PRINT_PREPARE_CLEAR
CX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}
CX_NOZZLE_CLEAR
Z_SENSORLESS_SET
ACCURATE_G28
{% else %}
PRINT_PREPARE_CLEAR
{% endif %}
G90
# Heat bed for probing
M190 S{BED_TEMP}
G1 Z10 F450
M109 S{EXTRUDER_TEMP}
CHECK_FILAMENT
T{EXTRUDER}
G4 P300
CO_PRINT_DRAW_LINE BED_TEMP={BED_TEMP} EXTRUDER={EXTRUDER} EXTRUDER_TEMP={EXTRUDER_TEMP} axismax={axismax} axismin_x={axismin_x} axismin_y={axismin_y}
SPAZZOLATA</code></pre><pre><code>[gcode_macro NOZZLE_CLEAR]
rename_existing: NOZZLE_CLEAR_GRAFFIO
gcode:
RESPOND TYPE=command MSG="NOZZLE_CLEAR RELATIVE MODE"
M400
G4 P10000
SPAZZOLATA_BASSA
Now click the Save icon, then Save and Restart.
4) Optional phase.
This step "4" is optional, meaning it's not mandatory. Do it if you notice that plastic remains stuck to the extruder after the initial cleaning. This can happen if the printer cleans the nozzle at the start of printing with the extruder temperature set too low. To raise this temperature, you need to edit the custom_macro.py Python file. The file will need to be modified via SSH at "/usr/share/klipper/klippy/extras/custom_macro.py" .
I set the temperature to "-50°C" of the print temperature. This means that if, for example, you print PLA at 220°C, the initial cleaning of the brush will occur at 170°C. This allows the residue on the nozzle to soften. If you notice oozing from the nozzle, increase this value; if it doesn't clean well, increase it, or modify the SPAZZOLATA_BASSA macro.
I've attached the entire modified macro below. Find it in your py file and update it. Or, if you prefer, just update this line:
self.g28_ext_temp = self.extruder_temp - 50
WARNING: remember to backup the file before modifing it!!!
To save click "SAVE and RESTART" from the web interface. If you notice that your printer doesn't follow the new py file you need to delete "custom__macro.pyc" (REMEMBER THE BACKUP OF THE PYC FILE). It is the pre-compiled py file, so if you delete it you force the printer the create a new one updated.
cmd_CX_ROUGH_G28_help = "rough G28"
def cmd_CX_ROUGH_G28(self, gcmd):
self.extruder_temp = gcmd.get_float('EXTRUDER_TEMP', default=self.default_extruder_temp, minval=180.0, maxval=320.0)
self.g28_ext_temp = self.extruder_temp - 50
if self.g28_ext_temp > 180.0:
self.g28_ext_temp = 180.0
try:
self.prtouch = self.printer.lookup_object('prtouch_v2')
except:
self.prtouch = self.printer.lookup_object('prtouch')
gcmd.respond_info("self.prtouch = prtouch")
self.prtouch.change_hot_min_temp(self.g28_ext_temp)
self.bed_temp = gcmd.get_float('BED_TEMP', default=self.default_bed_temp, minval=0.0, maxval=130.0)
self.leveling_calibration = gcmd.get_int('LEVELING_CALIBRATION', default=1, minval=0, maxval=1)
self.gcode.run_script_from_command('M104 S%d' % (self.g28_ext_temp))
self.gcode.run_script_from_command('M140 S%d' % (self.bed_temp))
self.gcode.run_script_from_command('M204 S500')
self.gcode.run_script_from_command('G28')
# self.gcode.run_script_from_command('NOZZLE_CLEAR HOT_MIN_TEMP=%d HOT_MAX_TEMP=%d BED_MAX_TEMP=%d' % (self.g28_ext_temp, self.extruder_temp - 20, self.bed_temp))
pass
