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

    Cant calibrate good first layer.

    Scheduled Pinned Locked Moved
    General Discussion
    3
    12
    495
    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.
    • Uzi3Lundefined
      Uzi3L
      last edited by

      ok so i been putting this off as i like to think im smart enough to figure it out i have no problem sorting out issues with Marlin on my first Anycubic predator or tevo Tarantula), but im not! reprap is kicking my arse everything i think should be the right way to work is not!
      I purchased a 2nd, secondhand Anycubic predator that has the following up grades:-

      1. a duet mini 5+ (wifi)
      2. smart effector
      3. orbiter extruder.
      4. Linear rails
      5. magball arms.

      Now i can get it to move like its supposed to. it probes (i follow this instruction HERE

      These are my specs for Printer, running 3.4.5

      m665
      Diagonals 445.219:445.219:445.219, delta radius 225.788, homed height 407.780, bed radius 223.8, X 0.337°, Y 0.148°, Z 0.000°
      
      m666
      Endstop adjustments X0.57 Y-0.71 Z0.15, tilt X-0.32% Y-0.02%
      
      m558
      Z Probe 0: type 8, input pin io3.in, output pin io3.out, dive height 5.0mm, probe speeds 1200,1200mm/min, travel speed 6000mm/min, recovery time 0.40 sec, heaters normal, max taps 1, max diff 0.03
      
      

      My config after i do a Z-trigger calibration is this:-

      ; Configuration file for Duet 3 Mini 5+ (firmware version 3.3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v3.3.15 on Sat Mar 04 2023 15:57:36 GMT+0800 (Australian Western Standard Time)
      
      ; General preferences
      G90                                           ; send absolute coordinates...
      M83                                           ; ...but relative extruder moves
      M550 P"PREDDI-DUET"                           ; set printer name
      M665 R223.75 L440.45 B223.75 H407.78          ; Set delta radius, diagonal rod length, printable radius and homed height
      M666 X0 Y0 Z0                                 ; put your endstop adjustments here, or let auto calibration find them
      
      ; Network
      M552 S1                                       ; enable network
      M586 P0 S1                                    ; enable HTTP
      M586 P1 S0                                    ; disable FTP
      M586 P2 S0                                    ; disable Telnet
      
      ; Drives
      M569 P0.0 S0                                  ; physical drive 0.0 goes backwards
      M569 P0.1 S0                                  ; physical drive 0.1 goes backwards
      M569 P0.2 S0                                  ; physical drive 0.2 goes backwards
      M569 P0.3 S0                                  ; physical drive 0.3 goes backwards
      M584 X0.0 Y0.1 Z0.2 E0.3                      ; set drive mapping
      M350 X16 Y16 Z16 E16 I1                       ; configure microstepping with interpolation
      M92 X200.00 Y200.00 Z200.00 E684.00              ; set steps per mm
      M566 X1200.00 Y1200.00 Z1200.00 E90000.00      ; set maximum instantaneous speed changes (mm/min)
      M203 X18000.00 Y18000.00 Z18000.00 E216000.00   ; set maximum speeds (mm/min)
      M201 X4000.00 Y4000.00 Z1000.00 E1000.00      ; set accelerations (mm/s^2)
      M906 X1700 Y1700 Z1700 E500 I30               ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                       ; Set idle timeout
      
      ; Axis Limits
      M208 Z0 S1                                    ; set minimum Z
      
      ; Endstops
      M574 X2 S1 P"io0.in"                          ; configure switch-type (e.g. microswitch) endstop for high end on X via pin io0.in
      M574 Y2 S1 P"io1.in"                          ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io1.in
      M574 Z2 S1 P"io2.in"                          ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin io2.in
      
      ; Z-Probe
      M558 P8 R0.4 C"io3.in+io3.out" H5 F1200 T6000 ; set Z probe type to effector and the dive height + speeds
      G31 P500 X0 Y0 Z-0.268                           ; set Z probe trigger value, offset and trigger height
      M557 R200 S20                                 ; define mesh grid
      
      ; Heaters
      M308 S0 P"temp0" Y"thermistor" T100000 B4138  ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" T0                            ; create bed heater output on out0 and map it to sensor 0
      M307 H0 B1 S1.00                              ; enable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                       ; map heated bed to heater 0
      M143 H0 S110                                  ; set temperature limit for heater 0 to 110C
      M308 S1 P"temp1" Y"thermistor" T100000 B4138  ; configure sensor 1 as thermistor on pin temp1
      M950 H1 C"out1" T1                            ; create nozzle heater output on out1 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"out4" Q500                          ; create fan 0 on pin out4 and set its frequency
      M106 P0 S0 H-1                                ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out3" Q500                          ; create fan 1 on pin out3 and set its frequency
      M106 P1 S1 H1 T45                             ; set fan 1 value. Thermostatic control is turned on
      M950 F2 C"out6" Q500                          ; create fan 2 on pin out6 and set its frequency
      M106 P2 S1 H-1                                ; set fan 2 value. Thermostatic control is turned off
      
      ; Tools
      M563 P0 D0 H1 F0                              ; define tool 0
      G10 P0 X0 Y0 Z0                               ; set tool 0 axis offsets
      G10 P0 R0 S0                                  ; set initial tool 0 active and standby temperatures to 0C
      
      ; Custom settings
      M501                                          ; Load auto-generated calibration file
      
      
      

      yet i still cant get a good first layer even when using baby stepping when print starts.

      I am so ready to throw this printer in the bin. my firsat preddi with a upgraded SKR 1.4 t that i installed prints great on marlin, but for the life of me i can not get this to give be a good first layer it either to close(which i then adjust the offset to the z trigger hight) then its to fare away.

      I am so lost.

      1 Reply Last reply Reply Quote 0
      • Uzi3Lundefined
        Uzi3L
        last edited by

        @Uzi3L said in Cant calibrate good first layer.:

        G31 P500 X0 Y0 Z-0.268

        Also if i change the

        G31 P500 X0 Y0 Z-0.268
        

        to

        G31 P100 X0 Y0 Z-0.268
        

        I get very consistant z-trigger reading with P100 but it always to hight when doing a first layer.
        but if i set it back to the P500 the consistancy of trigger offset is a larger range. but it seems to be alot closer to the bed but still first layer is bad.

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

          Please post your homedelta.g and bed.g files as well as your slicer start gcode.

          Are you creating a heightmap as well with G29?

          Z-Bot CoreXY Build | Thingiverse Profile

          Uzi3Lundefined 1 Reply Last reply Reply Quote 0
          • Uzi3Lundefined
            Uzi3L @Phaedrux
            last edited by

            @Phaedrux
            First thanks for reply.
            Cura start code

            G21 ;metric values
            G90 ;absolute positioning
            M107 ;start with the fan off
            G28 ;Home
            T0; tool zero
            G1 Z15.0 F1000;short move
            G92 E0 ;zero the extruded length
            G1 F200 E3 ;extrude 3mm of feed stock adjust so I don't have to remove any filament
            G92 E0 ;zero the extruded length again
            G1 F4000 ;move to bed
            ;Put printing message on LCD screen
            ;M117 Printing...
            ;G5; this is in order to resume on Power failure (only works on SD prints)
            

            Homedelta

            ; homedelta.g
            ; called to home all towers on a delta printer
            ;
            ; generated by RepRapFirmware Configuration Tool v3.3.15 on Sat Mar 04 2023 15:57:36 GMT+0800 (Australian Western Standard Time)
            G91                        ; relative positioning
            G1 H1 X430 Y430 Z430 F1800 ; move all towers to the high end stopping at the endstops (first pass)
            G1 H2 X-5 Y-5 Z-5 F1800    ; go down a few mm
            G1 H1 X10 Y10 Z10 F360     ; move all towers up once more (second pass)
            G1 Z-5 F6000               ; move down a few mm so that the nozzle can be centred
            G90                        ; absolute positioning
            G1 X0 Y0 F6000             ; move X+Y to the centre
            

            As per the instructions in first post i comment out the G1 Z-5 F6000 & G1 X0 Y0 F6000 then after i get the Z trigger, i then uncomment them.

            Bed

            ; bed.g
            ; called to perform automatic delta calibration via G32
            ;
            ; generated by RepRapFirmware Configuration Tool v3.3.15 on Tue Jan 17 2023 20:58:40 GMT+0800 (Australian Western Standard Time)
            M561 ; clear any bed transform
            G28  ; home all towers
            ; Probe the bed at 12 peripheral and 3 halfway points, and perform 9-factor auto compensation
            ; Before running this, you should have set up your Z-probe trigger height to suit your build, in the G31 command in config.g.
            G30 P0 X0 Y159.9 H0 Z-99999
            G30 P1 X79.95 Y138.48 H0 Z-99999
            G30 P2 X138.48 Y79.95 H0 Z-99999
            G30 P3 X159.9 Y0 H0 Z-99999
            G30 P4 X138.48 Y-79.95 H0 Z-99999
            G30 P5 X79.95 Y-138.48 H0 Z-99999
            G30 P6 X0 Y-159.9 H0 Z-99999
            G30 P7 X-79.95 Y-138.48 H0 Z-99999
            G30 P8 X-138.48 Y-79.95 H0 Z-99999
            G30 P9 X-159.9 Y0 H0 Z-99999
            G30 P10 X-138.48 Y79.95 H0 Z-99999
            G30 P11 X-79.95 Y138.48 H0 Z-99999
            G30 P12 X0 Y79.9 H0 Z-99999
            G30 P13 X69.2 Y-39.95 H0 Z-99999
            G30 P14 X-69.2 Y-39.95 H0 Z-99999
            G30 P15 X0 Y0 H0 Z-99999 S9
            ; Use S-1 for measurements only, without calculations. Use S4 for endstop heights and Z-height only. Use S6 for full 6 factors
            ; If your Z probe has significantly different trigger heights depending on XY position, adjust the H parameters in the G30 commands accordingly. The value of each H parameter should be (trigger height at that XY position) - (trigger height at centre of bed)
            

            Yes i am creating a hight map with G29 after i do the z trigger, then i do a G32, and i then do a G29, i was also doing a G29 before each print, but never do it in marlin so i stopped on my duet one. so now i only have done a G29 after i set the Z trigger and G32.

            Here is a SC of my hightmap.
            Duet-hightmap.PNG

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

              Your slicer start gcode shows you're only homing the towers before starting the print. I suggest you modify the slicer gcode to use G32 instead of just G28. That will call bed.g which will home the towers and do a delta calibration, then you can add G29 S1 after the G32 to load the heightmap. I think that should solve your problem. Right now you're not taking advantage of the calibration or heightmap.

              Z-Bot CoreXY Build | Thingiverse Profile

              Uzi3Lundefined 2 Replies Last reply Reply Quote 0
              • Uzi3Lundefined
                Uzi3L @Phaedrux
                last edited by

                @Phaedrux said in Cant calibrate good first layer.:

                Your slicer start gcode shows you're only homing the towers before starting the print. I suggest you modify the slicer gcode to use G32 instead of just G28. That will call bed.g which will home the towers and do a delta calibration, then you can add G29 S1 after the G32 to load the heightmap. I think that should solve your problem. Right now you're not taking advantage of the calibration or heightmap.

                Ok thanks i will try your suggestions, fingers crossed.

                1 Reply Last reply Reply Quote 0
                • Uzi3Lundefined
                  Uzi3L @Phaedrux
                  last edited by

                  @Phaedrux said in Cant calibrate good first layer.:

                  Your slicer start gcode shows you're only homing the towers before starting the print. I suggest you modify the slicer gcode to use G32 instead of just G28. That will call bed.g which will home the towers and do a delta calibration, then you can add G29 S1 after the G32 to load the heightmap. I think that should solve your problem. Right now you're not taking advantage of the calibration or heightmap.

                  This is what changes i made, will report back.

                  G21 ;metric values
                  G90 ;absolute positioning
                  M107 ;start with the fan off
                  G28 ;Home
                  G32 ;auto calibraation
                  G29 S1 : Load heightmap
                  T0; tool zero
                  G1 Z15.0 F1000;short move
                  G92 E0 ;zero the extruded length
                  G1 F200 E3 ;extrude 3mm of feed stock adjust so I don't have to remove any filament
                  G92 E0 ;zero the extruded length again
                  G1 F4000 ;move to bed
                  ;Put printing message on LCD screen
                  ;M117 Printing...
                  ;G5; this is in order to resume on Power failure (only works on SD prints)
                  
                  achrnundefined 1 Reply Last reply Reply Quote 0
                  • achrnundefined
                    achrn @Uzi3L
                    last edited by

                    @Uzi3L said in Cant calibrate good first layer.:

                    This is what changes i made, will report back.

                    G28 ;Home
                    G32 ;auto calibraation
                    G29 S1 : Load heightmap
                    

                    Note this will just reload a previous heightmap, unless your bed.g includes a G29 at the end to do the mesh bed compensation probing.

                    If you make it G29 S0 (or just G29) the printer will home, then do the calibration probing, then do teh mesh bed compensation probing every time. I prefer to do that with a relatively coarse probing grid every time rather than re-use a previous bed mesh. Even if you redo a fine bed mesh probe every time it doesn't add much to the overall print time.

                    Uzi3Lundefined 1 Reply Last reply Reply Quote 0
                    • Uzi3Lundefined
                      Uzi3L @achrn
                      last edited by

                      @achrn said in Cant calibrate good first layer.:

                      @Uzi3L said in Cant calibrate good first layer.:

                      This is what changes i made, will report back.

                      G28 ;Home
                      G32 ;auto calibraation
                      G29 S1 : Load heightmap
                      

                      Note this will just reload a previous heightmap, unless your bed.g includes a G29 at the end to do the mesh bed compensation probing.

                      If you make it G29 S0 (or just G29) the printer will home, then do the calibration probing, then do teh mesh bed compensation probing every time. I prefer to do that with a relatively coarse probing grid every time rather than re-use a previous bed mesh. Even if you redo a fine bed mesh probe every time it doesn't add much to the overall print time.

                      Ok ill give that a try as the cure start code i posted did not help.

                      i also did one just to update everything. and after thjis is what my console says. does it look ok?

                      3/6/2023, 10:12:32 PM	m500
                      3/6/2023, 10:12:29 PM	G29
                      249 points probed, min error -0.147, max error 0.095, mean -0.037, deviation 0.044
                      Height map saved to file 0:/sys/heightmap.csv
                      3/6/2023, 10:06:56 PM	G32
                      Calibrated 9 factors using 16 points, (mean, deviation) before (0.015, 0.044) after (0.000, 0.023)
                      
                      achrnundefined 1 Reply Last reply Reply Quote 0
                      • Phaedruxundefined
                        Phaedrux Moderator
                        last edited by

                        Have you measured your probe XYZ offsets recently?

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

                        Z-Bot CoreXY Build | Thingiverse Profile

                        1 Reply Last reply Reply Quote 0
                        • achrnundefined
                          achrn @Uzi3L
                          last edited by achrn

                          @Uzi3L said in Cant calibrate good first layer.:

                          i also did one just to update everything. and after thjis is what my console says. does it look ok?

                          Looks OK, but I have some comments. My delta is not wildly different (mine is MB6HC, but otherwise smart effector, linear rails, magball arms). I have a Bondtech BMG and quite a long bowden.

                          I use 19 points in the calibration (12 outer, 6 inner, one central). I note you're using a few fewer. Also, I only do 6-factor calibration. https://docs.duet3d.com/en/User_manual/Tuning/Delta_calibration says "For typical delta printer builds, 6-factor is best. You should be able to measure the diagonal rod length accurately enough, and for auto calibration to be able to determine it accurately, you need probe points that are well outside the triangle formed by the towers. Likewise, without points well outside that triangle, auto calibration cannot accurately distinguish the effect of bed tilt from misplaced towers."

                          12 outer points means the calibration points are arranged equally around each of the three towers, which seems like it would be a good thing.

                          I get: Calibrated 6 factors using 19 points, (mean, deviation) before (-0.017, 0.072) after (-0.000, 0.071) from calibration, which suggests more variation that you are getting.

                          For bed levelling, your mesh plots up thread look more than flat enough to me, and they are not dramatically worse than mine: 21 points probed, min error -0.092, max error 0.068, mean -0.017, deviation 0.045
                          2fc0e875-2c2e-4e5e-a258-9a9ec99aff95-image.png

                          So your figures don't look to me to be cause of bad first layer, so I think I'd be looking elsewhere.

                          Is your trigger height consistent?

                          Is your extrusion calibrated (most of the times I've had problems with assorted bad behaviour it has been the extruder, not the print-head positional mechanics - and that has been first layer, bad infill and poorly performing support material).

                          1 Reply Last reply Reply Quote 0
                          • Uzi3Lundefined
                            Uzi3L
                            last edited by

                            So far not been able to test the last suggested change, found that the black 6 wire connector on the smart effector has a lose connection and it broke off, so i have ordered replacment ones and have to wait to put new one on as it seems like one or two others are just holding on. hope that maybe (dont know how) is part of the problem.

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