• Tags
  • Documentation
  • Order
  • Register
  • Login
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.
  • undefined
    jens55
    last edited by 18 Aug 2020, 16:07

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

    undefined 1 Reply Last reply 19 Aug 2020, 05:30 Reply Quote 0
    • undefined
      sko
      last edited by 18 Aug 2020, 17:29

      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
      • undefined
        sko
        last edited by 18 Aug 2020, 17:51

        (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
        • undefined
          jens55
          last edited by 18 Aug 2020, 18:14

          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
          • undefined
            sko
            last edited by 18 Aug 2020, 19:29

            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
            • undefined
              jens55
              last edited by 18 Aug 2020, 20:05

              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.

              undefined 1 Reply Last reply 18 Aug 2020, 22:41 Reply Quote 0
              • undefined
                sko @jens55
                last edited by 18 Aug 2020, 22:41

                @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
                • undefined
                  Touchthebitum
                  last edited by Touchthebitum 19 Aug 2020, 05:28

                  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
                  • undefined
                    Touchthebitum @jens55
                    last edited by Touchthebitum 19 Aug 2020, 05:30

                    @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
                    • undefined
                      jens55
                      last edited by 19 Aug 2020, 05:49

                      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 🙂

                      undefined 1 Reply Last reply 19 Aug 2020, 05:50 Reply Quote 0
                      • undefined
                        Touchthebitum @jens55
                        last edited by 19 Aug 2020, 05:50

                        @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
                        • undefined
                          Phaedrux Moderator
                          last edited by 19 Aug 2020, 05:54

                          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
                          18 out of 20
                          • First post
                            18/20
                            Last post
                          Unless otherwise noted, all forum content is licensed under CC-BY-SA