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

    Mesh Compensation not working (left side higher than right)

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    3
    10
    440
    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.
    • ThePfeiffenatorundefined
      ThePfeiffenator
      last edited by

      Here is my heightmap.

      Heightmap.JPG

      When I try and do a print with Mesh compensation enabled or not the left side is always higher than the right. I know that it is trying as I have seen the motors move, but it doesn't seem like it has any noticeable affect.

      Here is my Config.g

      ; Configuration file for Duet WiFi (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 03 2021 11:42:17 GMT-0500 (Central Daylight Time)
      
      ; General preferences
      M575 P1 S1 B57600                                      ; enable support for PanelDue
      G90                                                    ; send absolute coordinates...
      M83                                                    ; ...but relative extruder moves
      M550 P"HyperCube"                                      ; set printer name
      M669 K1                                                ; select CoreXY mode
      
      ; Network
      M552 S1                                                ; enable network
      M586 P0 S1                                             ; enable HTTP
      M586 P1 S1                                             ; enable FTP
      M586 P2 S1                                             ; enable Telnet
      
      ; Drives
      M569 P0 S0                                             ; physical drive 0 goes forwards
      M569 P1 S0                                             ; physical drive 1 goes forwards
      M569 P2 S0                                             ; physical drive 2 goes forwards
      M569 P3 S1                                             ; physical drive 3 goes forwards
      M584 X0 Y1 Z2 E3                                       ; set drive mapping
      M350 X16 Y16 Z16 E16 I1                                ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z400.00 E409.00                      ; set steps per mm
      M566 X900.00 Y900.00 Z99.60 E120.00                    ; set maximum instantaneous speed changes (mm/min)
      M203 X12000.00 Y12000.00 Z600.00 E3000.00             ; set maximum speeds (mm/min)
      M201 X1000.00 Y1000.00 Z200.00 E10000.00               ; set accelerations (mm/s^2)
      M906 X950 Y950 Z950 E950 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 X271 Y290 Z280 S0                                 ; set axis maxima
      
      ; Endstops
      M574 X1 S3 F0 R0                            ; Set active High endstops (S1=SENSORED) (X-MIN(1)) (S3=SENSORLESS)
      M574 Y0 S3 F0 R0 		            ; Set active High endstops (S1=SENSORED) (Y-MIN(1)) (S3=SENSORLESS)
      M574 X1 Y1 S3                               ; Set endstops controlled by motor load detection
      M574 Z1 S2                                         ; configure sensorless endstop for low end on Y and X
      M915 X Y S7 R0 F0
      
      ; Z-Probe
      M950 S0 C"exp.heater7"                                 ; create servo pin 0 for BLTouch
      M558 P9 C"^zprobe.in" H3 F120 T6000                    ; set Z probe type to bltouch and the dive height + speeds
      G31 P500 X-2 Y-38 Z1.25                                  ; set Z probe trigger value, offset and trigger height
      M557 X15:250 Y15:250 S20                               ; define mesh grid
      
      ; Heaters
      M308 S0 P"bedtemp" Y"thermistor" T100000 B4138         ; 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 S1.00                                       ; disable 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 S1.00                                       ; 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 C"PartCoolingFan" P0 S0 H-1 B1 ; set fan 0 value. Thermostatic control is turned off
      ;M950 F1 C"fan1" Q500 ;HOTEND FAN create fan 1 on pin fan1 and set its frequency
      ;M106 C"HotendFAN" P1 H1 T45 ; set fan 1 value. Thermostatic control is turned on
      
      M950 F0 C"fan0" Q500
      M106 P0 S0 H-1 B1
      M950 F1 C"fan1" Q500                                  ; create fan 1 on pin fan1 and set its frequency
      M106 P1 H1 T45                                ; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 D0 H1 F1                                       ; 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
      M671 X50:250:250:50 Y250:250:50:50 P0.5 ; point1 (50,250), point2 (250,250), point3 (250,50), point4 (50,50)
      
      ; Miscellaneous
      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
      

      Let me know if you need anything else. I have never felt so dumb in my life trying to figure this thing out.

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

        Please post the results of M122 and M98 P"config.g"
        Also please post your homing files, bed.g, mesh.g, and your slicer start gcode.

        Z-Bot CoreXY Build | Thingiverse Profile

        ThePfeiffenatorundefined 1 Reply Last reply Reply Quote 0
        • ThePfeiffenatorundefined
          ThePfeiffenator @Phaedrux
          last edited by

          @phaedrux Here are the things you requested. Though I do not see a mesh.g file.

          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: 08DGM-917DA-G4MS8-6JTD2-3SJ6T-T9VB8
          Used output buffers: 3 of 24 (11 max)
          === RTOS ===
          Static ram: 23876
          Dynamic ram: 75240 of which 12 recycled
          Never used RAM 15288, free system stack 184 words
          Tasks: NETWORK(ready,10.2%,251) HEAT(delaying,0.0%,314) Move(notifyWait,0.1%,364) MAIN(running,86.3%,461) IDLE(ready,3.4%,29), total 100.0%
          Owned mutexes:
          === Platform ===
          Last reset 00:00:27 ago, cause: power up
          Last software reset at 2022-02-19 20:13, reason: User, GCodes spinning, available RAM 15288, 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 17.4, current 20.0, max 20.3
          Supply voltage: min 24.1, current 24.2, 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: 2022-02-20 17:19:19
          Cache data hit count 1031252570
          Slowest loop: 4.70ms; 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 1.5ms, write time 0.0ms, 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: 183.36ms; fastest: 0.00ms
          Responder states: HTTP(2) HTTP(2) 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.22
          WiFi MAC address bc:dd:c2:89:9f:4c
          WiFi Vcc 3.36, reset reason Turned on by main processor
          WiFi flash sizeSocket states: 4 2 0 0 0 0 0 0
          

          M98 P"config.g"

          HTTP is enabled on port 80
          FTP is enabled on port 21
          TELNET is enabled on port 23
          

          homeall.g

          ; homeall.g
          ; called to home all axes
          ;
          ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 03 2021 11:42:18 GMT-0500 (Central Daylight Time)
          
          M561
          
          M400
          M913 X70 Y70 ; drop motor current to 70%
          M400 G91; relative positioning
          G1 H2 Z10 F12000 ; lift Z relative to current position
          G1 H1 X-320.5 F10000 ; move quickly to X axis endstop and stop there (first pass)
          G1 H2 X5 F12000 ; go back a few mm
          G1 H1 X-320.5 F7000 ; move slowly to X axis endstop once more (second pass)
          G1 H2 Z-10 F6000 ; lower Z again
          G90 ; absolute positioning
          M400
          M913 X100 Y100 ; return current to 100%
          M400
          
          M400
          M913 X70 Y70 ; drop motor current to 70%
          M400 G91; relative positioning
          G1 H2 Z10 F12000 ; lift Z relative to current position
          G1 H1 Y-320.5 F10000 ; move quickly to X axis endstop and stop there (first pass)
          G1 H2 Y5 F12000 ; go back a few mm
          G1 H1 Y-320.5 F7000 ; move slowly to X axis endstop once more (second pass)
          G1 H2 Z-10 F6000 ; lower Z again
          G90 ; absolute positioning
          M400
          M913 X100 Y100 ; return current to 100%
          M400
          
          ; BLTouch prep so we don't catch the probe pin on the edge of the bed
          ;
          M280 P7 S160 I1 		; Alarm Release and Push-Pin UP just in case it's in alarm and deployed
          M402				; Retract probe just in case it's down
          
          ; Drop the bed for travel
          ;
          G91				; Relative positioning
          G1 Z5 F200 H2        		; Lower bed 5mm to ensure it is below the trigger height
          
          ; Move probe into position
          ;
          G90				; absolute positioning
          G1 X145 Y145 F4000		; Move x and Y axis over to bed center so probe is on top of bed
          
          ; Set lower speeds for homing
          ;
          M566 Z5				; Set maximum instantaneous speed changes (mm/min) (Jerk)
          M203 Z400			; Set maximum speeds (mm/min)
          M201 Z100	 		; Set maximum accelerations (mm/s^2)
          
          ; Probe the bed
          ;
          M558 A1 F350			; Set single probing at faster feed rate
          G30 				; Do a single probe to home our Z axis
          M558 A10 F100			; Set tripple probing at slower feed rate
          G30				; Probe again to get a more accurate position
          
          ; Set normal speeds again
          ;
          M566 Z60			; Set maximum instantaneous speed changes (mm/min) (Jerk)
          M203 Z600			; Set maximum speeds (mm/min)
          M201 Z600			; Set maximum accelerations (mm/s^2)
          
          
          
          
          ; Uncomment the following lines to lift Z after probing
          ;G91                    ; relative positioning
          ;G1 Z3 F100             ; lift Z relative to current position
          ;G90                    ; absolute positioning
          
          

          Bed.g

          ; bed.g
          ; called to perform automatic bed compensation via G32
          ;
          ; generated by RepRapFirmware Configuration Tool v3.3.0 on Tue Aug 03 2021 11:42:17 GMT-0500 (Central Daylight Time)
          M561 ; clear any bed transform
          G29  ; probe the bed and enable compensation
          

          Start G-code

          M107 ;start with the fan off
          G28 ;auto home
          M109 S235;
          G1 X0 Y20 Z0.2 F3000 ; get ready to prime
          G92 E0 ; reset extrusion distance
          G1 Z1.0 F3000 ; move z up little to prevent scratching of surface
          G1 X2 Y20 Z0.3 F5000.0 ; move to start-line position
          G1 X5 Y200.0 Z0.3 F1500.0 E15 ; draw 1st line
          G1 X5 Y200.0 Z0.3 F5000.0 ; move to side a little
          G1 X5 Y20 Z0.3 F1500.0 E30 ; draw 2nd line
          ; G1 E27 F3000 ; retract filament 3mm
          G92 E0 ; reset extruder
          ; done purging extruder
          G1 Z1.0 F3000 ; move z up little to prevent scratching of surface
          G29 S1;
          
          1 Reply Last reply Reply Quote 0
          • Phaedruxundefined
            Phaedrux Moderator
            last edited by Phaedrux

            A couple things to check.

            Make sure your axis directions are correct.

            -X should move left, +X should move right
            -Y should move to the front of the bed, +Y to the back.

            Double check your probe offsets keeping those directions in mind. Your current offset says the probe is 2mm to the left of the nozzle and 38mm in front of it. Is that right?

            Also check the probe trigger height using G30 S-1 at different points on the bed. Ideally it should be consistently the same everywhere on the bed. See if you notice it changing at different points. This could explain incorrect positioning.

            If those are all correct, please do a first layer test print once with the mesh enabled and once with it disabled using a test file like this.

            bedlevel_nozzle_0.4_200x200-0.3-0.8.stl

            @thepfeiffenator said in Mesh Compensation not working (left side higher than right):

            bed compensation in use: none

            Your M122 shows that the mesh isn't enabled, but based on your gcode it would only be enabled at the start of the print, which is fine. But you can send M122 during a print to make sure it shows "bed compensation in use: mesh"

            Z-Bot CoreXY Build | Thingiverse Profile

            ThePfeiffenatorundefined 2 Replies Last reply Reply Quote 0
            • ThePfeiffenatorundefined
              ThePfeiffenator @Phaedrux
              last edited by ThePfeiffenator

              @phaedrux

              So I probed in 5 points around the bed via G30 S-1.

              Center: Stopped at height 1.253 mm

              Rear Left: Stopped at height 1.072 mm

              Rear Right: Stopped at height 0.885 mm

              Front Right: Stopped at height 1.138 mm

              Front Left: Stopped at height 1.065 mm

              So they are definitely different. I use a BL Touch, do you think I have a defective one? Or do you know what might cause my deviations?

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

                @phaedrux So I did some more investigating and found that my bed is level to my x axis, but here is my new height map, which causes it to compensate incorrectly by moving the bed up when it is in fact level on either side.

                6635d4d9-db5a-4c16-b829-757f24c015cd-image.png

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

                  @thepfeiffenator said in Mesh Compensation not working (left side higher than right):

                  @phaedrux

                  So I probed in 5 points around the bed via G30 S-1.

                  Center: Stopped at height 1.253 mm

                  Rear Left: Stopped at height 1.072 mm

                  Rear Right: Stopped at height 0.885 mm

                  Front Right: Stopped at height 1.138 mm

                  Front Left: Stopped at height 1.065 mm

                  So they are definitely different. I use a BL Touch, do you think I have a defective one? Or do you know what might cause my deviations?

                  Are you thinking they should all be similar? They would only be similar if all the points you probed were at the same Z height.

                  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

                    Perhaps I should have been more specific on the use of G30 S-1.

                    You should use this method as described for setting the offset in G31.

                    https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_testing#calibrate-the-z-probe-trigger-height

                    Resetting Z0 using G92 Z0 at each location you wish to test at before sending G30 S-1

                    Z-Bot CoreXY Build | Thingiverse Profile

                    ThePfeiffenatorundefined 1 Reply Last reply Reply Quote 0
                    • ThePfeiffenatorundefined
                      ThePfeiffenator @Phaedrux
                      last edited by

                      @phaedrux Oh yeah, the trigger height is correct in the center of the bed, but on the sides it is not.

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

                        There could be something out of square with the frame, or the printhead is tilting a bit.

                        If you do that G92 Z0 G30 S-1 test in a row along the bed moving towards where it gets out does it slowly increase as it goes?

                        Z-Bot CoreXY Build | Thingiverse Profile

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