Ender 3 - Nozzle ramming into bed with Cr touch

  • Hey everyone,

    This is a copy/past from a reddit post I made but unfortunately I haven't found a solution. Since I've made this post, I now have a 4.2.7 board and I have exactly the same problems.

    In short: The nozzle rams into the bed and digs into the bed, causing deep lacerations in the bed, despite the offsets being set correctly through the standard method.


    Creality recommended firmware that was either not compatible with the GD32F303 RET6 chip in the printer or just corrupted, so my printer didn't work. I had no idea how to compile firmware so I just used the Unified 2 firmware as it says it's compatible with my chip/board. Here's the only settings that I changed and roughly the steps I took.

    Edited Platform.ini file by changing the Default_envs line with the recommended name. I didn't know what to do next so I just hit build https://imgur.com/B1he3kp

    Uncommented my printer (I have Ender 3 with 4.2.2 board) https://imgur.com/iDzbYRz

    Uncommented custom probe - https://imgur.com/ZvHnh5B

    Set X/Y offsets (These did not transfer to printer). https://imgur.com/YQkeAYw

    Uncommented BLtouch lines - https://imgur.com/sKEzWKk

    Built and flashed onto printer.

    X/Y offsets

    They numbers I put in the firmware did not stick so I had to push them through with Pronterface and they're saved now (X -45, Y -5). I can't remember exactly how I measured them but I remember marking a point on a piece of paper taped to the bed where the nozzle touches it, and then moving the X/Y axis' until the probe touched the point and using the difference as the offsets (rounded). -45/-5 seems to be close to what others with enders 3 put.

    Z Offset

    I started by pulling the filament out a bit and heating nozzle to 200c and bed to 50c and letting it sit for a few mins. I then auto homed which brought the Z axis to 5. I jogged it down to 0 and then babystepped down until it grips a piece of paper (I've tried like every combination from full grip, mid to full grip, mid grip, slight grip and no grip and my nozzle will dive into the bed each time). I record the position and then move the Z axis to 0. I then go to config - > Z offset and babystep the nozzle back down to the same position I measured earlier. I store settings and can confirm that it's saved as the Z offset remains the same when the printer is turned off / on or when I send a M503 through pronterface. For reference, the number I set was -3.9.

    I add a G29 after G28 (new line) in Cura and try to print. The printer will auto home, and then do a 9 point probe around the bed. And then it immediately drives into the bed as it does the filament dump line on the left, digging a trench through the bed. The extruder is going crazy as well as no filament can be extruded since it's so far into the bed. So the whole printer is just violently vibrating/knocking/screeching.

    The only fix (and it's barely a fix) is to choose a random number for the Z offset. Mine happens to be -0.975 right now. This is what -0.975 looks like https://imgur.com/EQQcXM2 . This allows me to print but only items with a small surface area. If it goes outside the very middle of the printer, The filament doesn't stick as the nozzle is too far from the bed (I have a warped bed). I have manually levelled and even bought yellow springs for the bed to help but haven't had any luck. I am stuck with very small prints unfortunately.

    For reference as well, this is the position of the probe when it's deployed https://kaha102030.imgur.com/all (it sits below the nozzle)

    Any help would be greatly appreciated, thank you in advance ❤ I'll post some more relevant stuff below this:

    Cura printer settings


    Cura start G Code

    3 Custom Start G-code

    G92 E0 ; Reset Extruder

    G28 ; Home all axes

    G29 ; ABL

    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed

    G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position

    G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line

    G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little

    G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line

    G92 E0 ; Reset Extruder

    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed

    G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

    Cura End G code

    G91 ;Relative positioning

    G1 E-2 F2700 ;Retract a bit

    G1 E-2 Z0.2 F2400 ;Retract and raise Z

    G1 X5 Y5 F3000 ;Wipe out

    G1 Z10 ;Raise Z more

    G90 ;Absolute positioning

    G1 X0 Y{machine_depth} ;Present print

    M106 S0 ;Turn-off fan

    M104 S0 ;Turn-off hotend

    M140 S0 ;Turn-off bed

    M84 X Y E ;Disable all steppers but Z

    M503 info


    echo:; Linear Units:

    echo: G21 ; (mm)

    echo:; Temperature Units:

    echo: M149 C ; Units in Celsius

    echo:; Steps per unit:

    echo: M92 X80.00 Y80.00 Z400.00 E98.81

    echo:; Max feedrates (units/s):

    echo: M203 X400.00 Y400.00 Z15.00 E200.00

    echo:; Max Acceleration (units/s2):

    echo: M201 X2500.00 Y2500.00 Z500.00 E5000.00

    echo:; Acceleration (units/s2) (P<print-accel> R<retract-accel> T<travel-accel>):

    echo: M204 P1500.00 R500.00 T1500.00

    echo:; Advanced (B<min_segment_time_us> S<min_feedrate> T<min_travel_feedrate> X<max_x_jerk> Y<max_y_jerk> Z<max_z_jerk> E<max_e_jerk>):

    echo: M205 B20000.00 S0.00 T0.00 X8.00 Y8.00 Z0.30 E5.00

    echo:; Auto Bed Leveling:

    echo: M420 S0 Z0.00 ; Leveling OFF

    echo: G29 W I0 J0 Z-4.61000

    echo: G29 W I1 J0 Z-4.21000

    echo: G29 W I2 J0 Z-3.91000

    echo: G29 W I0 J1 Z-4.23550

    echo: G29 W I1 J1 Z-3.98550

    echo: G29 W I2 J1 Z-3.73950

    echo: G29 W I0 J2 Z-4.05450

    echo: G29 W I1 J2 Z-3.90700

    echo: G29 W I2 J2 Z-3.73700

    echo:; Material heatup parameters:

    echo: M145 S0 H210.00 B60.00 F0

    echo: M145 S1 H240.00 B100.00 F0

    echo:; Hotend PID:

    echo: M301 P28.72 I2.62 D78.81

    echo:; Z-Probe Offset:

    echo: M851 X-45.00 Y-5.00 Z-0.98 ; (mm)

    echo:; Filament load/unload:

    echo: M603 L100.00 U100.00 ; (mm)

  • @kahalani1
    1mm offset seems low. Usually nearer 3mm so that auto leveling keeps the nozzle away from the bed.
    After auto leveling you should be able to manually set x and y at a number of test positions then set 0 for z and the nozzle just touch the bed. Set z high (10mm) before moving to each position. Lower z incrementally to avoid hitting the bed hard.
    Eg. 0,0. 100,100 200,200 and other corners of the bed.
    I suggest not running any gcode until the above test is successful.

Log in to reply