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.
Firmware
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
SENDING:M503
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.