G29S1 not loading during print and G32 not leveling properly
-
Hello, I have a problem when I include G29S1 with my Gcode file and try to print a file and load heightmap my 4 Zaxis motors they don't move to compensate. I will post some files to help clarify the problem. I have duet ethernet and duex5 Zaxis motor connected first one at the mainboard and the other 3 connected to duex 5.
Zbrop is DC42 IR sensor
Config.g
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Oct 13 2020 21:14:55 GMT-0500 (Central Daylight Time) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"DIVINCI-3D (MP4560)" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P10 R1 T3:3:10:10 S1 ; physical drive 0 goes forwards M569 P11 R1 T3:3:10:10 S1 ; physical drive 1 goes forwards M569 P3 S1 ; physical drive 3 goes forwards M569 P4 S0 ; physical drive 4 goes forwards M569 P5 S1 ; physical drive 5 goes Backwards M569 P6 S1 ; physical drive 6 goes Backwards M569 P8 S1 ; physical drive 7 goes Backwards M569 P2 S1 ; physical drive 9 goes backwards M584 X10 Y11 Z5:6:8:2 E3:4 ; set drive mapping M671 X50.0:450.0:450.0:50.0 Y50.0:50.0:450.0:450.0 S2 ; ZBelts Near Locations M350 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 X40 Y40 Z412.00 E415.00:415.00 ; set steps per mm M566 X8000 Y8000 Z800 E450:450 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z600 E600:600 ; set maximum speeds (mm/min) M201 X8000 Y8000 Z80 1000:1000 ; set accelerations (mm/s^2) M906 X1800 Y1800 Z1000 E600:600 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 X500 Y500 Z500 S0 ; set axis maxima 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 M574 Z2 S1 P"!zstop+!duex.e2stop+!duex.e3stop+!duex.e5stop" ; configure active-high endstop for high end on Z ; Z-Probe M558 P1 C"zprobe.in" H5 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X5 Y29 Z0.670 ; set Z probe trigger value, offset and trigger height M557 X20:460 Y20:460 S40 ; define mesh grid ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B4725 C7.06e-8 ; 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 A11 C99000 D2000 B1 ; 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"spi.cs2" Y"thermocouple-max31856" ; configure sensor 1 as thermocouple via CS pin spi.cs1 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 S360 ; set temperature limit for heater 1 to 280C M308 S3 P"duex.e2temp" Y"thermistor" T10000 B3950 ; configure sensor 3 as thermistor on pin duex.e2temp M950 H3 C"e1heat" T3 ; create chamber heater output on duex.e2heat and map it to sensor 3 M307 H3 A11 C99000 D2000 B1 ; enable bang-bang mode for the chamber heater and set PWM limit M141 H3 ; map chamber to heater 3 ; Fans M950 F0 C"fan1" Q500 ; create fan 0 on pin fan1 and set its frequency M106 P0 C"WATER COOLING" S1 H1 T45 ; set fan 0 name and value. Thermostatic control is turned on M950 F1 C"duex.fan6" Q500 ; create fan 1 on pin duex.fan6 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on M950 F2 C"duex.fan7" Q500 ; create fan 2 on pin duex.fan7 and set its frequency M106 P2 S1 H1 T45 ; set fan 2 value. Thermostatic control is turned on ;Led-Indicators M950 P6 C"duex.e2heat" Q500 ; Assign to P6 M950 P7 C"duex.e3heat" Q500 ; Assign to P7 M950 P8 C"duex.e4heat" Q500 ; Assign to P8 M950 P9 C"duex.e5heat" Q500 ; Assign to P9 M42 P6 S0; M42 P7 S0; M42 P8 S0; M42 P9 S0; ; Tools M563 P0 S"MAIN EXTRUDER " D1 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 M563 P1 S"SECOND EXTRUDER" D0 H1 F0 ; define tool 1 G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M575 P1 S1 B57600 ; enable support for PanelDue M501 ; load saved parameters from non-volatile memory 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 ; select first tool
Bed.g
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 30 2020 23:57:44 GMT-0500 (Central Daylight Time) M561 ; clear any bed transform M671 X50.0:450.0:450.0:50.0 Y50.0:50.0:450.0:450.0 S2 ; ZBelts Near Locations G30; G30 P0 X50 Y50 Z-99999; G30 P1 X450 Y50 Z-99999; G30 P2 X450 Y450 Z-99999; probe near a leadscrew, half way along Y axis G30 P3 X50 Y450 Z-99999 S4; probe near a leadscrew and calibrate 2 motors G29S1;
Homeall.g
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Oct 13 2020 21:14:55 GMT-0500 (Central Daylight Time) G91 ; relative positioning G1 H1 Z500 F5000 ; lift Z relative to current position G1 H1 Y-500 F6000 ; move quickly to Y endstop and stop there (first pass) G1 H1 X-500 F6000 ; move quickly to X endstop and stop there (first pass) G1 H2 X5 F360 ; go back a few mm G1 H2 Y5 F360 ; go back a few mm G1 X245 Y250 F6000 ; Prob at Center M558 F600 A1 ; Dive fast once G30 ; probe Z M558 F300 A10 ; Slow second dive with more accuracy G30 ; probe z again
height map file
RepRapFirmware height map file v2 generated at 2021-03-09 01:16, min error -1.010, max error 0.630, mean -0.501, deviation 0.316 xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum 20.00,460.00,20.00,460.00,-1.00,40.00,40.00,12,12 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -0.194, -0.234, -0.492, -0.513, -0.657, -0.777, -0.709, -0.693, -0.619, -0.663, -0.533, -0.469 -0.347, -0.345, -0.585, -0.628, -0.748, -0.862, -0.816, -0.777, -0.746, -0.725, -0.614, -0.495 -0.425, -0.386, -0.778, -0.825, -1.010, -0.950, -0.850, -0.739, -0.878, -0.751, -0.569, -0.708 -0.487, -0.544, -0.717, -0.896, -0.897, -0.952, -0.931, -0.746, -0.660, -0.770, -0.620, -0.436 -0.492, -0.552, -0.738, -0.744, -0.830, -0.950, -0.892, -0.787, -0.770, -0.703, -0.430, -0.352 -0.479, -0.488, -0.708, -0.753, -0.768, -0.892, -0.879, -0.770, -0.682, -0.621, -0.490, -0.261 -0.476, -0.483, -0.654, -0.817, -0.805, -0.941, -0.789, -0.619, -0.637, -0.557, -0.330, -0.180 -0.393, -0.363, -0.523, -0.681, -0.726, -0.757, -0.706, -0.551, -0.501, -0.412, -0.187, -0.044 -0.302, -0.293, -0.408, -0.537, -0.598, -0.647, -0.535, -0.454, -0.367, -0.246, -0.010, 0.167 -0.079, -0.117, -0.299, -0.295, -0.340, -0.476, -0.364, -0.221, -0.135, -0.010, 0.189, 0.328 0.099, 0.103, -0.012, -0.125, -0.188, -0.228, -0.128, 0.027, 0.057, 0.203, 0.406, 0.630
G32 Leadscrew adjustments made: 0.369 0.888 1.462 0.533, points used 4, (mean, deviation) before (0.813, 0.419) after (0.000, 0.000)
so this is after running G32 at 4 points and one G30 in the center. also checked after running G32 the front left&right corners lower than the rear ones. Thank you and your help will be highly appreciated
-
Heightmaps get unloaded whenever G28 is ran.
You need to make sure the G29 S1 is input after your last homing takes place.
I.e. include it as part of your start gcode, not bed.g -
that's what I have on my gcode file
g28;
g32;
g29s1; -
@moe-adams9093 are you entering
G29S1
OR
G29 S1
I think you need the space in between
If you're still having trouble, try manually sending each line from the start of a print one at a time and checking if the mesh compensation is applied/disabled via DWC
-
@jay_s_uk said in G29S1 not loading during print and G32 not leveling properly:
Heightmaps get unloaded whenever G28 is ran.
Why do you think that?
I have not found that to be the general case.
Frederick
-
Hi,
Your current bed.g has a single G30 before the four G30 Pn commands.
The G30 should occur AFTER the four G30 Pn commands.
And since bed.g is part of the bed leveling process normally you don't load your height map in it.
M561 ; clear any bed transform M671 X50.0:450.0:450.0:50.0 Y50.0:50.0:450.0:450.0 S2 ; ZBelts Near Locations G30; G30 P0 X50 Y50 Z-99999; G30 P1 X450 Y50 Z-99999; G30 P2 X450 Y450 Z-99999; probe near a leadscrew, half way along Y axis G30 P3 X50 Y450 Z-99999 S4; probe near a leadscrew and calibrate 2 motors G29 S1;
-
I'm still having an issue where when I send G32 my 4 corners are not compensated correctly it only moves the front right side, does the have to do because 3 of my Z steppers are connected to the duex 5 and the 4th one is connected to the mainboard.
-
post the output of the G32 command
-
here I ran it 3 times
3/9/2021, 11:54:19 PM: Connected to 192.168.1.252 3/9/2021, 11:55:57 PM: Upload of bed.g successful after 0s 3/9/2021, 11:57:50 PM: G32: Leadscrew adjustments made: 0.621 1.020 1.241 0.561, points used 4, (mean, deviation) before (0.861, 0.282) after (-0.000, 0.000) 3/9/2021, 11:58:47 PM: G32: Leadscrew adjustments made: -0.043 -0.128 0.225 -0.002, points used 4, (mean, deviation) before (0.013, 0.131) after (0.000, 0.000) 3/10/2021, 12:09:35 AM: G32: Leadscrew adjustments made: -0.152 -0.343 0.219 0.043, points used 4, (mean, deviation) before (-0.058, 0.210) after (-0.000, 0.000)
-
and here's my updated bed.g file
; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 30 2020 23:57:44 GMT-0500 (Central Daylight Time) M561 ; clear any bed transform M671 X50.0:450.0:450.0:50.0 Y50.0:50.0:450.0:450.0 S2 ; ZBelts Near Locations G30 P0 X50 Y50 Z-99999; G30 P1 X450 Y50 Z-99999; G30 P2 X450 Y450 Z-99999; probe near a leadscrew, half way along Y axis G30 P3 X50 Y450 Z-99999 S4; probe near a leadscrew and calibrate 2 motors G30;
-
so I did some modification to my M558 code I added new parameters to see if I can get some more accuracy
NEW CODE:
; Z-Probe M558 P1 C"zprobe.in" H5 R.02 A11 S2 F120 T6000 ; set Z probe type to unmodulated and the dive height + speeds G31 P500 X5 Y29 Z0.77 ; set Z probe trigger value, offset and trigger height M557 X50:450 Y50:450 S40 ; define mesh grid
and here's a screenshot of my new heightmap
3/10/2021, 3:47:24 AM G29 121 points probed, min error -0.071, max error 1.820, mean 0.505, deviation 0.402 Height map saved to file 0:/sys/heightmap.csv
RepRapFirmware height map file v2 generated at 2021-03-10 03:47, min error -0.071, max error 1.820, mean 0.505, deviation 0.402 xmin,xmax,ymin,ymax,radius,xspacing,yspacing,xnum,ynum 50.00,450.00,50.00,450.00,-1.00,40.00,40.00,11,11 0.609, 0.512, 0.468, 0.510, 0.401, 0.363, 0.488, 0.612, 0.703, 0.933, 1.184 0.446, 0.322, 0.258, 0.262, 0.228, 0.032, 0.397, 0.529, 0.573, 0.867, 1.015 0.361, 0.173, 0.143, 0.090, 0.066, -0.071, 0.336, 0.439, 0.575, 0.769, 1.029 0.306, 0.158, 0.027, 0.071, 0.042, 0.043, 0.248, 0.152, 0.499, 0.752, 1.046 0.215, 0.066, 0.037, 0.036, -0.064, 0.029, 0.232, 0.340, 0.570, 0.796, 1.032 0.188, 0.077, 0.005, 0.048, 0.101, 0.139, 0.313, 0.465, 0.567, 0.813, 1.082 0.252, 0.082, 0.097, 0.082, 0.022, 0.163, 0.350, 0.462, 0.618, 0.874, 1.157 0.343, 0.140, 0.152, 0.086, 0.141, 0.269, 0.408, 0.516, 0.711, 1.016, 1.309 0.384, 0.291, 0.229, 0.293, 0.258, 0.355, 0.559, 0.674, 0.884, 1.150, 1.468 0.468, 0.446, 0.411, 0.413, 0.439, 0.492, 0.675, 0.885, 1.018, 1.376, 1.611 0.842, 0.669, 0.605, 0.626, 0.705, 0.745, 0.965, 1.118, 1.340, 1.582, 1.820
I'm not sure how exactly M558 A & S Parameters should work on the Gcode Dictionary it doesn't explain a whole lot if somebody can share how these 2 parameters can make significant changes. Thanks in advance.
-
@moe-adams9093 said in [G29S1 not loading during print and G32 not leveling properly]
I'm not sure how exactly M558 A & S Parameters should work on the Gcode Dictionary it doesn't explain a whole lot if somebody can share how these 2 parameters can make significant changes. Thanks in advance.
Perhaps an example will help.
With A=10 and S=0.01 the firmware will probe each point up to 10 times trying to get two consecutive readings that are within 0.01.
If after 10 times two such readings do not occur then all 10 readings will be averaged.
I use those values for A and S and they work well.
Frederick
-
Thank you for explaining it. I do have some questions changing the P500 parameter to something else may be like 525 will it help to get it lot more accurate. As you see my map it’s not leveled at all
-
@moe-adams9093 said in G29S1 not loading during print and G32 not leveling properly:
Thank you for explaining it. I do have some questions changing the P500 parameter to something else may be like 525 will it help to get it lot more accurate. As you see my map it’s not leveled at all
Changing the P parameter is not likely to make much difference.
It could be that your bed is just not very flat.
What is it made of?
Frederick
-
Aluminum 6 mm thick I know the bed is not 100% I would say about 70% I have some twist In some spots
-
@moe-adams9093 said in G29S1 not loading during print and G32 not leveling properly:
Aluminum 6 mm thick I know the bed is not 100% I would say about 70% I have some twist In some spots
Is it cast aluminum tool plate?
Frederick
-
No it’s aluminum 6061
-
@moe-adams9093 said in G29S1 not loading during print and G32 not leveling properly:
No it’s aluminum 6061
If you have the resources you may want to upgrade.
This is from one of my suppliers:
Cast Aluminum Plates have a precision machined surface for superior flatness, flat within .015'', and +/- .005'' thickness tolerance,
Frederick
-
If you have the means you might be able to bash it into flatness, or at least take out the worst of the peaks and valleys.
-
@Phaedrux said in G29S1 not loading during print and G32 not leveling properly:
bash it into flatness
I think machinists might cringe at that.
Frederick