Inconsistent Z axis movement.
-
Hello Duet Aficionados!!
I have an OG CR-10 that I've modified. I have dual Z motors running in a parallel configuration and 1500ma in the config, linear rails on the bed, and the Duet Wifi. Still on the same 12 v power supply and the stock Creality steppers. Other upgrades include the E3D V6, petsfang cooler, and a BLTouch.
I'm having some Z axis issues. What I've done so far.
I started with measuring the Z axis movement with a dial indicator. I've set it on the table next to the printer, set the nozzle on the bed and zero'd both the indicator and the printer. I then command the printer to move the Z axis up 5 mm. I measured 4.50 (at one point) with the default 400 steps/mm included in the stock RRF config. I then adjusted the steps/mm to 412. I read some that whole numbers worked better than 411.55 or the like. I reboot the printer, home the axis and perform the same measurements. Now, my printer will move 5mm when commanded. 5.00 is what the printer shows as well as the dial indicator. I issue the command G1 Z0 and both indicate they are at 0(DWC and dial indicator). I send the command G1 Z0.20 and the gantry moves 0.06 on the indicator but DWC shows .20. Now, when I issue the command, G1 Z10. The printer moved to 10.01 on the dial indicator and 10.00 in DWC (.01mm on this printer, I'll take it). Then I issued the command G1 Z0.20, the gantry moved back down to exactly 0.20 as shown on the dial indicator.
Long story short going from 0 to .20mm height doesn't get me anywhere close but coming down from a higher gantry height does.At this point I thought it axis was binding. So I pulled both rods, nuts, and brackets. I cleaned and lubricated the rods and nuts. Made sure the steppers were fully plugged in. Reset the steps per/mm to 400 and started the process all over again. Using 5mm as my movement This time different numbers in the steps/mm. But still the same issue with z0 to z0.20 = not z0.20 where as z10 to z0.20 = z0.20.
Posting my config.g for reference
; Configuration file for RepRapFirmware on Duet 2 WiFi ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.5.4 on Mon Aug 12 2024 08:25:14 GMT-0700 (Pacific Daylight Time) ; General G90 ; absolute coordinates M83 ; relative extruder moves M550 P"CR10 Duet Wifi" ; set hostname ; Network M552 S1 ; configure WiFi adapter M586 P0 S1 ; configure HTTP ; Smart Drivers M569 P0 S0 D2 ; driver 0 goes backwards (X axis) M569 P1 S0 D2 ; driver 1 goes backwards (Y axis) M569 P2 S1 D2 ; driver 2 goes forwards (Z axis) M569 P3 S0 D2 ; driver 3 goes backwards (extruder 0) ; Motor Idle Current Reduction M906 I30 ; set motor current idle factor M84 S30 ; set motor current idle timeout ; Axes M584 X0 Y1 Z2 ; set axis mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M906 X800 Y800 Z1500 ; set axis driver currents M92 X80 Y80.64 Z415 ; configure steps per mm M208 X0:300 Y0:300 Z0:400 ; set minimum and maximum axis limits M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min) M201 X500 Y500 Z20 ; set accelerations (mm/s^2) ; Extruders M584 E3 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M906 E1000 ; set extruder driver currents M92 E105.89 ; configure steps per mm M566 E120 ; set maximum instantaneous speed changes (mm/min) M203 E3600 ; set maximum speeds (mm/min) M201 E250 ; set accelerations (mm/s^2) ; Kinematics M669 K0 ; configure Cartesian kinematics ; Probes M558 K0 P9 C"^zprobe.in" H5 F120 T6000 A3 S0.03 ; configure BLTouch probe via slot #0 G31 P500 X-48 Y-2 Z2.51 ; set Z probe trigger value, offset and trigger height M950 S0 C"exp.heater7" ; create servo #0 for BLtouch ; Endstops M574 X1 P"xstop" S1 ; configure X axis endstop M574 Y1 P"ystop" S1 ; configure Y axis endstop M574 Z1 S2 ; configure Z axis endstop ; Mesh Bed Compensation M557 X10:290 Y25:275 S40:40 ; define grid for mesh bed compensation ; Sensors M308 S0 P"bedtemp" Y"thermistor" A"Heated Bed" T100000 B4725 C7.06e-8 ; configure sensor #0 M308 S1 P"e0temp" Y"thermistor" A"Nozzle" T100000 B4725 C7.06e-8 ; configure sensor #1 ; Heaters M950 H0 C"bedheat" T0 ; create heater #0 M143 H0 P0 T0 C0 S140 A0 ; configure heater monitor #0 for heater #0 M307 H0 R0.235 K0.459:0.000 D0.98 E1.35 S1.00 B0 ; configure model of heater #0 M950 H1 C"e0heat" T1 ; create heater #1 M143 H1 P0 T1 C0 S285 A0 ; configure heater monitor #0 for heater #1 M307 H1 R2.439 K0.533:0.000 D3.47 E1.35 S1.00 B0 V14.1 ; Heated beds M140 P0 H0 ; configure heated bed #0 ; Fans M950 F0 C"fan0" ; create fan #0 M106 P0 S0 L0 X1 B0.1 ; configure fan #0 M950 F1 C"fan1" ; create fan #1 M106 P1 S0 B0.1 H1 T45 ; configure fan #1 ; Tools M563 P0 D0 H1 F0 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C M501
-
Update -
I rewired the Z axis steppers separate drivers vs 2 steppers on one driver. This seems to have helped a little bit. However, after dialing in the steps as before, I still get less than expected movement under 2mm. -
Have your modifications made the gantry much heavier?
Steps per mm should be defined by the motor steps per rotation, the microstepping setting, and the lead of your lead screw. It shouldn't need any fine tuning or adjustment, otherwise something is wrong.
Here's the formula.
Z_steps_per_mm = (motor_steps_per_rev * driver_microstep) / screw_lead
The fact it got better when moving to two seperate drivers makes me wonder if it's a weight issue. What motor current are you using now? Have you tried increasing it?
-
I don't think they have. Honestly, I had been printing with this printer for years with the same modifications. I moved twice and now have space to set them back up. It was about a year that my printer was offline and now bringing it back online, I've run into a few issues here and there. But maybe? I've cleaned and lubed up all the moving parts on the Z axis at this point. I do have some new lead screws, brass lead screw nuts, and stepper motor to lead screw couplers on order.
Here's my axis config from the current config.g.
; Axes
M584 X0 Y1 Z2:4 ; set axis mapping
M671 X-20:320 Y0:0 S0.5 ; position of leadscrew/bed pivot point at left and right of X axis
M208 X0:305 Y0:300 ; X carriage moves from -5 to 205, Y bed goes from 0 to 200
M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
M906 X800 Y800 Z1200 ; set motor driver currents
M92 X80 Y80 Z409 ; configure steps per mm
M208 X0:300 Y0:300 Z0:400 ; set minimum and maximum axis limits
M566 X900 Y900 Z12 ; set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z180 ; set maximum speeds (mm/min)M201 X500 Y500 Z20 ; set accelerations (mm/s^2)