Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    G29S1 not loading during print and G32 not leveling properly

    Scheduled Pinned Locked Moved
    IR Height Sensor
    7
    44
    2.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • moe.adams9093undefined
      moe.adams9093
      last edited by moe.adams9093

      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

      1 Reply Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk
        last edited by

        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

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        fcwiltundefined 1 Reply Last reply Reply Quote 0
        • moe.adams9093undefined
          moe.adams9093
          last edited by

          that's what I have on my gcode file

          g28;
          g32;
          g29s1;

          engikeneerundefined 1 Reply Last reply Reply Quote 0
          • engikeneerundefined
            engikeneer @moe.adams9093
            last edited by

            @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

            E3D TC with D3Mini and Toolboards.
            Home-built CoreXY, Duet Wifi, Chimera direct drive, 2x BMG, 300x300x300 build volume
            i3 clone with a bunch of mods

            1 Reply Last reply Reply Quote 0
            • fcwiltundefined
              fcwilt @jay_s_uk
              last edited by

              @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

              Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

              1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt
                last edited by

                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; 
                

                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                1 Reply Last reply Reply Quote 0
                • moe.adams9093undefined
                  moe.adams9093
                  last edited by

                  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.

                  1 Reply Last reply Reply Quote 0
                  • Vetiundefined
                    Veti
                    last edited by

                    post the output of the G32 command

                    1 Reply Last reply Reply Quote 0
                    • moe.adams9093undefined
                      moe.adams9093
                      last edited by

                      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)
                      
                      
                      1 Reply Last reply Reply Quote 0
                      • moe.adams9093undefined
                        moe.adams9093
                        last edited by

                        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;
                        
                        
                        1 Reply Last reply Reply Quote 0
                        • moe.adams9093undefined
                          moe.adams9093
                          last edited by

                          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

                          Screenshot 2021-03-10 035751.png

                          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.

                          fcwiltundefined 1 Reply Last reply Reply Quote 0
                          • fcwiltundefined
                            fcwilt @moe.adams9093
                            last edited by

                            @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

                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                            1 Reply Last reply Reply Quote 0
                            • moe.adams9093undefined
                              moe.adams9093
                              last edited by

                              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

                              fcwiltundefined 1 Reply Last reply Reply Quote 0
                              • fcwiltundefined
                                fcwilt @moe.adams9093
                                last edited by fcwilt

                                @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

                                Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                1 Reply Last reply Reply Quote 0
                                • moe.adams9093undefined
                                  moe.adams9093
                                  last edited by

                                  Aluminum 6 mm thick I know the bed is not 100% I would say about 70% I have some twist In some spots

                                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                                  • fcwiltundefined
                                    fcwilt @moe.adams9093
                                    last edited by

                                    @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

                                    Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                    1 Reply Last reply Reply Quote 0
                                    • moe.adams9093undefined
                                      moe.adams9093
                                      last edited by

                                      No it’s aluminum 6061

                                      fcwiltundefined 1 Reply Last reply Reply Quote 0
                                      • fcwiltundefined
                                        fcwilt @moe.adams9093
                                        last edited by

                                        @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

                                        Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                        1 Reply Last reply Reply Quote 0
                                        • Phaedruxundefined
                                          Phaedrux Moderator
                                          last edited by

                                          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.

                                          Z-Bot CoreXY Build | Thingiverse Profile

                                          fcwiltundefined 1 Reply Last reply Reply Quote 0
                                          • fcwiltundefined
                                            fcwilt @Phaedrux
                                            last edited by

                                            @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

                                            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                            Phaedruxundefined 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA