I've only used the Ender-3 v2 Neo which has the CR-Touch sensor built in so I don't know what levelling system the firmware uses when you add a sensor, but I'm going to assume UBL based on the commands you're using.
G90 ; use absolute coordinates
M83 ; extruder relative mode
M104 S150 ; set temporary nozzle temp to prevent oozing during homing
M140 S{first_layer_bed_temperature[0]} ; set final bed temp < it's better to level the bed at the temperature it'll be for printing, so you should use an M190
G4 S30 ; allow partial nozzle warmup < why wait? don't need nozzle to be hot for levelling
G28 ;
G29 A ; activate leveling < only turns on levelling, doesn't actually do the levelling process
G29 S0 ; Save mesh values to slot 0 < you don't have a mesh to save
G29 L0 ; Load mesh from slot 0 < why save then load a mesh you don't even have?
G29 J2 ; tilt mesh < will use 4 measurements to calculate the bed's plane (if it's at an angle) but not actually measure for uneven points on the bed
G1 Z50 F240 < technically G1 is valid, but convention is to use G0 for travel moves... also that move will take 12.5 seconds, plus what are you trying to avoid on the bed that's 5cm high?
G1 X2.0 Y10 F3000 < see first part of above
M104 S{first_layer_temperature[0]} ; set final nozzle temp
M190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize
M109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize
G1 Z0.28 F240 < see above about using G0 for travel moves
G92 E0 < not only have you not extruded yet, you never need to reset the extruder value if you're using relative extrusion
G1 X2.0 Y140 E10 F1500 ; prime the nozzle < that isn't priming the nozzle, that's laying down the first part of a nose wipe, which yes makes sure the nozzle is full but also gets rid of any crap that might have accumulated in the system
G1 X2.3 Y140 F5000 ; < another travel move that should be a G0
G92 E0 < see above, even though this time you have extruded
G1 X2.3 Y10 E10 F1200 ; prime the nozzle < see above, except second part of nose wipe
G92 E0 < see above
Also, either make sure your slicer is set to use relative extrusion mode or stick an M82 at the end of your startup code to set the extruder to absolute.
Anyway, I would change yours to the following, bearing in mind that I don't actually know how the firmware responds to levelling commands when you've added a touch sensor as opposed to a built in one, and assuming you still want to use relative extrusion:
Edit: As @GregValiant pointed out below, Prusa uses different replacement patterns and I forgot to look for those. I've updated my code below accordingly.
G90 ; use absolute coordinates
M83 ; extruder relative mode
M190 S{material_bed_temperature_layer_0} ; heat up bed for levelling
M104 S150 ; get the nozzle going, it'll heat up plenty while you're homing and levelling
G28 ; home all axes
M420 S1 ; enable bed levelling
G29 ; run automatic bed levelling, printer should choose best method
G0 Z5 F240 ; move up a bit to be extra sure we won't hit the bed
G0 X2.0 Y10 F3000 ; move to start position
M109 S{material_print_temperature_layer_0} ; wait for nozzle to reach printing temperature now that we're in a place it doesn't matter if it dribbles a bit
G0 Z0.28 F240 ; move down to bed level
G1 X2.0 Y140 E10 F1500 ; draw the first line
G0 X2.3 Y140 F5000 ; move a bit to the side
G1 X2.3 Y10 E10 F1200 ; draw the second line
replaced replacement patterns
- 3
Recommended Posts
gr5 2,235
@GregValiant might know
Link to post
Share on other sites