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

    Help with mesh leveling

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    5
    14
    540
    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.
    • Col_Clucksundefined
      Col_Clucks
      last edited by

      I am having trouble getting mesh leveling to work properly on my prusa i3 printer with a duet 3 mini 5+. The issue I have is it seems like the printer over compensates for points on the bed. So for example the points that are close to z=0 print just fine. As you get to z=-.2 the printer pushes down into the print bed too far and when you go to z=.2 its printing above the print surface and not sticking at all. Its a pinda 2 probe so maybe I have it set up wrong?

      I have printed test prints with out applying a mesh and the points it are taking are definitely correct. Do I have a setting wrong that causes the mesh to over compensate for a mesh or do I just not have it set up right. I have attached my config file please let me know if you think something else may be affecting it also.

      ; Configuration file for Duet 3 Mini 5+ (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.2.3 on Mon Mar 15 2021 19:09:36 GMT+0100 (Mitteleuropäische Normalzeit)
      
      ; ##### General preferences
      G90                                          						; send absolute coordinates...
      M83                                          						; ...but relative extruder moves
      M550 P"Prusa MK2.25 S DUET"                          					; set printer name
      
      ; ##### Network
      M552 S1                                      						; enable network
      M586 P0 S1                                   						; enable HTTP
      M586 P1 S0                                  						; disable FTP
      M586 P2 S0                                   						; disable Telnet
      
      ; ##### Drives
      M569 P4 S0 D3 V10                                					; X drive @1
      M569 P2 S0 D3 V10                                					; Y drive @2
      M569 P0 S0 D3 V100                               					; Z left drive @0
      M569 P1 S0 D3 V100                               					; Z right drive  @4
      M569 P3 S1 D3 V1000                               					; E drive @3 - inversed
      M584 X4 Y2 Z1:0 E3                     							; set drive mapping
       
      M671 X-37:287 Y0:0 S10                                     				; define dual driven z-axis 
      
      M350 X16 Y16 Z16 E16 I1                      						; configure microstepping with interpolation
      M92 X100.00 Y100.00 Z400.00 E155.00             					; set steps per mm
      M566 X600.00 Y600.00 Z48.00 E300.00        						; set maximum instantaneous speed changes (mm/min)
      M203 X8000.00 Y8000.00 Z720.00 E7200.00      						; set maximum speeds (mm/min)
      M201 X1250.00 Y1250.00 Z1250.00 E2000.00        					; set accelerations (mm/s^2)
      M906 X750 Y750 Z600 E700 I30                						; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                      						; Set idle timeout
      
      ; ##### Axis Limits
      M208 X0 Y-5 Z-1 S1                             						; set axis minima
      M208 X250 Y210 Z215 S0                       						; set axis maxima
      
      ; ##### Endstops
      M574 X1 S1 P"io0.in"                        						; X endstop
      M574 Y1 S1 P"io1.in"                        						; Y endstop
      
      ; ##### Filament Sensor
      M591 D0 P2 C"io3.in" S1                                    				; Filament Runout Sensor
      
      ; ##### Z-Probe Settings for PINDA 2
      M558 P5 C"io2.in" I1 H1 F1000 T6000 A3              					; Prusa PindaV2 Endstop
      M308 S2 P"temp2" A"Pinda V2" Y"thermistor" T100000 B3950      				; Prusa PindaV2 Thermistor
      G31 P1000 X22.5 Y5 Z.475                          					; Nozzle offset
      M574 Z1 S2                                                 				; Set Z axis endstop, controlled by probe
      M557 X36:236 Y7:205 P3                                    				; Define mesh grid for probing
      M376 5											; Fade height 5mm
      
      ; ##### Heaters
      ; Bed Heater
      M308 S0 P"temp1" Y"thermistor" B4725 C7.060000e-8 					; configure sensor 0 as thermistor on pin temp1
      M950 H0 C"out0" Q25 T0                           					; create bed heater output on out0 and map it to sensor 0, PWM frequency: 25Hz
      M307 H0 B0 R0.298 C372.8 D11.53 S1.00 V12.2						; Bed tuning values, enable PID
      M140 H0                                                    				; Bed uses Heater 0
      M143 H0 S120                                               				; Set temperature limit for heater 0 to 120C Bed
      ; Hotend heater
      M308 S1 P"temp0" Y"thermistor" T100000 B4725 C7.060000e-8 				; configure sensor 1 as thermistor on pin temp0
      M950 H1 C"out1" T1                           						; create nozzle heater output on out1 and map it to sensor 1
      M307 H1 B0 R2.164 C276.6 D4.16 S1.00 V12.2
      M307 H1 B0 S1.00                             						; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S295                                 						; set temperature limit for heater 1 to 295C
      M302 S170 R170                                         					; allow extrusion starting from 170°C and retractions already from 170°C
      
      ; ##### Fans
      ; Part cooling fan
      M950 F0 C"out3" Q100                         						; create fan 0 on pin out3 and set its frequency
      M106 P0 S0 H-1                               						; set fan 0 value. Thermostatic control is turned off
      ; Hotend cooling fan
      M950 F1 C"out6" Q5000									; NOCTUA fan an pin out6 with 5000Hz PWM frequency
      M106 P1 T55 S255 H1  									; Temperature control: turn fan on at 55°C
      
      ; ##### 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
      M572 D0 S0.06								 		; Pressure Advance
      
      ; ##### Startup
      M18 XYE                                                					; release / unlock X, Y, and E axis
      M501                                                   					; use config-override (for Thermistor Parameters and other settings)
      G90                                                    					; send absolute coordinates...
      M83                                                   					; ... but relative extruder moves
      

      I am using bed.g to run gantry leveling before g29 which levels my gantry correctly but I don't know if something in there could be jacking up my mesh. Here is the bed.g

      ; bed.g
      ; called to perform automatic bed compensation via G32
      ;
      
      M561                            	; Clear any existing bed transform.
      
      G28
      
      G1 Z210 F10000
      M558 F10000
      G30
      
      M558 F100 A5 S0.003
      G30 P0 X33 Y106 Z-99999 		; probe near a leadscrew, half way along Y axis
      G30 P1 X235 Y106 Z-99999 S2 		; probe near a leadscrew and calibrate 2 motors
      
      G1 X112 Y101;
      G30;
      
      M558 F200 A1
      
      G1 X10 Y210 Z10 F10000
      
      Stephen6309undefined 1 Reply Last reply Reply Quote 0
      • Stephen6309undefined
        Stephen6309 @Col_Clucks
        last edited by

        @col_clucks This may help, here's the one I use:

        ; bed.g
        ; called to perform automatic bed compensation via G32
        M561 ; clear any bed transform
        if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
         G28
        M290 R0 S0    ;  clear baby stepping
        G30 P0 X44 Y140 Z-99999 ; probe near a leadscrew, half way along Y axis
        G30 P1 X265 Y140 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
        G29 S1 ; load heightmap.csv
        if result > 1 ; if no heightmap.csv, make one
         G29 S0
        
        
        Col_Clucksundefined 1 Reply Last reply Reply Quote 1
        • Col_Clucksundefined
          Col_Clucks @Stephen6309
          last edited by

          @stephen6309 it looks like the only difference between the code is the remove baby steps when I include my start gcode.I do like how you code is structured though so I’ll probably be changing to it.

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

            @col_clucks

            Just remember that before creating/loading any height map you need to set the Z=0 Datum using a single G30 at your chosen XY reference point.

            The reference point that was used when creating a height map must be used when loading that same height map.

            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

            Col_Clucksundefined 1 Reply Last reply Reply Quote 0
            • Col_Clucksundefined
              Col_Clucks @fcwilt
              last edited by

              @fcwilt I do have a g30 at the center of the bed in bed.g

              In my start gcode g32 is followed by g29

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

                @col_clucks

                Yes but the code posted by Stephan309 does not.

                I just wanted to be sure you did not use his code as a template for yours.

                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

                Stephen6309undefined 1 Reply Last reply Reply Quote 0
                • Stephen6309undefined
                  Stephen6309 @fcwilt
                  last edited by Stephen6309

                  @fcwilt G28 homes the Z with a G30. Why does it need the G30 again?

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

                    @stephen6309 said in Help with mesh leveling:

                    @fcwilt G28 homes the Z with a G30. Why does it need the G30 again?

                    It doesn't. I just wanted to be sure the OP understood and didn't follow the other posters bed.g code too closely where there was no setting of the Z=0 datum before creating/loading the height map.

                    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
                    • sanczessundefined
                      sanczess
                      last edited by

                      Hey guys, I have the same issue as Col_Clucks.
                      My printer is a coreXY with 2 Leadscrews.
                      The code that Stephen6309 posted I don't see any improvement, it just automates the leveling.

                      Is there anywhere a compensation multiplier whoose value is set too high?

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

                        Do you use the same XY point to home the Z axis with the probe in your homeall/homez and in your bed.g? Does your probe or print head have any tilt to it that varies with XY position?

                        Z-Bot CoreXY Build | Thingiverse Profile

                        sanczessundefined 1 Reply Last reply Reply Quote 0
                        • sanczessundefined
                          sanczess @Phaedrux
                          last edited by

                          @phaedrux I execute each step manually:

                          1. G29 S2
                          2. homeall ; HomeZ is in centre of bed
                          3. G32
                          4. HomeZ
                          5. G29

                          here is what character the bed always appearsScreenshot 2021-11-25 211022.jpg

                          about tilting: the printhead is running on a rail. Tilting is what carriage on rail is usual

                          IMG_20211125_212633.jpg

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

                            That saddle shape makes me think your rails are not perfectly parallel. Looks as though the left rail tilts up at the front and the right rail tilts up at the back.

                            @sanczess said in Help with mesh leveling:

                            G29 S2
                            homeall ; HomeZ is in centre of bed
                            G32
                            HomeZ
                            G29

                            Would need to see your actual files ot say more. Probably best to start your own thread.

                            Z-Bot CoreXY Build | Thingiverse Profile

                            sanczessundefined 1 Reply Last reply Reply Quote 1
                            • sanczessundefined
                              sanczess @Phaedrux
                              last edited by

                              @phaedrux oh no, the rails are parallel. wonder where you could see something like that? only the x carriage is able to tilt by a small amount which is due to decent rigidity between rail and carriage in that case.
                              The issue really appears like to much compensation or the compensation value is inverted.

                              what is the advantage of a new thread?

                              1 Reply Last reply Reply Quote 0
                              • Col_Clucksundefined
                                Col_Clucks
                                last edited by

                                Just wanted to post an update to this solved problem. I went through all my files on this machine and could not find anything that might be causing issues. As a last ditch effort I grabbed a sheet of aluminum foil and flattened it out on the bed and ran a g29 command to generate a height map. the map looked a lot different than the one I had previously generated so I decided to try and do a test print with that height map. adjusted live z and it started to print perfectly.

                                I think the issue is the pinda 2 probe and the bed probe points with the MK 42 bed not triggering consistently. I am going to print for a while with the height map I made with the foil and will probably buy the MK 52 bed and a spring steel sheet to see if that gives more reliable leveling.

                                1 Reply Last reply Reply Quote 1
                                • Phaedruxundefined Phaedrux marked this topic as a question
                                • Phaedruxundefined Phaedrux has marked this topic as solved
                                • First post
                                  Last post
                                Unless otherwise noted, all forum content is licensed under CC-BY-SA