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

    Mesh Bed Compensation Issue – Front Closer Than Rear

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    13
    451
    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.
    • droftartsundefined
      droftarts administrators @cemu
      last edited by

      @cemu said in Mesh Bed Compensation Issue – Front Closer Than Rear:

      leadscrews at rear left, front middle and rear right

      Please first check that your leadscrew couplings are tight, if that's how the motor is connected to the leadscrew, and that particularly the front Z carriage is moving freely on it's bearing, ie not getting stuck 'up'.

      Do you use three-point bed levelling using the Klicky probe near the leadscrew positions before mesh levelling? Ideally you need to do this every time you turn the machine on, as the motors can jump a couple of full steps in either direction when powered up, so the bed will can be in a different position each time. See https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_auto_levelling

      Not a big issue (though it depends what version of RRF you are using), but the following Gcodes in your config.g can only take one parameter for X, Y, Z and U (E can take as many parameters as there are extruders):

      M350 X16 Y16:16 Z16:16:16 U16 E16:16 I1                                           ; configure microstepping with interpolation
      M92  X80 Y80:80 Z800:800:800 U80 E691.84:691.84              ; set steps per mm
       
      M566 X800.00 Y300.00:300.00  Z150.00:150.00:150.00 U800.00 E900.00:900.00         ; set maximum instantaneous speed changes (mm/min)
      M203 X50000.00 Y30000.00:30000.00 Z1600.00:1600.00:1600.00 U50000.00 E10000:10000 ; set maximum speeds (mm/min)
      M201 X1000.00 Y750.00:750.00 Z500.00:500.00:500.00 U10000.00 E5000:5000           ; set accelerations (mm/s^2)
       
      M906 X1800 Y1800:1800 Z1250:1250:1250 U1800 E900:900 I30                          ; set motor currents (mA) and motor idle factor in per cent
      

      Generally, only the first parameter is used (because all motors on a multiple-motor axis must be identical). So should be:

      M350 X16 Y16 Z16 U16 E16:16 I1                                           ; configure microstepping with interpolation
      M92  X80 Y80 Z800 U80 E691.84:691.84              ; set steps per mm
       
      M566 X800.00 Y300.00  Z150.00 U800.00 E900.00:900.00         ; set maximum instantaneous speed changes (mm/min)
      M203 X50000.00 Y30000.00 Z1600.00 U50000.00 E10000:10000 ; set maximum speeds (mm/min)
      M201 X1000.00 Y750.00 Z500.00 U10000.00 E5000:5000           ; set accelerations (mm/s^2)
       
      M906 X1800 Y1800 Z1250 U1800 E900:900 I30                          ; set motor currents (mA) and motor idle factor in per cent
      

      Please post what version of RRF you are using. Send M122 and post the response.

      Ian

      Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

      1 Reply Last reply Reply Quote 1
      • cemuundefined
        cemu @T3P3Tony
        last edited by cemu

        @T3P3Tony said in Mesh Bed Compensation Issue – Front Closer Than Rear:

        Please can you confirm what you have done. Also post your heighmap.csv (or the heighmap file you are using if not the default)

        Hi Tony,

        Thanks for your response! Below, I’m sharing my probe repeatability test results, the latest height map, homing files, and my updated config file.

        I have tried to fine-tune the x y z axis steps per mm by measuring with a micrometer to ensure accuracy, did not work thus went back to stock steps per/mm. I have tested both three-point independent Z motor bed leveling and standard spring leveling, but the issue persists in both cases. Additionally, I have tried tweaking the lead screw coordinates to compensate for any potential mechanical misalignment. The mechanical system has been carefully checked for any loose components or inconsistencies. I have also tested after allowing the machine to thermally stabilize for 30+ minutes, but the results remain the same.

        @droftarts said in Mesh Bed Compensation Issue – Front Closer Than Rear:

        Please first check that your leadscrew couplings are tight, if that's how the motor is connected to the leadscrew, and that particularly the front Z carriage is moving freely on it's bearing, ie not getting stuck 'up'.

        Do you use three-point bed levelling using the Klicky probe near the leadscrew positions before mesh levelling? Ideally you need to do this every time you turn the machine on, as the motors can jump a couple of full steps in either direction when powered up, so the bed will can be in a different position each time.

        Not a big issue (though it depends what version of RRF you are using), but the following Gcodes in your config.g can only take one parameter for X, Y, Z and U (E can take as many parameters as there are extruders):

        I have inspected the mechanical system, ensuring that the lead screw couplings are tight and that all Z carriages move freely without binding. I am using three-point independent Z motor leveling, the config has been adjusted according to your suggestion. However, after applying these updates, I am now getting the warning:

        "Warning: the height map has a substantial Z offset."

        Let me know if you need any additional details, and I appreciate any further suggestions!

        M122
        === Diagnostics ===
        RepRapFirmware for Duet 2 WiFi/Ethernet version 3.5.4 (2024-11-24 10:43:42) running on Duet WiFi 1.02 or later + DueX5
        Board ID: 0JD0M-9P6M2-NW4SJ-6J1F8-3SJ6M-1ASHK
        Used output buffers: 17 of 26 (22 max)
        === RTOS ===
        Static ram: 23488
        Dynamic ram: 74988 of which 0 recycled
        Never used RAM 12028, free system stack 98 words
        Tasks: NETWORK(2,nWait 6,15.2%,222) HEAT(3,nWait 5,0.1%,328) Move(4,nWait 5,0.0%,274) DUEX(5,nWait 5,0.0%,18) MAIN(1,running,84.5%,742) IDLE(0,ready,0.2%,29), total 100.0%
        Owned mutexes: WiFi(NETWORK)
        === Platform ===
        Last reset 00:20:17 ago, cause: software
        Last software reset at 2025-02-08 11:59, reason: User, Gcodes spinning, available RAM 15000, slot 0
        Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a
        Error status: 0x00
        Aux0 errors 0,0,0
        MCU temperature: min 27.4, current 29.3, max 29.9
        Supply voltage: min 23.9, current 24.1, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
        Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/520/520, gc cycles 0
        Events: 0 queued, 0 completed
        Driver 0: standstill, SG min 0
        Driver 1: standstill, SG min 0
        Driver 2: standstill, SG min 0
        Driver 3: standstill, SG min n/a
        Driver 4: standstill, SG min n/a
        Driver 5: standstill, SG min 0
        Driver 6: standstill, SG min 0
        Driver 7: standstill, SG min 0
        Driver 8: standstill, SG min 0
        Driver 9: standstill, SG min n/a
        Driver 10:
        Driver 11:
        Date/time: 2025-02-08 12:19:44
        Cache data hit count 4294967295
        Slowest loop: 195.87ms; fastest: 0.17ms
        I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
        === Storage ===
        Free file entries: 10
        SD card 0 detected, interface speed: 12.0MBytes/sec
        SD card longest read time 8.1ms, write time 99.4ms, max retries 0
        === Move ===
        DMs created 83, segments created 5, maxWait 137624ms, bed compensation in use: none, height map offset 0.000, max steps late 0, min interval 0, bad calcs 0, ebfmin 0.00, ebfmax 0.00
        no step interrupt scheduled
        Moves shaped first try 0, on retry 0, too short 0, wrong shape 0, maybepossible 0
        === DDARing 0 ===
        Scheduled moves 238, completed 238, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 10], CDDA state -1
        === Heat ===
        Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
        Heater 0 is on, I-accum = 0.2
        === GCodes ===
        Movement locks held by null
        HTTP is idle in state(s) 0
        Telnet is idle in state(s) 0
        File is idle in state(s) 0
        USB is idle in state(s) 0
        Aux is idle in state(s) 0
        Trigger is idle in state(s) 0
        Queue is idle in state(s) 0
        LCD is idle in state(s) 0
        Daemon is idle in state(s) 0
        Autopause is idle in state(s) 0
        Q0 segments left 0
        Code queue 0 is empty
        === DueX ===
        Read count 39, 1.92 reads/min
        === Network ===
        Slowest loop: 344.29ms; fastest: 0.00ms
        Responder states: HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
        HTTP sessions: 1 of 8
        === WiFi ===
        Interface state: active
        Module is connected to access point
        Failed messages: pending 0, notrdy 0, noresp 0
        Firmware version 2.2.0
        MAC address e0:98:06:a4:41:ab
        Module reset reason: Turned on by main processor, Vcc 3.42, flash size 4194304, free heap 31848
        WiFi IP address 100.100.10.51
        Signal strength -51dBm, channel 13, mode 802.11n, reconnections 0
        Clock register 00002002
        Socket states: 0 0 0 0 0 0 0 0
        
        
        ; Configuration file for Duet2 WiFi + DueX5 (firmware version 3.5.4)
        
        ; General preferences
        
        G90                                                                                 
        M83                                                                                  
        M550 P"X Pro"                                                                        ; set printer name
        M575 P1 S1 B57600                                                                    ; configure PanelDue 
        
        ;---------------------------------------------------------------------------------------------------------------------------------------------------------
        
        ; Network
        
        M551 P"2845"                                                                         ; set password
        M552 S1                                                                              ; enable network
        M586 P0 S1                                                                           ; enable HTTP
        M586 P1 S0                                                                           ; FTP
        M586 P2 S0                                                                           ; Telnet
        
        ;----------------------------------------------------------------------------------------------------------------------------------------------------------
        ; Drives
        
        M569 P0 S0                                                                           ; physical drive 0 goes forwards
        M569 P1 S1                                                                           ; physical drive 1 goes forwards
        M569 P2 S0                                                                           ; physical drive 2 goes forwards
        M569 P3 S0                                                                           ; physical drive 3 goes forwards
        M569 P4 S0                                                                           ; physical drive 4 goes forwards
        M569 P5 S1                                                                           ; physical drive 5 goes forwards
        M569 P6 S1                                                                           ; physical drive 6 goes forwards
        M569 P7 S1                                                                           ; physical drive 7 goes forwards
        M569 P8 S1                                                                           ; physical drive 8 goes forwards
        
        M584 X0 Y1:7 Z5:2:6 U8 E3:4                                                          ; set drive mapping
        M669 K0 X1:0:0:0 Y1:1:0:-1 Z0:0:1:0 U0:0:0:1
        M671 X-115:245:615 Y-30:375:-30 S5                                                   ; leadscrews at rear left, front middle and rear right
        
        M350 X16 Y16 Z16 U16 E16:16 I1                                                       ; configure microstepping with interpolation
        M92  X80 Y80 Z800 U80 E691.84:691.84                                                 ; set steps per mm
        M566 X800.00 Y300.00  Z150.00 U800.00 E900.00:900.00                                 ; set maximum instantaneous speed changes (mm/min)
        M203 X50000.00 Y30000.00 Z1600.00 U50000.00 E10000:10000                             ; set maximum speeds (mm/min)
        M201 X1000.00 Y750.00 Z500.00 U10000.00 E5000:5000                                   ; set accelerations (mm/s^2)
        
        M906 X1800 Y1800 Z1250 U1800 E900:900 I30                                            ; set motor currents (mA) and motor idle factor in per cent
        M84  S10                                                                             ; Set idle timeout
        
        M911 S21.0 R23.0 P"M913 Z0 G91 M83 G1 X5 E-5 F1000"
        
        M950 S8 C"duex.pwm2"
        
        ;-----------------------------------------------------------------------------------------------------------------------------------------------------------
        ; Axis Limits
        
        M208 S1 X-64.4 Y-5 U0 Z-1                                                            ; set axis minima
        M208 S0 X500 Y315 U564.98 Z400                                                       ; set axis maxima
        
        ;-----------------------------------------------------------------------------------------------------------------------------------------------------------
        ; Endstops
        
        ;Sağ ön Z ye bağlı e0stop, Sol ön e1stop, arka e2stop
        M574 X1 S1  P"xstop"                                                                 ; configure switch-type (e.g. microswitch) endstop for high end on X via pin ^xstop
        M574 Y2 S1  P"ystop+duex.e3stop"                                                     ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ^ystop
        M574 Z2 S1	P"e0stop+zstop+e1stop"                                                   ; configure active-high endstops for low end on Z via pins zstop and e1stop
        M574 U2 S1  P"duex.e2stop"                                                           ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin ^zstop
        
        ;----------------------------------------------------------------------------------------------------------------------------------------------------------------
        ; Z-Probe
        
        
        M558 P8 R0.5 C"zprobe.in" H2 F400 T8000 A4 X0 Y0 Z5                                  ; set Z probe type to effector and the dive height + speeds
        G31 P50 X0 Y3 Z17.55                                                                 ; set Z probe trigger value, offset and trigger height
        M557 X30:470 Y30:270 S30                                                             ; probe from X=20 to 530, Y=0 to 270mm with a mesh spacing of 30mm
        
        ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        ; Heaters
        M308 S0 P"bedtemp" Y"thermistor" T100000 B4138   A"Bed_HEAT"                   
        M950 H0 C"bedheat" T0                                                               
        M307 H0 B0 R1.184 C132.5 D3.43 S1.00 V24.2                                       
        M140 H0                                                                           
        M143 H0 S120                                                                        
        
        M308 S1 P"e1temp" Y"pt1000" pt1000 B4138  A"X_HEAT"                                 
        M950 H1 C"e1heat" T1                                                                 
        M307 H1 R3.845 K0.473:0.000 D3.95 E1.35 S1.00 B0 V24.1                     
        M143 H1 S301                                                                       
        
        M308 S2 P"e0temp" Y"pt1000" pt1000 B4138  A"U_HEAT"                               
        M950 H2 C"e0heat" T2                                                               
        M307 H2 R3.845 K0.473:0.000 D3.95 E1.35 S1.00 B0 V24.1                               
        M143 H2 S301                                                                      
        
        ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        ; Fans
        M950 F2 C"fan0" Q500                                                            
        M106 P2 S1 H1 T40                                                                   
        
        M950 F3 C"fan1" Q500                                                                
        M106 P3 S1 H2 T40                                                                
        
        M950 F0 C"fan2" Q500                                                                
        M106 P0 S0 H-1 C"X-PC"                                                          
        
        M950 F1 C"duex.fan3" Q500                                                        
        M106 P1 S0 H-1 C"U-PC"                                                          
        
        M950 F4 C"duex.e4heat" Q500                                                      
        M106 P4 S0 H-1 C"Chamber"                                                         
        
        M950 F5 C"duex.e5heat" Q500                                                          
        M106 P5 S0 H-1 C"Static"                                                            
        
        M950 F6 C"duex.e6heat" Q500                                                          
        M106 P6 S0 H-1 C"Under Bed"                                                          
        
        
        ;------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        ; Tools
        
        M563 P0 S"X" D0 H1 F0                                                               
        G10 P0 X0 Y0 Z0 U0                                                                 
        G10 P0 R0 S0                                                                       
        
        M563 P1 S"U" D1 H2 F1 X3                                                            
        G10 P1 Y0.4 U0 Z-0.05 S0 R0                                                         
        G10 P1 R0 S0                                                                        
        
        ; Create a tool that prints 2 copies of the object using both carriages
        M563 P2 S"XU-Copy" D0:1 H1:2 X0:3 F0:1                                             
        G10 P2 X0 Y0 U-250 S0 R0                                                             
        M567 P2 E1:1                                                                         
        M568 P2 S1                                                                           
        
        M563 P3 D0:1 H1:2 X0:3 F0:1 S"XU-Mirror"                                            
        G10 P3 X0 Y0 U-500 S0 R0                                                            
        M567 P3 E1:1                                                                         
        M568 P3 S1                                                                          
        
        
        
        ; bed.g
        ; called to perform automatic bed compensation via G32
        
        G90 								
        G29 S2 								
        M561 								
        T0 									
        
        G28 								
        
        
        G1 X372 F6000 						; Go to Klick pick up point
        M280 P8 S20 						; Opes servo arm
        G4 P1000
        M280 P8 S20							; Opes servo arm
        G1 Y260 F5000 						; Pick Up Klick
        M280 P8 S130 						; Close servo arm
        
        M400
        
        
        G1 X250 Y150 Z120 F5500 					; Go to bed center
        G30 								; Probe onece for Z=0
        
        G30 P0 X250 Y270 Z-99999 			; probe near a leadscrew
        G30 P1 X8 Y0 Z-99999 				; probe near a leadscrew
        G30 P2 X483 Y0 Z-99999 S3 			; probe near a leadscrew and calibrate 3 motors
        
        G30 P0 X250 Y270 Z-99999 			; probe near a leadscrew
        G30 P1 X8 Y0 Z-99999 				; probe near a leadscrew
        G30 P2 X483 Y0 Z-99999 S3 			; probe near a leadscrew and calibrate 3 motors
        
        G1 X250 Y150 F6000 					; Go to bed center
        G30 								; Probe onece for Z=0
        
        G29 					     		
        
        G1 Z120 F5000 						; Lower Bed
        
        G1 X372 Y260 F5000 					; Go to Klick pick up point
        M280 P8 S22 						; Opes servo arm
        G1 X372 Y312 F2000 					; Drop Klick
        G1 X322 Y312 F2000 					; Remove Klick
        M280 P8 S130 						; Close servo arm
        
        M400
        
        
        
        ; homez.g
        ; called to home the Z axis
        
        
        M400
        
        M400 G91        
        
        G1 H1 Z800 F15000 
        
        G1 H2 Z-5 F7500  
        
        G1 H1 Z500 F4500 
        
        G90               
        
        M400
        
        
        ;homeall.g
        ; called to home all axes
        ;---------------------------------------------------------------------------------------------------
        
        M400
        
        M400 G91						
        
        G1 H1 X-505 F4000 				
        
        G1 H2 X5 F9500 					
        
        G1 H1 X-320.5 F4000 			
        
        G90 							
        M400
        
        ;---------------------------------------------------------------------------------------------------
        
        M400 
        
        G91						
        G1 H1 U505 F4000 				
        
        G1 H2 U-5 F9500 				
        
        G1 H1 U30 F4000 				
        
        G90 							
        
        M400
        
        ;---------------------------------------------------------------------------------------------------
        
        G1 X-40 U547
        
        ;---------------------------------------------------------------------------------------------------
        
        M400 
        
        G91						
        
        G1 H1 Y305 F4000  				
        
        G1 H2 Y-5 F8000   				
        
        G1 H1 Y305 F3500			    
        
        G90 							
        M400
        
        ;---------------------------------------------------------------------------------------------------
        
        G1 Y305
        
        ;---------------------------------------------------------------------------------------------------
        
        M400
        
        G91						
        
        G1 H1 X-505 F4000 				
        
        G1 H2 X5 F9500 					
        
        G1 H1 X-320.5 F4000 			
        
        G90 						
        M400
        
        ;---------------------------------------------------------------------------------------------------
        
        M400 
        
        G91						
        
        G4 P200					   
        
        G1 H1 U505 F4000 				
        
        G1 H2 U-5 F9500 				
        
        G1 H1 U30 F4000 				
        
        G90 							
        
        M400
        
        ;---------------------------------------------------------------------------------------------------
        
        M400
        
        M400 G91						
        
        G1 H1 Z800 F15000 				
        
        G1 H2 Z-5 F7500 				
        
        G1 H1 Z500 F4500 				
        
        G90 							
        
        M400
        
        RepRapFirmware height map file v2 generated at 2025-02-07 21:50	 min error -0.098	 max error 0.176	 mean 0.056	 deviation 0.055											
        axis0	axis1	min0	max0	min1	max1	radius	spacing0	spacing1	num0	num1					
        X	Y	2.75	497.67	1.83	295.96	-1	32	32	16	10					
        0.022	0.017	0.051	0.052	0.046	0.066	0.128	0.091	0.171	0.124	0.106	0.107	0.134	0.121	0.114	0.078
        0.005	0.027	0.087	0.056	0.081	0.072	0.119	0.134	0.13	0.119	0.069	0.11	0.084	0.076	0.077	0.064
        -0.011	0.012	0.041	0.055	0.066	0.084	0.136	0.124	0.138	0.109	0.098	0.143	0.098	0.109	0.076	0.068
        0.004	0.022	0.055	0.082	0.059	0.079	0.132	0.107	0.176	0.083	0.103	0.106	0.099	0.07	0.049	0.005
        -0.029	-0.001	0.021	0.036	0.092	0.044	0.093	0.124	0.126	0.088	0.075	0.057	0.07	0.068	0.007	-0.081
        -0.068	-0.028	-0.001	0.031	0.055	0.052	0.062	0.068	0.097	0.08	0.064	0.039	0.051	0.036	0.017	-0.066
        -0.071	-0.026	-0.018	0.007	0.007	0.008	0.077	0.112	0.114	0.063	0.03	0.015	0.058	0.046	0.014	-0.041
        -0.068	0.049	0.117	0.047	-0.005	0	0.086	0.105	0.129	0.089	0.051	0.012	0.048	0.049	0.046	-0.036
        -0.098	-0.033	-0.01	-0.028	0.022	-0.001	0.052	0.101	0.112	0.077	0.077	0.108	0.026	0.037	0.054	-0.022
        -0.053	-0.055	-0.041	-0.015	0.001	0.023	0.069	0.111	0.126	0.094	0.119	0.095	0.116	0.092	0.116	0.041
        

        probe results.png

        Screenshot 2025-02-08 131457.png

        gloomyandyundefined droftartsundefined 2 Replies Last reply Reply Quote 0
        • gloomyandyundefined
          gloomyandy @cemu
          last edited by

          @cemu Can you post some pictures of your printer showing the print head at the "front" and "rear" of the bed?

          cemuundefined 1 Reply Last reply Reply Quote 0
          • cemuundefined
            cemu @gloomyandy
            last edited by cemu

            @gloomyandy Of course

            )WhatsApp Image 2025-02-08 at 19.54.16_9e905358.jpg WhatsApp Image 2025-02-08 at 19.54.16_d8ac8f7d.jpg WhatsApp Image 2025-02-08 at 19.54.34_dac13611.jpg

            1 Reply Last reply Reply Quote 0
            • droftartsundefined
              droftarts administrators @cemu
              last edited by

              @cemu said in Mesh Bed Compensation Issue – Front Closer Than Rear:

              However, after applying these updates, I am now getting the warning:

              "Warning: the height map has a substantial Z offset."

              At what point do you get this message? Usually you get this when you load a height map (G29 S1) without homing Z, or the height map was created with a large Z offset.

              Your M122 reports that no bed compensation is in use ("bed comp in use: none, height map offset 0.000"):

              === Move ===
              Segments created 0, maxWait 0ms, bed comp in use: none, height map offset 0.000, hiccups added 0/0 (0.00/0.00ms), max steps late 0, ebfmin 0.00, ebfmax 0.00
              

              Though I don't know at what point you sent this M122. Check that your print file isn't cancelling bed mesh.

              Ian

              Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

              cemuundefined 1 Reply Last reply Reply Quote 0
              • cemuundefined
                cemu @droftarts
                last edited by cemu

                @droftarts Hi Ian,

                After applying the suggested updates, I created a new mesh from scratch, and the warning appeared immediately after the mesh was generated. I set the Z=0 datum at the center of the bed and ensured that a probe point was present at the center during mesh generation. However, the center probe point came out 0.25mm higher than expected, and the entire bed appeared to be above the 0 reference plane.

                Right now, I’ve prepared a fresh config file from scratch, with triple screw adjustment disabled and even without activating the servo arm. However, I’m still seeing the same issue.

                I also experimented with some slicer tweaks—setting the first layer height to 0.3mm and layer width to 0.5mm—to allow for a bit more error tolerance and improve adhesion. The squares are printing better, and while the front is still closer, the back is at least adhering now.

                A full-layer test print is currently in progress, and once it’s finished, I’ll share photos of the results along with my latest home and config files.

                Also, I took the M122 report right after powering on the printer. During printing, I monitored the Z motors, and they are actively moving. If I disable mesh compensation during printing, the results get significantly worse.

                Thanks for your help!!

                droftartsundefined 1 Reply Last reply Reply Quote 0
                • droftartsundefined
                  droftarts administrators @cemu
                  last edited by

                  @cemu I generally find bed mesh height mapping is more reliable if I home Z before AND after either making the bed mesh, or loading a bed mesh. I can't quite work out if that's what you're doing! If you're finding the nozzle is too far away from the bed and you are having to baby-step, you may want to adjust the Z probe Z offset (G31 Z... in config.g).

                  You can also do adaptive bed mesh, ie a bed mesh only where you are going to print, before each print. This was posted recently, and there are other examples on the forum: https://forum.duet3d.com/topic/37423/adaptive-mesh-probing-script-for-prusaslicer-superslicer

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                  cemuundefined 2 Replies Last reply Reply Quote 0
                  • cemuundefined
                    cemu @droftarts
                    last edited by

                    @droftarts Hi Ian,

                    In normal operation, I do use adaptive mesh, and the mesh grid is automatically generated based on the print area defined by the slicer. My bed.g file follows this sequence:

                    Homing all axes
                    Setting Z=0 datum
                    Lead screw adjustment
                    Setting Z=0 datum again
                    Running G29 for mesh compensation
                    However, I wasn't resetting Z=0 after generating the mesh, so I'll try that in my next test.

                    I haven’t needed to apply baby stepping—the Z=0 datum point prints well. However, at that point, the mesh consistently shows a 0.2mm offset above the 0 plane. The pattern is always the same: the front is closer, and the back is farther. It feels like if the rear stepper moved slightly higher, the issue would resolve itself without modifying the mesh.

                    I’m sharing the latest config files, home files, and print results below. The slicer tweaks helped—the first layers initially looked great, but once removed from the bed, I noticed that on the rear corners, the solid fill wasn’t fully connecting.

                    Do you have any other ideas to try?

                    Thanks!

                    config.g
                    bed.g
                    homeall.g
                    homeu.g
                    homex.g
                    homey.g
                    homez.g
                    heightmap.csv

                    WhatsApp Image 2025-02-10 at 16.55.25_66388f9c.jpg WhatsApp Image 2025-02-10 at 16.55.25_584d4149.jpg

                    1 Reply Last reply Reply Quote 0
                    • cemuundefined
                      cemu @droftarts
                      last edited by

                      @droftarts

                      Hi Ian,

                      I tested taking Z=0 datum both before and after mesh generation, and when I do this, I end up needing to use baby stepping—I have to lower Z by at least 0.20mm for proper first-layer adhesion.

                      If I take Z=0 datum, generate the mesh, and then start printing immediately, a Z offset of 17.7 works well for the middle of the bed, but I still see the same issue where the front is too close and the back is too far.

                      However, if I take Z=0 datum, , then reload the same mesh with G29 S1 and take Z=0 again, the Z offset shifts unexpectedly.

                      Let me know if you have any thoughts on this!

                      Thanks!

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

                        Can you test measuring the z probe trigger height at different locations around the bed?

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • droftartsundefined
                          droftarts administrators @cemu
                          last edited by

                          @cemu Here's the image of your bedmesh (if you have the 'Height Map' plugin enabled you can see this for yourself):

                          3df622a6-55e1-4762-b72b-81964f106279-image.png

                          This shows a pronounced bowing of the bed, with the middle being around 0.4mm higher than the edge, and appears to get a little worse front-to-back. I think the first thing to do is to determine if it's the bed that is not flat (put a straight edge across it), or if the X axis gantry is bowed - a possibility as the X axis is long. If both appear straight, the distortion is being introduced by the X carriage sagging along the X axis travel, rotating around the X axis. This may lead to a mis-measurement of the bed from the nozzle, because the probe is offset from the nozzle. Usually we see this if the probe is offset in the Y direction, like the following image, but it could also apply with a probe in the Z direction:

                          5371a9a4-2cfd-4620-a8a3-aa4e18d814fe-image.png

                          If the carriage is rotating around the X axis, you might also notice that a line extruded along the X axis exhibits a slight bow. Possible causes for this that I can think of are: loose linear carriage on the linear rail, off-centre weight distribution of X carriage, wires/filament feed pulling on the carriage, belts tilting the carriage.

                          You can create a mesh using the actual nozzle, by setting the probe type to 0 (M558 P0, see https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_connecting#mode-0). This is a bit laborious, so don't do a mesh with too many points! But it may show up a difference between what the probe is measuring vs the Z position of the nozzle.

                          Ian

                          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

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