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

    Never Printing Flat

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    2
    15
    497
    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.
    • Adam_Sw3undefined
      Adam_Sw3
      last edited by

      Hi All,

      I was just wondering if anyone would be able to help me.

      I can never seem to get a nice flat initial printing layer, I have EZABL and have calibrated it as the guide says.

      I have been going at this for around a month now and I cannot seem to get a good first layer, one side of my print is too close to bed and the other is too far away,

      I then had the idea to do some Z probes around the bed to see what the variation was. Please see my attached readouts from both left and right-hand sides. Does anyone know what is causing this, and if so, how would I fix it and ensure that my probing figures are correct all around my plate?

      cf1db343-efa7-4b61-b415-93da62676b47-image.png

      Thank you.

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

        That's a pretty big difference in trigger height. That may indicate the probe is tilting as it moves in XY.

        What kind of printer is this? Can you give some more details? How is the Z axis arranged? How do you home? Are you doing manual leveling as well?

        How is the probe mounted?

        Please share your config.g, homing files, and bed.g

        Please send M122 and M98 P"config.g" and copy and paste the results here.

        Z-Bot CoreXY Build | Thingiverse Profile

        Adam_Sw3undefined Phaedruxundefined 2 Replies Last reply Reply Quote 1
        • Adam_Sw3undefined
          Adam_Sw3 @Phaedrux
          last edited by

          @Phaedrux Hi there,

          Yes, I thought the same!! This is my own built 3D printer and the layout of the Z axis is a triangular shape using 3 lead screws at each point in a symmetrical triangle. I don't think it's the probe as the probe cable is fixed locally to it ensuring it is static. I home XY at end of travel and Z in the centre of the bed. The probe is mounted using its standard hole mount with 2 nuts.

          Would ABL solve this? or even true bed levelling?

          Home all code:

          G91                     ; relative positioning
          G1 H2 Z5 F6000          ; lift Z relative to current position
          G1 H1 X-555 Y-415 F1800 ; move quickly to X or Y endstop and stop there (first pass)
          G1 H1 X-555             ; home X axis
          G1 H1 Y-415             ; home Y axis
          G1 X5 Y5 F6000          ; go back a few mm
          G1 H1 X-555 F360        ; move slowly to X axis endstop once more (second pass)
          G1 H1 Y-415             ; then move slowly to Y axis endstop
          G90                     ; absolute positioning
          G1 X270 Y180 F6000       ; go to first bed probe point and home Z
          ;G1 X-20 Y10 F6000       ; go to first bed probe point and home Z
          G30                     ; home Z by probing the bed
          

          config.g

          G90                                            ; send absolute coordinates...
          M83                                            ; ...but relative extruder moves
          M550 P"Printer"                                 ; set printer name
          M669 K1                                        ; select CoreXY mode
          
          ; Network
          M552 S1                                        ; enable network
          M586 P0 S1                                     ; enable HTTP
          M586 P1 S0                                     ; disable FTP
          M586 P2 S0                                     ; disable Telnet
          
          ; Drives
          M569 P0 S1                                     ; physical drive 0 goes forwards
          M569 P1 S1                                     ; physical drive 1 goes forwards
          M569 P2 S1                                     ; physical drive 2 goes forwards
          M569 P3 S1                                     ; physical drive 3 goes forwards
          M569 P4 S0                                     ; physical drive 4 goes forwards - E1
          
          M584 X0 Y1 Z2:5:4 E3                               ; set drive mapping
          M350 X16 Y16 Z16 E16 I1                        ; configure microstepping with interpolation
          M92 X80.00 Y80.00 Z1066.67 E446.8              ; set steps per mm
          M566 X900.00 Y900.00 Z60.00 E120.00            ; set maximum instantaneous speed changes (mm/min)
          M203 X6000.00 Y6000.00 Z180.00 E1200.00        ; set maximum speeds (mm/min)
          M201 X500.00 Y500.00 Z20.00 E250.00            ; set accelerations (mm/s^2)
          M906 X1500 Y1500 Z1500 E1000 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 X550 Y410 Z500 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 Z1 S2                                     ; configure Z-probe endstop for low end on Z
          
          ; Z-Probe
          M558 P1 C"!zprobe.in" H10 F240 T6000            ; set Z probe type to unmodulated and the dive height + speeds
          G31 P500 X35 Y0 Z5.7                          ; set Z probe trigger value, offset and trigger height
          M557 X15:525 Y10:400 S50                       ; 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 R0.310 K0.291:0.000 D1.41 E1.35 S1.00 B0                              ; 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 B4138  ; 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 S300                                   ; set temperature limit for heater 1 to 300C
          
          ; Fans
          M950 F0 C"fan0" Q500                           ; create fan 0 on pin fan0 and set its frequency
          M106 P0 S0 H-1                                 ; set fan 0 value. Thermostatic control is turned off
          M950 F1 C"fan1" Q500                           ; create fan 1 on pin fan1 and set its frequency
          M106 P1 S1 H1 T45                              ; set fan 1 value. Thermostatic control is turned on
          
          ; Tools
          M563 P0 S"MATERIAL 1" 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
          M563 P1 S"MATERIAL 2" D0 H1 F0                 ; define tool 1
          G10 P1 X0 Y0 Z0                                ; set tool 1 axis offsets
          G10 P1 R0 S0                                   ; set initial tool 1 active and standby temperatures to 0C
          
          

          bed.g

          G28 ; home
          G30 P0 X50 Y410 Z-99999 ; probe near a leadscrew, half way along Y axis
          G30 P1 X550 Y410 Z-99999 ; probe near a leadscrew and calibrate
          G30 P2 X275 Y3 Z-99999
          

          M122:

          === Diagnostics ===
          RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.4 (2022-10-20 16:17:41) running on Duet WiFi 1.02 or later
          Board ID: 08DGM-917NK-F23T0-6JKDJ-3SD6N-TDBJF
          Used output buffers: 1 of 26 (13 max)
          === RTOS ===
          Static ram: 23860
          Dynamic ram: 75216 of which 0 recycled
          Never used RAM 12932, free system stack 116 words
          Tasks: NETWORK(notifyWait,14.0%,237) HEAT(notifyWait,0.0%,333) Move(notifyWait,0.0%,294) MAIN(running,85.9%,458) IDLE(ready,0.1%,30), total 100.0%
          Owned mutexes: WiFi(NETWORK)
          === Platform ===
          Last reset 00:37:27 ago, cause: software
          Last software reset at 2023-01-30 21:01, reason: User, GCodes spinning, available RAM 12932, 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
          Step timer max interval 0
          MCU temperature: min 33.0, current 34.6, max 37.3
          Supply voltage: min 23.9, current 24.2, max 24.5, 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
          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 0
          Driver 5: 
          Driver 6: 
          Driver 7: 
          Driver 8: 
          Driver 9: 
          Driver 10: 
          Driver 11: 
          Date/time: 2023-01-30 21:39:08
          Cache data hit count 4294967295
          Slowest loop: 34.57ms; fastest: 0.18ms
          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 7.7ms, write time 1.1ms, max retries 0
          === Move ===
          DMs created 83, segments created 3, maxWait 418264ms, bed compensation in use: mesh, comp offset 0.000
          === MainDDARing ===
          Scheduled moves 250, completed 250, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === AuxDDARing ===
          Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
          === Heat ===
          Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
          === 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: 97.08ms; fastest: 0.00ms
          Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0)
          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.27
          WiFi MAC address b4:e6:2d:53:0c:f9
          WiFi Vcc 3.37, reset reason Turned on by main processor
          WiFi flash size 4194304, free heap 24528
          WiFi IP address 192.168.1.247
          WiFi signal strength -47dBm, mode 802.11n, reconnections 0, sleep mode modem
          Clock register 00002002
          Socket states: 0 0 0 0 0 0 0 0
          

          M98 Returns an error?

          M98
          Error: M98: No P or R parameter
          

          Thank you for your help, any help in getting to the bottom of this would be greatly appreciated.

          Kind Regards,
          Adam

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

            @Phaedrux said in Never Printing Flat:

            M98 P"config.g"

            Z-Bot CoreXY Build | Thingiverse Profile

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

              Have you tried setting up automatic leveling?

              https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_auto_levelling

              Z-Bot CoreXY Build | Thingiverse Profile

              Adam_Sw3undefined 1 Reply Last reply Reply Quote 1
              • Adam_Sw3undefined
                Adam_Sw3 @Phaedrux
                last edited by

                @Phaedrux oooh, what does M98 do?

                Is automatic levelling different to ABL? Like the one seen in my bed.g file?

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

                  @Adam_Sw3 said in Never Printing Flat:

                  what does M98 do?

                  It calls a macro to run. M98 P"config.g" will call config.g to run as it does on startup, but since the system is already running it can catch syntax errors that might otherwise get missed at startup.

                  @Adam_Sw3 said in Never Printing Flat:

                  Is automatic levelling different to ABL? Like the one seen in my bed.g file?

                  No its the same thing but your bed.g appears to be missing the S parameter on the last probe point to do the calculation, but maybe that's just a copy and paste error?

                  Z-Bot CoreXY Build | Thingiverse Profile

                  Adam_Sw3undefined 3 Replies Last reply Reply Quote 1
                  • Adam_Sw3undefined
                    Adam_Sw3 @Phaedrux
                    last edited by

                    This post is deleted!
                    1 Reply Last reply Reply Quote 0
                    • Adam_Sw3undefined
                      Adam_Sw3 @Phaedrux
                      last edited by

                      @Phaedrux Thank you for this! I will read through the documentation! Hopefully this should solve it!

                      1 Reply Last reply Reply Quote 0
                      • Adam_Sw3undefined
                        Adam_Sw3 @Phaedrux
                        last edited by

                        @Phaedrux Hi There, I have just had a crack at this tonight and I am getting an error "Some computed corrections exceed configured limit of 0.50mm: -0.487 5.186 -8.188" I understand that this is out of the tolerance for the machine to avoid it damaging itself.

                        I am thinking that the way I have wired it up may be the issue, 2 Z's are connected to both Z drivers. and the other "Z driver" is connected to E0. I, therefore, believe the 2 Z's arent independent. Is this the case or are they individually addressable?

                        Thank you.

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

                          @Adam_Sw3 said in Never Printing Flat:

                          Some computed corrections exceed configured limit of 0.50mm

                          You can adjust the tolerance in the M671 S parameter.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          Adam_Sw3undefined 1 Reply Last reply Reply Quote 1
                          • Adam_Sw3undefined
                            Adam_Sw3 @Phaedrux
                            last edited by

                            @Phaedrux to like +-10mm?! Are the dual Z's independent?

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

                              @Adam_Sw3 said in Never Printing Flat:

                              to like +-10mm?!

                              Well you'll have to determine what a safe amount of movement is to prevent damage. However, the whole point of the feature is to reduce the difference between the points, so it should be bringing things closer to spec.

                              I would suggest trying 2 or 3mm and manually leveling the sides to begin with. Then there shouldn't be much of a difference between the sides and only a small amount of correct would be needed.

                              @Adam_Sw3 said in Never Printing Flat:

                              2 Z's are connected to both Z drivers. and the other "Z driver" is connected to E0. I, therefore, believe the 2 Z's arent independent. Is this the case or are they individually addressable?

                              I'm not exactly sure I follow. Which motors are wired where? The Z driver on the Duet 2 board is a single driver. The two ports for that driver are wired in series. So to use independent control each motor must have it's own driver.

                              From your config.g I see your driver mapping is a little wrong.

                              M584 X0 Y1 Z2:5:4 E3

                              There are only 5 drivers on the Duet, but you have 6 mapped. There is no driver 5, only 0,1,2,3,4.

                              So you can't actually do 3 motor leveling (and still have an extruder) on a duet 2 without either a Duex or external driver expansion.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              1 Reply Last reply Reply Quote 1
                              • Adam_Sw3undefined
                                Adam_Sw3
                                last edited by

                                @Phaedrux Ohhhhh!! I am misunderstood sorry about that. Yes it is massively better now thank you and watching it in action is extremely awesome!

                                Yes my fault, I don't know why I stuck 5 in there!! I have since removed that now. Thanks for your help!

                                Cheers!

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

                                  Well how many Z motors do you have?

                                  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