This is a wipe arm and an Ultimaker Cura post processing script to operate it. The wipe arm is based on a common disposable copper wire bristle brush.
Note that the Ender3's LCD/controller module's default position interferes with the operation of this mod, so it will need to be moved. If you don't have a place you want to move it to, I included an adapter that tilts the panel up and gets it out of the way of the cleaning assembly.
In Cura Extensions > Post Processing > Modify G Code
Click Add a Script
Click XGantryWipe
This plugin removes the software endstop so it's possible to go beyond the bed measurement on the X gantry. This allows a nozzle cleaning brush to be positioned in the overflow area of the X gantry that can wiped between layers.
This plugin's initial code was copied from this forum entry on Ultimaker Kin's Ultimaker Community Wipe Plugin
If you just want to wipe at start of the print and don't want layer wiping or can't use the plugin, here's the gcode to run at print start. It includes a re-home of the X axis in case it loses steps while wiping.
; Clean Print HeadM211 S0; Turn off bed limitsG0 X250 F5000 ; Move over brushG0 X235 ; Move over brushG0 X250 ; Move over brushG0 X235 ; Move over brushG0 X250 ; Move over brushG0 X235 ; Move over brushG0 X250 ; Move over brushG0 X235 ; Move over brushG0 X250 ; Move over brushG0 X0 ; Move homeM211 S1 ; Turn bed limits back onG28 X0 ; Re-home X; End Cleaning Routine
The thermister (that's the little temperature sensor embedded in your hotend) has power running through it that can damage the board if it's shorted. For this reason, mount the hotend power and thermister wires so they face away from the brush and make sure that there's enough clearance that the wire brush only touches the nozzle, and can't reach those wires.
Ender3_CR_10_Nozzle_Brush_Arm_v1.03.stl | 98.1KB | |
Ender3_CR_10_Nozzle_Brush_Panel_Tilt_v1.02.stl | 64.7KB | |
XGantryWipe.py | 8.6KB |