DWC G32 Dual Leadscrews
-
Hi,
I have a Tronxy x5sa pro (330 x 330 x 400) with dual leadscrew and a Duet 6ch.
I still have the original bed with 6 bed adjustment screw, for which I use a macro to get the bed square to the frame.
Once this is done I run G32 to go to the 2 points closest to the 2 leadscrew and it should auto level.
I the console report, I'm not quite sure I under stand the results correctly;
"Leadscrew adjustments made", is how much the 2 leadscrews needed to be moved
"points used 2", is the 2 leadscrews
"(mean, deviation) Before() after()", before is how much the leadscrews needed moving, after is how level the bed is across the 2 leadscrews are after being moved.
What I don't understand, if I'm understanding the above correctly is, after the first run of G32 (meaning it should now be level between the 2 leadscrews), the 1st motor/leadscrew on the 2nd 3rd and 4th run of G32 isn't at 0 (zero) where the 2nd motor/leadscrew is or pretty close to 0 (zero).
Am I just splitting hairs or should look further into this?
-
@Dizzwold I have a dual Z motor setup. When I run X-leveling, I get something like:
19/12/2022, 14:40:18 M98 P"0:/macros/X-levelling" Leadscrew adjustments made: 0.001 -0.000, points used 2, (mean, deviation) before (0.000, 0.000) after (-0.000, 0.000) 19/12/2022, 14:39:28 M98 P"0:/macros/X-levelling" Leadscrew adjustments made: 0.004 -0.002, points used 2, (mean, deviation) before (0.001, 0.002) after (0.000, 0.000) 19/12/2022, 14:38:57 M98 P"0:/macros/X-levelling" Leadscrew adjustments made: 0.009 -0.002, points used 2, (mean, deviation) before (0.004, 0.002) after (0.000, 0.000) 19/12/2022, 14:38:22 M98 P"0:/macros/X-levelling" Leadscrew adjustments made: 0.167 0.117, points used 2, (mean, deviation) before (0.142, 0.012) after (0.000, 0.000)
I think the first set of points is the measured variation from Z=0 for each point, so you need to home Z before doing this. The "(mean, deviation) Before()" is the average (mean) of the two points, and the amount each is off (deviation) from this average. The "after()" shows what it should be after the correction.
If you are concerned about the roughly -0.15mm measurement, I'd think most likely is that you're levelling with an active bed mesh. That your 'deviation' is very low would imply that the probing and subsequent levelling is working well.
To disable any bed transformation and/or bed mesh, make sure you have something like this at the beginning of the levelling macro:
M561 ; clear any bed transform G29 S2 ; disable compensation
The above two lines actually do the same thing, so you only need one or other, but I like having both just to be sure!
Ian
-
What I don't get is in the following, if the right-hand side of the bed/leadscrew is at 0.001 why has the unit decided to move that leadscrew 0.128?
config.g; Configuration file for Duet 3 MB 6HC (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.13 on Mon Sep 19 2022 16:04:20 GMT+0100 (British Summer Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 P192.168.1.72 S1 ; Bed Leadscrew Positions M671 X5:278 Y146:146 P2.0 ; middle left, middle right G4 S1 ;wait for expansion boards to start ; Drives M569 P0.0 S0 ; physical drive 0.0 goes backwards M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S1 ; physical drive 0.2 goes forwards M569 P0.3 S1 M569 P121.0 S0 ; physical drive 0.3 goes forwards M584 X0.0 Y0.1 Z0.2:0.3 E121.0 ; set drive mapping M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z400.00 E330.12 ; 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 X900 Y900 Z900 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X-2 Y-8 Z0 S1 ; set axis minima M208 X330 Y330 Z400 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!121.io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin !io1.in M574 Y1 S1 P"!io2.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin !io2.in ; Z-Probe M574 Z1 Z1 S2 ; set endstops controlled be probe M558 P8 C"^!121.io0.in" H5 F120 T6000 ; set Z probe type to switch and the dive height + speeds G31 P500 X-46 Y-19 Z2.55 ; set Z probe trigger value, offset and trigger height M557 X19:244 Y-2:304 P9 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.187 K0.192:0.000 D1.89 E1.35 S1.00 B0 ; disable 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"121.temp0" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"121.out0" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 R2.498 K0.275:0.349 D6.79 E1.35 S1.00 B0 V24.0 ; 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"121.out2" Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 C"Part Cooler" S0 H-1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"121.out1" Q500 ; create fan 1 on pin out5 and set its frequency M106 P1 C"Extruder Cooling" S1 H1 T45 ; set fan 1 name and value. Thermostatic control is turned on ; Tools M563 P0 S"Hemera" 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 ; Emergency Stop M950 J1 C"io4.in" M851 P1 T0 S0 R0 ; Miscellaneous M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss T0 M501
bed.g
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.3.13 on Mon Sep 19 2022 16:04:20 GMT+0100 (British Summer Time) ;M561 ; clear any bed transform ;G29 ; probe the bed and enable compensation M561 M671 X5:278 Y146:146 P2.0 G28 ; home G30 P0 X5 Y146 Z-9999 ; probe center left G30 P1 X278 Y146 Z-9999 S2 ; probe center right G1 X0 Y0 F12000
homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.3.13 on Mon Sep 19 2022 16:04:20 GMT+0100 (British Summer Time) ; X Y homing section G91 ; relative positioning G1 H2 Z5 F6000 ; lower Z relative to current position G1 H1 X-337 Y-343 F12000 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X-337 ; home X axis G1 H1 Y-343 ; home Y axis G1 H2 X5 Y5 F6000 ; go back a few mm G1 H1 X-337 F360 ; move slowly to X axis endstop once more (second pass) G1 H1 Y-343 F360 ; move slowly to Y axis endstop once more (second pass) ; Z homing section G91 ; relative positioning G1 H2 Z5 F12000 ; lower Z relative to current position G1 X199 Y167 F6000 ; move probe X & Y to centre of bed before Z home G30 ; home Z with probe G90 ; absolute positioning G1 X0 Y0 F6000 ; move to home position
-
@Dizzwold said in DWC G32 Dual Leadscrews:
What I don't get is in the following, if the right-hand side of the bed/leadscrew is at 0.001 why has the unit decided to move that leadscrew 0.128
The 0.001 is the deviation of the measured points (the mean of them is -0.128),not the measurement at the second point.