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

    Mesh Bed Leveling does not work (Core XY with 2 z-axis motors)

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    5
    31
    1.7k
    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.
    • buckkerundefined
      buckker
      last edited by

      Hi

      I noticed these days, that my new built Core XY printer does not compensate the z-axis error for the first layer (with reprap 3.3). I did a test where I could clearly see that the printer doesn't do anything on the z-axis. I use 2 independent z-axis motors. Not sure if there is a bug in the reprap firmware. On my second printer with 1 z-axis motor I couldn't see any issue here. I also checked if the motors goes to the correct driver.

      This is my start code:

      M140 S[first_layer_bed_temperature]; set bed temp
      M190 S[first_layer_bed_temperature]; wait for bed temp
      G32
      M104 S[first_layer_temperature]; set extruder temp
      G29;
      G1 Z30 F5000;
      G1 X10 Y0 F30000;
      M109 S[first_layer_temperature]; wait for extruder temp
      G92 E0 ; reset extrusion distance
      G1 Z10 F1000;
      G1 X50 Z1 F1000;
      G1 X100 Z0.4 F1000 E15;
      G1 X200 F1000 E22;
      
      

      My config file:

      
      ; Drives
      M569 P0 S0                                             ; physical drive 0 goes forwards
      M569 P1 S0                                             ; physical drive 1 goes backwards
      M569 P2 S1                                             ; physical drive 2 goes forwards
      M569 P3 S1                                             ; physical drive 3 goes backwards
      M569 P4 S1                                             ; physical drive 4 goes backwards
      M584 X1 Y0 Z2:4 E3                                     ; set drive mapping
      M671 X-55:465 Y0:0 S1.5 			       ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
      M208 X10:390 Y0:400 				       ; X carriage moves from -5 to 205, Y bed goes from 0 to 200
      M350 X16 Y16 Z16 E16:16 I1                             ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z320.00:320.00 E645.00               ; set steps per mm
      M566 X600.00 Y600.00 Z200.00:200.00 E300.00            ; set maximum instantaneous speed changes (mm/min)
      M203 X30000.00 Y30000.00 Z5000.00:5000.00 E3600.00     ; set maximum speeds (mm/min)
      M201 X5000.00 Y5000.00 Z250.00:250.00 E600.00          ; set accelerations (mm/s^2)
      M204 P1500 T5000				       ; set printing and travel accelerations
      M593 P"daa" F40  				       ; use DAA to cancel ringing at 40.5Hz 
      M906 X1500 Y1500 Z1200:1200 E700 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 X400 Y400 Z406 S0                                 ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"!xstop"                                   ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
      M574 Y1 S1 P"!ystop"                                   ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop
      M574 Z2 S2                                             ; configure Z-probe endstop for high end on Z
      
      ; Z-Probe
      M950 S0 C"exp.heater3"                                 ; create servo pin 0 for BLTouch
      M558 P9 C"^zprobe.in" H5 F200 T30000                   ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X0 Y35 Z1.85                                  ; set Z probe trigger value, offset and trigger height
      M557 X50:350 Y50:350 S50                               ; define mesh grid
      
      ; Heaters
      M308 S0 P"bedtemp" Y"thermistor" T100000 B3950         ; 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 B0 R0.344 C669.7 D2.52 S1.00 V24.0             ; 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"e0temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp
      M950 H1 C"e0heat" T1                                   ; create nozzle heater output on e0heat and map it to sensor 1
      M307 H1 B0 R2.190 C140.1:137.8 D6.98 S1.00 V24.0       ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S280                                           ; set temperature limit for heater 1 to 280C
      
      ; Fans
      M950 F0 C"fan0" Q500                                   ; create fan 0 on pin fan0 and set its frequency
      M106 P0 S0 I0 H-1                                      ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"fan1"   Q100                                 ; create fan 1 on pin fan1 and set its frequency
      M106 P1 S230 H1 T60                                    ; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 S"Dragon Hotend" D0 H1 F0                      ; define tool 0
      G10 P0 X0 Y0 Z0                                        ; set tool 0 axis offsets
      G10 P0 R0 S0                                           ; set initial tool 0 active and standby temperatures to 0C
      
      ; Custom settings are not defined 
      

      I'm using G32 before G29? To my knowledge this should work.

      Many thanks in advance.

      Best regards

      Michael

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

        @buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):

        Z320.00:320.00

        In your config you have multple values for the Z axis. Remove the second values. Only the extruders need independant values.

        Can you post your homeall and bed.g?
        Do you also have a mesh.g?

        Can you also send M122 and M98 P"config.g" and post the results?

        Z-Bot CoreXY Build | Thingiverse Profile

        buckkerundefined 1 Reply Last reply Reply Quote 0
        • buckkerundefined
          buckker @Phaedrux
          last edited by

          @phaedrux

          Thanks for your help

          I removed the second z value.

          Homeall.g

          ; homeall.g
          ; called to home all axes
          ;
          ; generated by RepRapFirmware Configuration Tool v3.3.5 on Mon Nov 01 2021 20:45:36 GMT+0100 (Mitteleuropäische Normalzeit)
          G91                     ; relative positioning
          G1 H1 X-405 Y-405 F3000 ; move quickly to X or Y endstop and stop there (first pass)
          G1 H1 X-405             ; home X axis
          G1 H1 Y-405             ; home Y axis
          G1 X5 Y5 F24000         ; go back a few mm
          G1 H1 X-405 F360        ; move slowly to X axis endstop once more (second pass)
          G1 H1 Y-405             ; then move slowly to Y axis endstop
          G90                     ; absolute positioning
          G1 X200 Y165 F24000     ; go to first bed probe point and home Z
          G30                     ; home Z by probing the bed
          
          ; Uncomment the following lines to lift Z after probing
          ;G91                    ; relative positioning
          ;G1 Z5 F400             ; lift Z relative to current position
          ;G90                    ; absolute positioning
          

          bed.g

          G28 ; home
          M401 ; deploy Z probe (omit if using bltouch)
          G30 P0 X10 Y200 Z-99999 ; probe near a leadscrew, half way along Y axis
          G30 P1 X390 Y200 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors
          M402 ; retract probe (omit if using bltouch)
          
          
          
          ; bed.g
          ; called to perform automatic bed compensation via G32
          ;
          ; generated by RepRapFirmware Configuration Tool v3.3.5 on Mon Nov 01 2021 20:45:36 GMT+0100 (Mitteleuropäische Normalzeit)
          ;M561 ; clear any bed transform
          ;G29  ; probe the bed and enable compensation
          

          M122:

          M122
          === Diagnostics ===
          RepRapFirmware for Duet 2 WiFi/Ethernet version 3.3 (2021-06-15 21:44:54) running on Duet WiFi 1.02 or later
          Board ID: 08DLM-996RU-N85S4-7JKDL-3S06S-18BMN
          Used output buffers: 3 of 24 (16 max)
          === RTOS ===
          Static ram: 23876
          Dynamic ram: 75052 of which 0 recycled
          Never used RAM 15488, free system stack 180 words
          Tasks: NETWORK(ready,13.6%,247) HEAT(delaying,0.0%,314) Move(notifyWait,0.1%,364) MAIN(running,85.5%,445) IDLE(ready,0.8%,29), total 100.0%
          Owned mutexes:
          === Platform ===
          Last reset 00:02:02 ago, cause: software
          Last software reset at 2021-12-23 07:58, reason: User, GCodes spinning, available RAM 15488, slot 2
          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
          Step timer max interval 0
          MCU temperature: min 16.2, current 18.6, max 18.8
          Supply voltage: min 23.9, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes
          Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
          Driver 0: position 0, standstill, SG min/max not available
          Driver 1: position 0, standstill, SG min/max not available
          Driver 2: position 0, standstill, SG min/max not available
          Driver 3: position 0, standstill, SG min/max not available
          Driver 4: position 0, standstill, SG min/max not available
          Driver 5: position 0
          Driver 6: position 0
          Driver 7: position 0
          Driver 8: position 0
          Driver 9: position 0
          Driver 10: position 0
          Driver 11: position 0
          Date/time: 2021-12-23 08:00:34
          Cache data hit count 4294967295
          Slowest loop: 8.59ms; 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: 20.0MBytes/sec
          SD card longest read time 3.3ms, write time 2.1ms, max retries 0
          === Move ===
          DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000
          === MainDDARing ===
          Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === AuxDDARing ===
          Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === Heat ===
          Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
          === GCodes ===
          Segments left: 0
          Movement lock 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
          Code queue is empty.
          === Network ===
          Slowest loop: 21.19ms; fastest: 0.00ms
          Responder states: HTTP(2) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions
          HTTP sessions: 1 of 8
          - WiFi -
          Network state is active
          WiFi module is connected to access point 
          Failed messages: pending 0, notready 0, noresp 0
          WiFi firmware version 1.23
          WiFi MAC address 50:02:91:de:7c:41
          WiFi Vcc 3.43, reset reason Turned on by main processor
          WiFi flash size 4194304, free heap 24200
          WiFi IP address 192.168.0.29
          WiFi signal strength -74dBm, mode none, reconnections 0, sleep mode modem
          Clock register ffffffff
          Socket states: 0 0 0 0 0 0 0 0
          

          M98:

          M98 P"config.g"
          HTTP is enabled on port 80
          FTP is disabled
          TELNET is disabled
          Error: in file macro line 29 column 22: M350: array too long, max length = 1
          

          I find the error in the config.g : M350 X16 Y16 Z16 E16:16 I1 I corrected it to M350 X16 Y16 Z16 E16 I1

          JoergS5undefined 1 Reply Last reply Reply Quote 0
          • rjenkinsgbundefined
            rjenkinsgb
            last edited by

            You have the leadscrew positions defined at Y0 in config, but you probe at Y200 in bed.g

            Something is wrong between those two - the Y coordinates should match?

            I think the probe points should be dead in line with the leadscrews and as close as possible to them, for best levelling accuracy.

            Robert J.

            Printers: Overlord pro, Kossel XL+ with Duet 6HC and "Frankentron", TronXY X5SA Pro converted to E3D toolchange with Duet 6HC and 1LC toolboards.

            buckkerundefined 1 Reply Last reply Reply Quote 0
            • buckkerundefined
              buckker @rjenkinsgb
              last edited by

              @rjenkinsgb

              Yes, you're right. of course the values should match. I changed it to Y200 in the config.g. Thanks!

              1 Reply Last reply Reply Quote 0
              • JoergS5undefined
                JoergS5 @buckker
                last edited by JoergS5

                @buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):

                G28 ; home M401 ; deploy Z probe (omit if using bltouch) G30 P0 X10 Y200 Z-99999 ; probe near a leadscrew, half way along Y axis G30 P1 X390 Y200 Z-99999 S2 ; probe near a leadscrew and calibrate 2 motors M402 ; retract probe (omit if using bltouch)

                there is a comment in bed.g to remove M401 and M402 lines if you use the BLTouch and according to config.g you're using BLTouch, so I would remove the lines. BLTouch deploys and retracts himself by running deployprobe.g and retractprobe.g (please check them).

                If you don't have retractprobe.g and deployprobe.g, the content is described in https://duet3d.dozuki.com/Wiki/Connecting_a_Z_probe#Section_BLTouch (one M280 line each).

                buckkerundefined 1 Reply Last reply Reply Quote 0
                • buckkerundefined
                  buckker @JoergS5
                  last edited by

                  @joergs5

                  I removed the unnecessary commands. But it don't make any difference.

                  The probing works normal. I can also see the height map. But the printer does not use the height map during the print...

                  JoergS5undefined 1 Reply Last reply Reply Quote 0
                  • JoergS5undefined
                    JoergS5 @buckker
                    last edited by JoergS5

                    @buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):

                    @joergs5

                    I removed the unnecessary commands. But it don't make any difference.

                    The probing works normal. I can also see the height map. But the printer does not use the height map during the print...

                    while probing/mesh compensation printing after probing, and you make M122, it is reported whether mesh compensation is active:

                    === Move ===
                    DMs created 83, maxWait 0ms, bed compensation in use: none, comp offset 0.000

                    Did you make your M122 while you probed and if not, can you please check it?

                    I would call a T0 to select the tool, then G29. => you're right @rjenkinsgb G29 S0 (although G29 withoug mesh.g runs G29 S0 automatically)

                    1 Reply Last reply Reply Quote 0
                    • rjenkinsgbundefined
                      rjenkinsgb
                      last edited by

                      Try changing G29 in your start code to either G29 S0 (create new heightmap) or G29 S2 (load existing heightmap)

                      I must admit, the mesh levelling is the one problem I'm still trying to work through in my dual Z drive CoreXY toolchanging machine - though that's a probe problem to do with creating it accurately rather than it working or not.

                      Robert J.

                      Printers: Overlord pro, Kossel XL+ with Duet 6HC and "Frankentron", TronXY X5SA Pro converted to E3D toolchange with Duet 6HC and 1LC toolboards.

                      buckkerundefined 1 Reply Last reply Reply Quote 0
                      • buckkerundefined
                        buckker @rjenkinsgb
                        last edited by

                        @rjenkinsgb

                        I tried this several minutes ago, but It doesn't help:

                        ; generated by PrusaSlicer 2.4.0-beta1+win64 on 2021-12-22 at 12:54:39 UTC
                        
                        ; 
                        
                        ; external perimeters extrusion width = 0.45mm
                        ; perimeters extrusion width = 0.45mm
                        ; infill extrusion width = 0.45mm
                        ; solid infill extrusion width = 0.45mm
                        ; top infill extrusion width = 0.40mm
                        ; first layer extrusion width = 0.45mm
                        
                        M107
                        ;TYPE:Custom
                        G29 S2;
                        M140 S55; set bed temp
                        M190 S55; wait for bed temp
                        G32
                        M104 S220; set extruder temp
                        G29 S0;
                        G1 Z30 F5000;
                        G1 X10 Y0 F30000;
                        M109 S220; wait for extruder temp
                        G29 S1;
                        G92 E0 ; reset extrusion distance
                        G1 Z10 F1000;
                        G1 X50 Z1 F1000;
                        G1 X100 Z0.4 F1000 E15;
                        G1 X200 F1000 E22;
                        
                        
                        
                        G21 ; set units to millimeters
                        G90 ; use absolute coordinates
                        M82 ; use absolute distances for extrusion
                        G92 E0
                        M572 D0 S0.05;
                        M107
                        ;LAYER_CHANGE
                        ;Z:0.2
                        ;HEIGHT:0.2
                        G1 E-1.2 F3600
                        G92 E0
                        G1 Z.2 F30000
                        G1 Z.4
                        G1 X10.225 Y10.225
                        G1 Z.2
                        G1 E1.2 F3600
                        ;TYPE:External perimeter
                        ;WIDTH:0.45
                        G1 F2100
                        G1 X389.775 Y10.225 E13.53342
                        G1 X389.775 Y389.775 E25.86685
                        G1 X10.225 Y389.775 E38.20027
                        G1 X10.225 Y10.285 E50.53174
                        G1 X10.975 Y10.975 F30000
                        G1 F2100
                        G1 X389.025 Y10.975 E62.81642
                        

                        Clear height map a the begin, probing and at the loading it..

                        JoergS5undefined 1 Reply Last reply Reply Quote 0
                        • JoergS5undefined
                          JoergS5 @buckker
                          last edited by JoergS5

                          @buckker you have nowhere selected the tool and the slicer doesn't select it too, I would add T0 to the end of config.g

                          I would then try a simple G29 S0 after rebooting and homing, then checking mesh probing status by making M122 while probing.

                          buckkerundefined 1 Reply Last reply Reply Quote 0
                          • buckkerundefined
                            buckker @JoergS5
                            last edited by buckker

                            @joergs5

                            I checked the following things:

                            M122 during probing:

                            DMs created 83, maxWait 9ms, bed compensation in use: none, comp offset 0.000
                            

                            M122 during printing:

                            DMs created 83, maxWait 18ms, bed compensation in use: mesh, comp offset 0.000
                            

                            this is the tool section from the config..g:

                            ; Tools
                            M563 P0 S"Dragon Hotend" 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
                            
                            

                            I add a T0 to my g-code file:

                            ; generated by PrusaSlicer 2.4.0-beta1+win64 on 2021-12-22 at 12:54:39 UTC
                            
                            ; 
                            
                            ; external perimeters extrusion width = 0.45mm
                            ; perimeters extrusion width = 0.45mm
                            ; infill extrusion width = 0.45mm
                            ; solid infill extrusion width = 0.45mm
                            ; top infill extrusion width = 0.40mm
                            ; first layer extrusion width = 0.45mm
                            
                            M107
                            ;TYPE:Custom
                            T0;
                            M140 S55; set bed temp
                            M190 S55; wait for bed temp
                            G32
                            M104 S220; set extruder temp
                            G29 S0;
                            G1 Z30 F5000;
                            G1 X10 Y0 F30000;
                            M109 S220; wait for extruder temp
                            G92 E0 ; reset extrusion distance
                            G1 Z10 F1000;
                            G1 X50 Z1 F1000;
                            G1 X100 Z0.4 F1000 E15;
                            G1 X200 F1000 E22;
                            
                            
                            
                            G21 ; set units to millimeters
                            G90 ; use absolute coordinates
                            M82 ; use absolute distances for extrusion
                            G92 E0
                            M572 D0 S0.05;
                            

                            I will modify the gcode to your ideas.

                            Actually I can't see any z-axis compensating during the print....

                            JoergS5undefined 1 Reply Last reply Reply Quote 0
                            • JoergS5undefined
                              JoergS5 @buckker
                              last edited by JoergS5

                              @buckker so M122 says that mesh compensation is active.

                              I can think of the following possibilites

                              • the bed is plain enough so you don't see compensation
                              • the probe-nozzle offset is wrong, so the compensation is at the wrong place
                              • printing outside mesh probing M557 X50:350 Y50:350 S50

                              The offset is set at G31 X, Y, Z values. Your values are X0 Y35 Z1.85, which means the BLTouch should be at the same X position and 35 mm behind the nozzle, when you look at the printer and X plus is to the right and Y plus is to the back.

                              For the plain bed, please check the heightmap.csv, it is viewable in the DWC (Duet web control browser application).

                              The mesh was measured starting at (50,50), you may look at the wrong points,

                              buckkerundefined 1 Reply Last reply Reply Quote 0
                              • buckkerundefined
                                buckker @JoergS5
                                last edited by buckker

                                @joergs5

                                My conclusion after a few tests....:

                                • the printer compensates now some z-axis deviation. I put a dial gauge on the heat bed. I could see, that the z-axis moves during the printing. But the nozzle touches the bed at one corner. At the other corner the first layer is somewhere in the air... It seems that It compensates in the wrong direction... How is this possible? G32 works fine, it compensates in the correct direction.

                                The BL Touch is placed behind the nozzle, only y-axis offset:
                                IMG_20211223_104549.jpg

                                some other pictures:
                                IMG_20211223_105000.jpg IMG_20211223_103948.jpg

                                Heightmap:
                                heightmap.jpg

                                @joergs5 said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):

                                printing outside mesh probing M557 X50:350 Y50:350 S50

                                Whats actually happens if I print outside the probing area?

                                JoergS5undefined 4 Replies Last reply Reply Quote 0
                                • JoergS5undefined
                                  JoergS5 @buckker
                                  last edited by JoergS5

                                  @buckker plaese see my last comment from previous post, I added the possibility that the mesh measurement starts at 50,50, so you may have not measured the whole area. Please try to measure the whole M208 area (please be careful, the BLTouch/extruder needs some room...).

                                  I cannot remember, whether M557 coordinates refer to the M208 or to the BLTouch positions.

                                  1 Reply Last reply Reply Quote 0
                                  • JoergS5undefined
                                    JoergS5 @buckker
                                    last edited by

                                    @buckker BTW congratulations using good measurement equipment!

                                    1 Reply Last reply Reply Quote 0
                                    • JoergS5undefined
                                      JoergS5 @buckker
                                      last edited by JoergS5

                                      @buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):

                                      Whats actually happens if I print outside the probing area?

                                      I looked into the source Grid.cpp function GetInterpolatedHeightError(): my understanding is, the last mesh point in this direction is used as reference height. E.g. if (50,50) to (350,350) have mesh points, than for (0,200) the point (50,200) is taken as height.

                                      1 Reply Last reply Reply Quote 0
                                      • JoergS5undefined
                                        JoergS5 @buckker
                                        last edited by JoergS5

                                        @buckker one more aspect I can think of is if your Z axis is driven by something like a worm drive, that direction changes have some play (backlash). This would cause unexpected movements.

                                        You can check whether there is compensation directly by checking the Z motor position: M114 has a Count value, the third one is the motor position of Z. The counter is set at homing and depends on motor position and M92 value. So you know the firmware's value and not depend on the reality Z position.

                                        buckkerundefined 1 Reply Last reply Reply Quote 0
                                        • buckkerundefined
                                          buckker @JoergS5
                                          last edited by buckker

                                          @joergs5

                                          Yes, Tesa really produces very high quality measurement equipment 🙂

                                          I modified the probing area with more points. But it also doesn't help. I also print some smaller test parts (cubic with 280mm x 280mm). With this dimensions the part is 100% in the probed area. Same result...

                                          I also checked with the dial gauge the travel of the z-axis. Both motors compensate some deviation. The direction should be also fine. But it was not able to compare the z-axis absolute travel measured by the dial gauge with the height map. It seems that the printer compensate some deviation, but no enough..

                                          I use a belt driven gearbox for the z-axis (4:1). I will check the backlash of the axis.

                                          actual printing result:

                                          IMG_20211223_130117.jpg

                                          height map for this part:
                                          height map_2.jpg

                                          One thing confused me: at the left front corner, the layer should stick very good (+0.2mm offset), the nozzle should have nearly zero gap without mesh bed compensating (if I print at 0.2mm layer height). But actually the layer is too far away from the build plate... I don't understand this...

                                          I will run a print with disabling mesh bed compensation

                                          JoergS5undefined 1 Reply Last reply Reply Quote 0
                                          • JoergS5undefined
                                            JoergS5 @buckker
                                            last edited by JoergS5

                                            @buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):

                                            confused me: at the left front corner, the layer should stick very good (+0.2mm offset),

                                            is this the reality (bed uneven) or is it a measurement error? A good lineal, best would be a hair lineal, could give you the answer. Or a measuring plate together with your gauge. Or maybe you have an additional linear guide, mounting the gauge, parallel to the bed, allows measuring the bed.

                                            I suspect the two linear guides of Y are not in one plane, too. (left is higher in front, right one is higher in the back). I use feeler gauge for fine tuning. You don't have a reference, however. I would try between 0.1 and 0.2 mm and then decide by bed measuring (mesh probing or gauge).

                                            An additonal topic you can check is whether the bed is sliding smooth enough. I. e. the distance of the two opposite linear guides need to have a little play. Otherwise a direction change of Z stepper will produce a little gap, depending how high the belt tension is. The bed should not be fixed with screws, because bed expansion by temperature will change the distance between the linear guides.

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