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

    Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+

    Scheduled Pinned Locked Moved Solved
    Tuning and tweaking
    7
    50
    3.2k
    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.
    • juliannundefined
      juliann @T3P3Tony
      last edited by

      @t3p3tony

      You are correct, there is no G28 inserted in the slicer.

      Yes, the variations are present between different runs of the same print.

      Screenshot 2021-10-12 at 15.56.31.png

      T3P3Tonyundefined 2 Replies Last reply Reply Quote 0
      • fcwiltundefined
        fcwilt @juliann
        last edited by fcwilt

        @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

        Thank you @fcwilt

        This is the result:

        G32 bed probe heights: -0.079 -0.077 -0.077 -0.078 -0.078 -0.076 -0.078 -0.078 -0.078 -0.077, mean -0.078, deviation from mean 0.001

        I'm a bit late to the party so if I repeat what you have already been told I apologize.

        When you use a single G30 at a fixed XY location you are setting the Z=0 Datum.

        For the fixed XY location I suggest using the center of the bed.

        It is important to do this when creating your height map and when loading your height map.

        Now setting the Z=0 Datum can be done as part of homing Z or homing ALL as long as it occurs before creating the height map or before loading the height map.

        If you change Z probe settings in either M558 or G31 it would be best to create a new height map.

        If you change the XY point you use when setting the Z=0 Datum you should also create a new height map.

        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 1
        • T3P3Tonyundefined
          T3P3Tony administrators @juliann
          last edited by

          @juliann ok so quite a lot of variation across the bed is shown by the height map.

          Try adding a single G30 at the bed centre into your start gcode before you load the height map and see if it if makes it more consistent (it might not be exactly right and still need baby stepping. its more about seeing if the amount of baby stepping needed changes.

          www.duet3d.com

          1 Reply Last reply Reply Quote 0
          • T3P3Tonyundefined
            T3P3Tony administrators @juliann
            last edited by

            @juliann and @fcwilt 's post is also helpful - worth checking the height map again

            www.duet3d.com

            juliannundefined 1 Reply Last reply Reply Quote 0
            • juliannundefined
              juliann @T3P3Tony
              last edited by

              Thank you very much @t3p3tony @fcwilt

              I am checking it right now, I will be back as soon as I finish the tests 🙂

              juliannundefined 1 Reply Last reply Reply Quote 0
              • juliannundefined
                juliann @juliann
                last edited by

                Hi @fcwilt and @T3P3Tony

                After following your instructions I think I got an improvement because now there is not a baby stepping variation anymore between different runs of the same print.
                But... always there is a but... 🙂 if I turn off and on the printer and then try to print anything, all the calibration is gone, so I need to recalibrate the baby steps again to get those nice first layers that I used to have.

                Thanks again!
                Julián.

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

                  @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                  Hi @fcwilt and @T3P3Tony

                  After following your instructions I think I got an improvement because now there is not a baby stepping variation anymore between different runs of the same print.
                  But... always there is a but... 🙂 if I turn off and on the printer and then try to print anything, all the calibration is gone, so I need to recalibrate the baby steps again to get those nice first layers that I used to have.

                  Thanks again!
                  Julián.

                  If you find you need to adjust baby-stepping once at power on and then it works fine you should be able change the Z Trigger Height parameter in G31 by the same amount.

                  If you are baby-stepping closer (a negative value) add the absolute of that value to the Z Trigger height parameter.

                  If you are baby-stepping away (a positive value) subtract that value from the Z Trigger height parameter.

                  Recall that increasing the Z Trigger Height parameter will result in the nozzle ending up closer to the bed.

                  In any case when you change G31 you need to be sure it is executed to have the changes take effect.

                  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

                  juliannundefined 1 Reply Last reply Reply Quote 1
                  • juliannundefined
                    juliann @fcwilt
                    last edited by

                    Hi @fcwilt and @T3P3Tony

                    Sorry for the delay, I did a lot of tests! After applying all the tweaks you gave me the Z height improved a lot, I have a new printer! 😄

                    There is just one specific and persistent issue which is only present after powering on the printer.

                    Its behaviour is the following:

                    • The printer is already calibrated and all previous prints were perfectly fine.
                    • Power off and power on the printer
                    • I try to print anything and the first layer is much more closer to the bed that usual.
                    • Cancel that print (Emergency stop on DWC) and clean the bed
                    • so I print again the same file without touching any setting and now the first layer is perfect again.... (and of course I can continue printing without issues)

                    What I am missing?

                    Thanks a lot for all the help! 🙂
                    Julián.

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

                      @juliann

                      Hi,

                      Well clearly something is being done under those circumstances that is not being done on power up and thus some setting is not getting set correctly. 😉

                      Do you have any of the following files in your Sys folder:

                      • cancel.g
                      • pause.g
                      • stop.g

                      If you do please post them here using the </> tag.

                      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

                      juliannundefined 1 Reply Last reply Reply Quote 0
                      • juliannundefined
                        juliann @fcwilt
                        last edited by

                        @fcwilt

                        Thank you very much Frederick!

                        No, I don't have any of these files in my system folder.

                        Julián.

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

                          @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                          @fcwilt

                          Thank you very much Frederick!

                          No, I don't have any of these files in my system folder.

                          Julián.

                          Hmm...

                          I don't know all the "side effects" of hitting "Emergency Stop".

                          It's possible that, in the code executed at the start of a print, the order of execution is incorrect.

                          Here is a very simple, artificial example of what I am getting at using just two commands:

                          M703
                          T0
                          

                          The command M703 will fail if a tool is not selected but the tool is not selected by the T0 command until after the M703 command has already failed.

                          If I execute that same pair of commands a second time the M703 will work since the tool is now selected.


                          So if you could post the first 20 lines or so of a file that doesn't print after power on but prints the second time perhaps we can see something.

                          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

                          juliannundefined 1 Reply Last reply Reply Quote 0
                          • juliannundefined
                            juliann @fcwilt
                            last edited by

                            @fcwilt

                            Hi Frederick,

                            This is a fragment of the file I am printing today, of course the behaviour is still the same, after cancelling the first try now it is printing perfectly.

                            About M703 and T0, I executed them but I didn't get any event or error.

                            Thanks again!
                            Julián.

                            
                            ; 
                            
                            ; external perimeters extrusion width = 0.45mm
                            ; perimeters extrusion width = 0.45mm
                            ; infill extrusion width = 0.42mm
                            ; solid infill extrusion width = 0.42mm
                            ; top infill extrusion width = 0.40mm
                            ; first layer extrusion width = 0.42mm
                            
                            
                            M140 S80 ; set bed temperature
                            G10 P0 R265 ; sets the standby temperature
                            G10 P0 S267 ; set temperature
                            ;TYPE:Custom
                            G28 ; home all axes
                            G1 Z5 F5000 ; lift nozzle
                            M107
                            G21 ; set units to millimeters
                            G90 ; use absolute coordinates
                            M82 ; use absolute distances for extrusion
                            G92 E0
                            ; Filament gcode
                            G1 X250 Y250 
                            G30
                            M290 R0 S-0.12
                            
                            
                            G29 S1
                            G10 P0 S267 ; set temperature
                            M116 ; wait for temperature to be reached
                            M190 S80 ; set bed temperature and wait for it to be reached
                            M107
                            ;LAYER_CHANGE
                            ;Z:0.25
                            ;HEIGHT:0.25
                            ; 0.2mm layer, 8 bands 5mm each, total height 40mm
                            ;
                            G1 Z0.25 F18000
                            G1 E-0.3 F3600
                            G1 X225.081 Y213.029 F18000
                            G1 E0 F3000
                            ;TYPE:Skirt
                            ;WIDTH:0.42
                            G1 F600
                            G1 X226.211 Y211.864 E0.05129
                            G1 X226.84 Y211.385 E0.07628
                            G1 X227.733 Y210.982 E0.10725
                            G1 X228.699 Y210.814 E0.13823
                            G1 X271.124 Y210.809 E1.47905
                            G1 X271.771 Y210.864 E1.49958
                            G1 X272.401 Y211.025 E1.52011
                            
                            fcwiltundefined 1 Reply Last reply Reply Quote 0
                            • fcwiltundefined
                              fcwilt @juliann
                              last edited by

                              @juliann

                              I didn't mean for you to do anything with the T0 and M703 commands, it was just to illustrate that the order of code can lead to things failing the first time but working after that.

                              Thanks for the code you posted.

                              Since that code executed G28 could you post your homeall.g file.

                              Where did the setup code (the code before the layer change comment) come from? It's a bit unusual.

                              That code also includes a M290 to set baby-stepping. What is that there?

                              Thanks.

                              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

                              juliannundefined 1 Reply Last reply Reply Quote 0
                              • juliannundefined
                                juliann @fcwilt
                                last edited by

                                @fcwilt

                                Oh I got it, sorry, I am still in the beginner area of 3d printing 🙂

                                Superslicer Filament start and end gcodes:

                                G1 X250 Y250 
                                G30
                                M290 R0 S-0.12 
                                G29 S1
                                

                                Superslicer end gcode

                                ; Filament-specific end gcode 
                                ;END gcode for filament
                                

                                Superslicer Printer Custom gcodes:

                                Start gcode

                                G28 ; home all axes
                                G1 Z5 F5000 ; lift nozzle
                                
                                

                                End gcode

                                M104 S0 ; turn off temperature
                                M140 S0 ; turn off bed
                                G28 X0  ; home X axis
                                M84     ; disable motors
                                M999
                                

                                As I can't find all other commands on the settings pages of the SuperSlicer 2.3.57, honestly I am not sure if they were generated by the slicer itself.

                                homeall.g

                                ; BLTouch
                                ;M280 P0 S160           ; Precautionary alarm release
                                M280 P0 S160           ; Ensure the pin is raised
                                
                                G91                     ; relative positioning
                                G1 H2 Z10 F6000          ; lift Z relative to current position
                                
                                ;G91                     ; relative positioning
                                ;G1 H2 Z5 F6000          ; lift Z relative to current position
                                G1 H1 X-505 Y505 F3600 ; move quickly to X and U axis endstops and stop there (first pass)
                                G1 H1 X-505 F1800 ; move quickly to X and U axis endstops and stop there (first pass)
                                G1 H1 Y505 F1800 ; move quickly to X and U axis endstops and stop there (first pass)
                                ;G1 H2 X5 Y-5 F6000       ; go back a few mm
                                G1 H1 X-505 Y505 F360  ; move slowly to X and U axis endstops once more (second pass)
                                G1 H1 X-505 F360  ; move slowly to X and U axis endstops once more (second pass)
                                G1 H1 Y505 F360  ; move slowly to X and U axis endstops once more (second pass)
                                
                                G90                     ; absolute positioning
                                G1 X250 Y250 F10000 ; go to first probe point
                                G30                     ; home Z by probing the bed
                                
                                G91                    ; relative positioning
                                G1 Z10 F1800             ; lift Z relative to current position
                                G90                    ; absolute positioning
                                G1 X0 Y35 F10000
                                
                                ;G29 S1
                                

                                Thank you very much!
                                Julián.

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

                                  @juliann

                                  Thanks.

                                  Now I am even more confused. 😉

                                  Where did that code come from? Did you create it yourself?

                                  You mentioned different sections of SuperSlicer code. Did you decide what code went into what section?

                                  The code in the Filament Start and Start sections doesn't seem right.


                                  This is what I think your homeall.g file should look like but it's hard to be sure as what you posted was a mixture of approaches to homing.

                                  M402                ; Ensure pin is raised - when you use M402 the firmware knows the pin should be raised
                                   
                                  G91                 ; relative positioning
                                  
                                  G1 H2 Z10 F6000     ; lift Z relative to current position
                                   
                                  G1 H1 X-505  F1800  ; move to X endstop (fast)
                                  G1    X5            ; backup a bit
                                  G1 H1 X-10   F360   ; move to X endstop (slow)
                                  
                                  G1 H1 Y505   F1800  ; move to Y endstop (fast)
                                  G1    Y-5           ; backup a bit
                                  G1 H1 Y10    F360   ; move to Y endstop (slow)
                                   
                                  G90                 ; absolute positioning
                                  G1 X250 Y250 F10000 ; move probe to XY position for probing
                                  G30                 ; home Z by probing the bed
                                   
                                  G1 Z10 F1800        ; move Z to "done homing" position
                                  G1 X0 Y35 F10000    ; move X and Y to "done homing" positions
                                  
                                  

                                  Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

                                  juliannundefined 1 Reply Last reply Reply Quote 0
                                  • juliannundefined
                                    juliann @fcwilt
                                    last edited by

                                    Thank you @fcwilt

                                    All slicer configurations were created based on findings that I came across on forums and Internet, I mean, they are there just by doing copy and paste... 😬 😇

                                    Where should I start fixing or organising it? 🙂

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

                                      @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                                      Thank you @fcwilt

                                      All slicer configurations were created based on findings that I came across on forums and Internet, I mean, they are there just by doing copy and paste... 😬 😇

                                      Where should I start fixing or organising it? 🙂

                                      I'm about to have lunch. So give me a bit of time and I will create some basic code you can put into the slicer as a starting point.

                                      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

                                      juliannundefined 1 Reply Last reply Reply Quote 0
                                      • juliannundefined
                                        juliann @fcwilt
                                        last edited by

                                        @fcwilt

                                        Thank you so much Frederick for taking the time, please enjoy your lunch 🙂

                                        fcwiltundefined 2 Replies Last reply Reply Quote 1
                                        • fcwiltundefined
                                          fcwilt @juliann
                                          last edited by

                                          @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                                          @fcwilt

                                          Thank you so much Frederick for taking the time, please enjoy your lunch 🙂

                                          There has been a bit of disruption of my work as the local authorities have been out and about near my home looking for a missing person. They asked if I would review my security camera recordings to see if anything was picked up.

                                          They are gone now and I am back to work.

                                          Sorry for the delay.

                                          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
                                          • fcwiltundefined
                                            fcwilt @juliann
                                            last edited by

                                            @juliann said in Unreliable Z height calibration on V-Core 3 w/BLtouch & Mini 5+:

                                            @fcwilt

                                            Thank you so much Frederick for taking the time, please enjoy your lunch 🙂

                                            I installed SuperSlicer and had it slice a simple cube object so I could set what code it generated with default settings.

                                            I have posted the code below with all generated "junk" removed.

                                            ; SuperSlicer print start code using RepRap setting
                                            
                                            M140 S60    ; set bed temperature
                                            G10 P0 R190 ; sets the standby temperature
                                            G10 P0 S190 ; set temperature
                                            G28         ; home all axes
                                            G1 Z5 F5000 ; lift nozzle *** THE POSITIONING MODE (absolute or relative) IS NOT KNOWN ***
                                            M107        ; disable fan
                                            G21         ; set units to millimeters
                                            G90         ; use absolute coordinates
                                            M83         ; use relative distances for extrusion
                                            G10 P0 S190 ; set temperature
                                            M116        ; wait for temperature to be reached
                                            M190 S60    ; set bed temperature and wait for it to be reached
                                            M107        ; disable fan
                                            
                                            ; SuperSlicer print end code using RepRap setting
                                            
                                            M486 S-1 ; object cancelation
                                            M107     ; disable fan
                                            M104 S0  ; turn off temperature
                                            G28 X0   ; home X axis
                                            M84      ; disable motors
                                            

                                            With the updated homeall.g file I posted earlier this SuperSlicer generated code is basically OK and should work - although it does have a a minor flaw or two.

                                            So I would update your homeall.g file and make sure it works.

                                            Then slice a simple file and see if the start/end code matches what I posted here.

                                            If it does try to print with it.

                                            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

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