True Bed Leveling G32
-
Hi
When i do repeated G32 True Bed Leveling i can see that it keeps repeating the same corrections by every G32.
Ex: I do a G32 and it measures every corner/leadscrew and when in the final phase and calibrating it lowers leadscrew 1 and rises leadscrew 3. Leadscrew 2 and 4 are quite consistent.
If I do the same procedure again it only repeats the same correction. I thought that if i did a G32 it did a correction so it didnt have to do the exact same correction again and again. And why is the correction of leadscrew 3 always close to 2-something.I dont get it...
Regards Helge
2021-9-10 22:56:58 G32
Leadscrew adjustments made: -0.573 -0.574 1.920 -0.694, points used 4, (mean, deviation) before (-0.026, 0.651) after (0.000, 0.000)2021-9-10 22:53:01 G32
Leadscrew adjustments made: -0.563 -0.580 1.909 -0.490, points used 4, (mean, deviation) before (0.026, 0.644) after (0.000, 0.000)2021-9-10 22:50:00 G32
Leadscrew adjustments made: -0.563 -0.616 2.873 -0.699, points used 4, (mean, deviation) before (0.187, 0.900) after (0.000, 0.000); bed.g
; called to perform automatic bed compensation via G32
;
; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Jul 30 2021 22:46:27 GMT+0200 (sentraleuropeisk sommertid)
;M561 ; clear any bed transform
;G29 ; probe the bed and enable compensation
G28 ; home
;M401 ; deploy Z probe (omit if using bltouch)
G30 P0 X700 Y400 Z-99999 ; probe near a leadscrew
G30 P1 X700 Y5 Z-99999 ; probe near a leadscrew
G30 P2 X5 Y5 Z-99999 ; probe near a leadscrew
G30 P3 X5 Y400 Z-99999 S4 ; probe near a leadscrew and calibrate 4 motors
;M402 ; retract probe (omit if using bltouch); Configuration file for Duet WiFi (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.3 on Fri Jul 30 2021 22:46:27 GMT+0200 (sentraleuropeisk sommertid); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Voron24" ; set printer name
M669 K1 ; select CoreXY mode; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P1 S0 ; z drive 1
M569 P2 S1 ; z drive 2
M569 P3 S0 ; z drive 3
M569 P4 S1 ; z drive 4
M569 P5 S1 ; a drive 5
M569 P6 S1 ; b drive 6
M569 P7 S0 ; ex drive 7
M584 X5 Y6 Z1:2:3:4 E7
M671 X815:815:-125:-125 Y500:-130:-130:500 S20 ; leadscrews at rear left, front middle and rear right
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00 E420.00 ; set steps per mm
M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X700 Y400 Z500 S0 ; set axis maxima; Endstops
M574 X1 S1 P"xstop" ; configure active-high endstop for low end on X via pin xstop
M574 Y1 S1 P"ystop" ; configure active-high endstop for low end on Y via pin ystop
M574 Z1 S2 ; configure Z-probe endstop for low end on Z; Z-Probe
M558 P1 C"zprobe.in" H20 F2000 T6000 ; set Z probe type to unmodulated and the dive height + speeds
G31 P1000 X0 Y0 Z1.995 ; set Z probe trigger value, offset and trigger height
M557 X15:700 Y15:400 S80 ; define mesh grid; Heaters
M308 S0 P"bedtemp" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"e0temp" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin e0temp
M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M950 F0 C"fan0" Q500 ; create fan 0 on pin fan0 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan1" Q500 ; create fan 1 on pin fan1 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C; Custom settings are not defined
-
The results suggest the Z steppers are not actually adjusting the bed or at least not by the correct amounts
Have you verified that if you command, say, a 100mm move in Z that it moves 100mm?
Frederick
-
@fcwilt Hm. It seems like its adjusting the bed correct. Could it be that i might have a faulty stepper motor thats not doing its job properly by a mm or two, thats difficult to measure by eye.
-
@hsverre said in True Bed Leveling G32:
@fcwilt Hm. It seems like its adjusting the bed correct. Could it be that i might have a faulty stepper motor thats not doing its job properly by a mm or two, thats difficult to measure by eye.
Did you verify Z movement as I asked about.
Have you run G32 many times to see if it ever gets better?
It's possible to setup a loop which runs a max number of times or until a certain result is obtained.
From my bed.g file:
while true ; run leveling pass ; --- probe near bed corners --- G30 P0 X-140 Y-90 Z-99999 ; LF G30 P1 X-140 Y90 Z-99999 ; LR G30 P2 X140 Y90 Z-99999 ; RR G30 P2 X140 Y-90 Z-99999 S3 ; RF ; check results - exit loop if results are good if move.calibration.initial.deviation < 0.02 break ; check pass limit - abort if pass limit reached if iterations = 5 M291 P"Bed Leveling Aborted" R"Pass Limit Reached" abort "Bed Leveling Aborted - Pass Limit Reached"