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

    Bl-touch and distance printing nozzle

    Scheduled Pinned Locked Moved
    Firmware installation
    5
    20
    1.6k
    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.
    • Touchthebitumundefined
      Touchthebitum
      last edited by

      Hello
      I'm struggling against this calibration with my Bl.touch.
      Here is the sequence that I'm following :

      • Home XY

      • Carriage at the center of the bed manually jogged

      • Piece of paper and I manually jog the nozzle to the paper.

      • G92 Z0

      • I manually jog the nozzle away from the bed

      • I test G31 S-1, note the value and insert in my config.g file (G31 P500 ....)

      • Save and restart

      Where am I wrong ?
      When I'm launching a print, nozzle is still away from the bed...
      Thanks for help

      Sparkcube XL V 1.1 300x300x190, Radds, Raspberry, Keenovo silicone bedheat 220v, Big Booster Extruder, DIY building
      BLV Cube 665mm Direct Drive with Duet3/SBC (RPi 4) Mosquito Magnum/Bond Tech Extruder/Vanadium Nozzle, Keenovo silicone bedheat 220v

      1 Reply Last reply Reply Quote 0
      • skoundefined
        sko
        last edited by

        I have the exact same problem with an inductive probe and wasted the better part of last evening with it (instead of trying this: https://forum.duet3d.com/topic/18223/auto-adjust-z-offset).
        To successfully get a print going, I always had to re-adjust Z=0 after the homing and bed probing, or the nozzle will be .35mm too high. This value is pretty much consistent 90% of the time, so I didn't check the height after a while and just added

        M564 S0
        G1 Y-0.35
        G92 Z0
        

        To the homez.g file...

        Varying the Z-offset (set with G31 in config.g) doesn't affect the outcome and the Z=0 error is always consistent. The offset only affects values in the bed compensation map and seems to be subtracted from those values for Z=0, so no matter what Z-offset I use (positive or negative and even absurd values like 10mm); the nozzle always is .35mm too high at Z=0.

        Even when disabling bed compensation the Z-error is persistent and always is present immediately after homing Z with G30, so I suspect there's a bug with calculating/setting Z=0 via that command.
        I've printed a bracket for a Z-endstop switch to set Z=0 by triggering that switch with the nozzle (as I was already planning to do), so I can completely avoid depending on some calculation for Z=0 and use the Z-probe only for bed leveling and compensation.

        1 Reply Last reply Reply Quote 0
        • jens55undefined
          jens55
          last edited by

          G31 most certainly will work .... have you checked your config-overwrite.g file to see if there is maybe a different G31 command there that overwrites the value in config.g ?
          I am sure other people will chime in with other suggestions.

          1 Reply Last reply Reply Quote 0
          • Touchthebitumundefined
            Touchthebitum
            last edited by

            So am I, I'm getting crazy with this Z=0
            I double checked the config-overwrite.g file and I don't have such a command.

            Sparkcube XL V 1.1 300x300x190, Radds, Raspberry, Keenovo silicone bedheat 220v, Big Booster Extruder, DIY building
            BLV Cube 665mm Direct Drive with Duet3/SBC (RPi 4) Mosquito Magnum/Bond Tech Extruder/Vanadium Nozzle, Keenovo silicone bedheat 220v

            1 Reply Last reply Reply Quote 0
            • jens55undefined
              jens55
              last edited by

              The way I handled this issue in the past is to use babysteps (on the Duet web interface) to bring the nozzle down to the perfect height (while printing the first layer). This would give me the amount that my Z offset was off by. I would then add/subtract (invariably I would pick the wrong procedure when choosing between adding or subtracting) this offset to the G31 Z offset in config.g. You then need to reset the board to activate the new setting and you should be golden.
              There is a macro available for doing that but I think at this point you are better off doing it manually. No sense in adding more complications to an already confusing/frustrating situation.

              Touchthebitumundefined 1 Reply Last reply Reply Quote 0
              • Touchthebitumundefined
                Touchthebitum @jens55
                last edited by

                @jens55
                Yes indeed I use babystepping on my Sparklab (Repetier) and it goes perfect.

                Sparkcube XL V 1.1 300x300x190, Radds, Raspberry, Keenovo silicone bedheat 220v, Big Booster Extruder, DIY building
                BLV Cube 665mm Direct Drive with Duet3/SBC (RPi 4) Mosquito Magnum/Bond Tech Extruder/Vanadium Nozzle, Keenovo silicone bedheat 220v

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

                  Hi,

                  What is the sequence of commands do you execute to start a print?

                  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

                  Touchthebitumundefined 1 Reply Last reply Reply Quote 0
                  • Touchthebitumundefined
                    Touchthebitum @fcwilt
                    last edited by Touchthebitum

                    @fcwilt
                    SD card (from Panel Due) , I click on the file and it prints.
                    I use Simplify 3D to export my gcode file.

                    I noticed that I had a bad steps/mm for my z motors. Now I have 800 steps/mm

                    Sparkcube XL V 1.1 300x300x190, Radds, Raspberry, Keenovo silicone bedheat 220v, Big Booster Extruder, DIY building
                    BLV Cube 665mm Direct Drive with Duet3/SBC (RPi 4) Mosquito Magnum/Bond Tech Extruder/Vanadium Nozzle, Keenovo silicone bedheat 220v

                    1 Reply Last reply Reply Quote 0
                    • jens55undefined
                      jens55
                      last edited by

                      Not saying it's wrong but I have 80 steps per mm for my printer ....

                      Touchthebitumundefined 1 Reply Last reply Reply Quote 0
                      • skoundefined
                        sko
                        last edited by

                        I just wired the Z-endstop switch and did some testing...

                        The Z-switch is mounted 10mm next to the bed (bedsize 330x330, probing position 341,310) and is adjusted to exactly match the bed height in that corner. Homing Z is 100% accurate now and after probing I can reliably lower the nozzle to 0 and it is exactly just touching the bed surface in that corner.

                        BUT: as soon as I run mesh compensation (G29) I get an error of ~0.5mm (higher) for that corner. I've checked the trigger height manually and it is at 1.44-1.46mm height, but no matter what I set in the config.g via G31, e.g. G31 P500 X0 Y0 Z1.45; the .5mm error is always present after running G29. I also tried absurd values like 5 or 10mm and even negative ones, the nozzle is now always ~.45-.5 over the bed after running G29.

                        The Tool doesn't have any offsets set (G10 P0 X0 Y0 Z0) and in config-override.g only the heater parameters are present (M307)

                        Here's my 'homez.g':

                        M558 P1 C"!zprobe.in" H15 A5 F600 T25000		; increase dive height
                        
                        G90	
                        G30 P0 X50 Y165 Z-99999 ; probe near a leadscrew
                        G30 P1 X350 Y165 Z-99999 S2 ; probe near a leadscrew
                        M558 P1 C"!zprobe.in" H5 A5 F600 T25000			; reduce dive height after adjusting the bed
                        G90						; absolute positioning
                        
                        G1 X340.8 Y310 F18000
                        G1 H1 Z-350 F600 ; move quickly to X axis endstop and stop there (first pass)
                        G1 Z5 F1200       ; go back a few mm
                        G1 H1 Z-6 F300   ; move slowly to X axis endstop once more (second pass)
                        G92 Z0 			; G1 H1 sometimes doesn't set Z=0???
                        G1 H2 Z15 F1200   ; lower Z again
                        G90                ; absolute positioning
                        
                        G1 X0 Y330 F18000				; move printhead to the back
                        

                        and config.g:

                        ; General preferences
                        G90                                           ; send absolute coordinates...
                        M83                                           ; ...but relative extruder moves
                        M550 P"x5sapro"                               ; set printer name
                        M669 K1                                       ; select CoreXY mode
                        
                        ; PanelDue
                        M575 P1 S1 B57600 
                        
                        ; Network
                        M552 S1                                       ; enable network
                        M586 P0 S1                                    ; enable HTTP
                        M586 P1 S0                                    ; disable FTP
                        M586 P2 S0                                    ; disable Telnet
                        
                        ; Drives
                        M569 P0 S1 F12                                   ; XY 1 physical drive 0 goes forwards
                        M569 P1 S1 F12                                   ; XY 2 physical drive 1 goes forwards
                        M569 P2 S0 F12                                   ; invert Z1
                        M569 P3 S0 F12                                   ; invert E0
                        M569 P4 S0 F12					; invert Z2
                        M584 X0 Y1 Z4:2 E3                              ; set drive mapping
                        M671 X-90:410 Y165:165 S50							; set X and Y offsets of lead screws
                        M350 X16 Y16 Z16 E16 I1                       ; configure microstepping with interpolation
                        M92 X80.00 Y80.00 Z400.00 E393.88             ; set steps per mm
                        M566 X300.00 Y300.00 Z300.00 E600.00
                        M203 X48000.00 Y48000.00 Z3000.00 E3000.00    ; set maximum speeds (mm/min)
                        M201 X8000.00 Y8000.00 Z250.00 E1000.00       ; set accelerations (mm/s^2)
                        M906 X1050 Y1050 Z950 E650 I30                  ; set motor currents (mA) and motor idle factor in per cent
                        M84 S30                                       ; Set idle timeout
                        
                        ; Axis Limits
                        M208 X0 Y-8 Z0 S1                              ; set axis minima
                        M208 X350 Y329 Z400 S0                        ; set axis maxima
                        
                        ; Endstops
                        M574 X1 S1 P"!xstop"                           ; configure active-high endstop for low end on X via pin xstop
                        M574 Y1 S1 P"!ystop"                           ; configure active-high endstop for low end on Y via pin ystop
                        M574 Z1 S1 P"!zstop"
                        
                        ; Z-Probe
                        M558 P1 C"!zprobe.in" H20 A5 F600 T18000           ; set Z probe type to unmodulated and the dive height + speeds
                        G31 P500 X0 Y0 Z1.85
                        M557 X50:350 Y15:315 S75                      ; 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 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 S120                                  ; set temperature limit for heater 0 to 120C
                        M308 S1 P"e0temp" Y"thermistor" T100000 B4100  ; 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
                        
                        ; Fans
                        M950 F0 C"fan0" Q500                          ; create fan 0 on pin fan0 and set its frequency
                        M106 P0 C"Part Cooling" S0 H-1                ; set fan 0 name and value. Thermostatic control is turned off
                        M950 F1 C"fan1" Q500                          ; create fan 1 on pin fan1 and set its frequency
                        M106 P1 C"Hotend" S0.5 H1 T45                 ; set fan 1 name and value. Thermostatic control is turned on
                        M950 F2 C"fan2" Q500                          ; create fan 2 on pin fan2 and set its frequency
                        M106 P2 C"Board" S0 H-1                       ; set fan 2 name and value. Thermostatic control is turned off
                        
                        ; Tools
                        M563 P0 S"CR-10 Hotend" D0 H1 F0              ; define tool 0
                                                      ; set tool 0 axis offsets
                        G10 P0 R0 S0                                  ; set initial tool 0 active and standby temperatures to 0C
                        
                        ; Miscellaneous
                        M575 P1 S1 B57600                             ; enable support for PanelDue
                        
                        M501
                        
                        1 Reply Last reply Reply Quote 0
                        • skoundefined
                          sko
                          last edited by

                          (I couldn't edit my previous post b/c it was tagged as spam!?)

                          I compared the manually determined trigger height to the one reported by G30 S-1 and it is always off by ~.45
                          Actual trigger height at the point where Z is homed (and the probe is above the bed) as said is ~1.4mm If I run a G30 S-1 at the same position it reports ~1.8-1.9mm trigger height...

                          1 Reply Last reply Reply Quote 0
                          • jens55undefined
                            jens55
                            last edited by

                            Did you run a new bed mesh once you had adjusted your z zero ?
                            I don't know this for sure but it sounds like the additional offset is because you applied bed mesh compensation.

                            1 Reply Last reply Reply Quote 0
                            • skoundefined
                              sko
                              last edited by

                              As soon as I ran a bed mesh compensation, the error was introduced into the height map and the nozzle was ~0.4mm above the bed when moving to "Z=0"

                              I now reverted to using G30 S-3 directly next to the Z-endstop. This fixes the mysterious ~.4mm error that was consistently introduced when using G30 and a fixed offset in the config.g. So I removed all probe offsets from the config.g and now set the offset during Z-homing:

                              ; homez.g
                              ; called to home the Z axis
                              M561					; cancel all bed mesh compensations
                              M558 P1 C"!zprobe.in" H15 F300		; increase dive height to prevent crashing into a tilted bed
                              
                              ; probe and adjust the bed tilt
                              G90	
                              G30 P0 X50 Y165 Z-99999 ; probe near a leadscrew
                              G30 P1 X350 Y165 Z-99999 S2 ; probe near a leadscrew
                              
                              M558 P1 C"!zprobe.in" H5		; reduce dive height after adjusting the bed
                              
                              ; move over endswitch to set Z=0
                              G1 X341 Y310 F18000
                              G1 H1 Z-350 F600 ; move quickly to Z axis endstop and stop there (first pass)
                              G1 Z5 F1200       ; move up a few mm
                              G1 H1 Z-6 F300   ; move slowly to Z axis endstop once more (second pass)
                              G92 Z0 			; set Z=0
                              G1 Z15 F1200   ; lift printhead
                              
                              ; calibrate probe trigger distance
                              G1 X341 Y313 F18000	; move directly next to the switch to calibrate the probe
                              G30 S-3				; set probe trigger height
                              G1 Z15 F1200		; lift printhead
                              
                              G1 X0 Y330 Z20 F18000				; move printhead to the back
                              

                              afterwards I can run bed mesh compensation and am getting plausible results (with an error of ~0.015-0.02mm over multiple mesh compensation runs) and the compensation is properly working. I.e. I can move to any point on the bed and when moving the Z-axis to 0 the nozzle actually touches the bed, even if I deliberately introduce an error somewhere.

                              1 Reply Last reply Reply Quote 0
                              • jens55undefined
                                jens55
                                last edited by

                                I am now officially lost ....
                                In your homez.g macro you are adjusting bed tilt but you only run the tilt routine once. Normally this is a successive approximation so it would make more sense to run this several times (the tilt compensation)
                                Then you run close to where the limit switch is located and set z=0. Never mind the fact that ideally z should be set to zero when it is in the middle of the bed .... you are now using the z limit switch and not the probe.
                                You then run the probe and over-ride the previous z=0 setting which was set with the end limit switch rather than the probe.

                                There is a good possibility that I do not completely understand what is happening here but it looks to me like the probe triggering point is different from the endstop trigger point and you are seeing weirdness because of that.

                                I think I would like to bow out from this discussion as I feel I am over my head.

                                skoundefined 1 Reply Last reply Reply Quote 0
                                • skoundefined
                                  sko @jens55
                                  last edited by

                                  @jens55 said in Bl-touch and distance printing nozzle:

                                  I am now officially lost ....
                                  In your homez.g macro you are adjusting bed tilt but you only run the tilt routine once. Normally this is a successive approximation so it would make more sense to run this several times (the tilt compensation)

                                  I wasn't aware of that. The reported adjustment is usually <0.2mm, but I will try to rewrite it to repeat until the deviation is even lower.

                                  Then you run close to where the limit switch is located and set z=0. Never mind the fact that ideally z should be set to zero when it is in the middle of the bed .... you are now using the z limit switch and not the probe.

                                  Z=0 is set at the position where the limit switch is triggered. I confirmed this several times by checking the nozzle height after this step.

                                  You then run the probe and over-ride the previous z=0 setting which was set with the end limit switch rather than the probe.

                                  G30 S-3 doesn't set the Z=0 value but only the trigger height:
                                  G30 S-3 ; Probe the bed and set the Z probe trigger height to the height it stopped at

                                  There is a good possibility that I do not completely understand what is happening here but it looks to me like the probe triggering point is different from the endstop trigger point and you are seeing weirdness because of that.

                                  I am aware that the endstop trigger is different from the probe trigger height.
                                  My problem was, that when using G30 to home Z using the probe, there was an offset of ~0.4mm added somewhere. This led to Z=0 being off by the same value when I tried to home Z by only using the probe and the trigger distance defined via G31 in config.g

                                  1 Reply Last reply Reply Quote 0
                                  • Touchthebitumundefined
                                    Touchthebitum
                                    last edited by Touchthebitum

                                    I followed this process and it seems to work :
                                    -put z=0.0 in config.g G31 line

                                    • homing all axes
                                      G30 (be careful and be ready to press emergency button)
                                    • manually jog nozzle to touch the bed
                                      G92 Z0
                                    • manually jog 10mm z axes away from nozzle
                                    • G30 S-1 (2 times)
                                    • insert the z value in the G31 line
                                    • Start mesh process from the PanelDue

                                    I did it 2 times and if you want to modify the z, you have to redo the all process (in my case)

                                    Sparkcube XL V 1.1 300x300x190, Radds, Raspberry, Keenovo silicone bedheat 220v, Big Booster Extruder, DIY building
                                    BLV Cube 665mm Direct Drive with Duet3/SBC (RPi 4) Mosquito Magnum/Bond Tech Extruder/Vanadium Nozzle, Keenovo silicone bedheat 220v

                                    1 Reply Last reply Reply Quote 0
                                    • Touchthebitumundefined
                                      Touchthebitum @jens55
                                      last edited by Touchthebitum

                                      @jens55
                                      Thanks I have to control. I have now layers problems and it could be this step/mm that causes it.
                                      But 80 steps/mm is very low...

                                      Sparkcube XL V 1.1 300x300x190, Radds, Raspberry, Keenovo silicone bedheat 220v, Big Booster Extruder, DIY building
                                      BLV Cube 665mm Direct Drive with Duet3/SBC (RPi 4) Mosquito Magnum/Bond Tech Extruder/Vanadium Nozzle, Keenovo silicone bedheat 220v

                                      1 Reply Last reply Reply Quote 0
                                      • jens55undefined
                                        jens55
                                        last edited by

                                        It all depends on your mechanics .... it works for me but there are many reasons why it might not be right for you. The appropriate thing is to measure things and adjust until the Duet and real life agree 🙂

                                        Touchthebitumundefined 1 Reply Last reply Reply Quote 0
                                        • Touchthebitumundefined
                                          Touchthebitum @jens55
                                          last edited by

                                          @jens55
                                          Ok, I'll check 😉

                                          Sparkcube XL V 1.1 300x300x190, Radds, Raspberry, Keenovo silicone bedheat 220v, Big Booster Extruder, DIY building
                                          BLV Cube 665mm Direct Drive with Duet3/SBC (RPi 4) Mosquito Magnum/Bond Tech Extruder/Vanadium Nozzle, Keenovo silicone bedheat 220v

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

                                            This thread is very confusing to follow because there are 2 people with problems posting in the same thread.

                                            Best way to get accurate and timely help on a problem is to post a good description of the problem and include all of your config files. RRF is configured with gcode, so showing what gcode you are using is critical to helping others understand what's actually happening with the printer.

                                            @Touchthebitum @sko if you want some more help getting your z offset correct, start new threads and include your files. It's usually a fairly simple fix to methodology.

                                            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