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

Automatic Z offset Calculation

Scheduled Pinned Locked Moved
Tuning and tweaking
3
4
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
    ozgiac
    last edited by 12 Jan 2019, 21:34

    I would like to implement a feature that will calculate my nozzle to bltouch offset.

    The idea i am thinking of is i can have a metal plate mounted next to bed or clip on bed.

    This can be wired to a switch input that is normally open.

    home Z till nozzle touches plate, this giving me a Z=0

    Then use BLtouch to home on that metal plate.

    Then all i need is the difference in mm between the 2 Z homes.

    And that is my Z Offset.

    I am trying to make the 3d printer as simple as possible to operate

    1 Reply Last reply Reply Quote 0
    • undefined
      Phaedrux Moderator
      last edited by 12 Jan 2019, 23:11

      You mean like the procedure described here? https://duet3d.dozuki.com/Wiki/Test_and_calibrate_the_Z_probe#Section_Calibrate_the_Z_probe_trigger_height

      I use a macro to automate the process, with no need for additional hardware.

      ; Clear compensation map and Z probe trigger height
      ;
      M291 P"Grid bed compensation map and Z Probe trigger height will be cleared. Ok or Cancel?" R"WARNING" S3 ; User must click OK or cancel.
      ;M561 ; Disable any current bed compensation
      G29 S2 ; Clear mesh bed compensation parameters
      G29 S2 ; Clear mesh bed compensation parameters
      G31 Z0 ; Reset Z probe trigger height
      ; home all axis
      ;
      G28 ; Home all axis
      G90 ; Absolute positioning
      T0 ; Activate first tool
      ; Set lower speeds for Z homing and lower Z motor current
      ;
      M566 Z10 ; Set maximum instantaneous speed changes (mm/min) (Jerk)
      M203 Z300 ; Set maximum speeds (mm/min)
      M201 Z10 ; Set maximum accelerations (mm/s^2)
      M913 Z60 ; Drop motor current to prevent damage in case of head crash
      ; Preheat to probing temps
      ;
      M291 P"Preheating to bed to 60 and nozzle to 210 for accurate probing"
      M104 S210 ; Set nozzle to 210 and release
      M190 S60 ; Set bed to 60 and wait
      M109 S210 ; Set nozzle to 210 and wait
      ; Move nozzle to center of bed at z10
      ;
      M291 P"Nozzle will now move to center of bed to reset Z0 and calibrate probe" S3
      G1 Z1 ; Drop bed for nozzle clearance
      G1 X150 Y110 Z2 F4000 ; Move to bed center
      ; Reset z to 5 to allow jogging up to touch bed to nozzle
      ;
      G92 Z5
      ; Dialog to allow user to jog z to touch nozzle to bed gently and then move Z down 10
      ;
      M291 P"Jog the Z Axis until the bed and nozzle are touching and click OK" R"Setting Z=0" Z1 S3
      G92 Z0 ; Set z = 0
      M104 S0 ; Set nozzle to 0 and release
      ; Move probe to center of bed and get probe trigger heights
      ;
      M291 P"Probe will now move to center of bed and measure trigger height 10 times" R"ZProbe Trigger Height Calibration" S3
      G1 Z1 ; Drop bed for nozzle clearance
      G1 X190 Y90 F4000 ; Move to bed center
      M291 P"Heights will be found in gcode console if logging successful gcode is enabled" R"Did you remember to enabled gcode logging?" S3
      ; G30 S-1 10 times
      ;
      ; 1
      G1 Z10
      G30 S-1
      ; 2
      G1 Z10
      G30 S-1
      ; 3
      G1 Z10
      G30 S-1
      ; 4
      G1 Z10
      G30 S-1
      ; 5
      G1 Z10
      G30 S-1
      ; 6
      G1 Z10
      G30 S-1
      ; 7
      G1 Z10
      G30 S-1
      ; 8
      G1 Z10
      G30 S-1
      ; 9
      G1 Z10
      G30 S-1
      ; 10
      G1 Z10
      G30 S-1
      ; Turn off heaters
      ;
      M104 S0 ; Set nozzle to 0 and release
      M140 S0 ; Set bed to 0 and release
      M913 Z85 ; Return Z motor current to normal
      G28 ; Home Z
      M291 P"Probing complete. Turning off heaters and homing axis. Check log for trigger heights and enter into config.g" S2
      ; Tone to get user attention
      ;
      M400 ; Clear movement buffer so tones play reliably
      M300 S666 P500
      G4 P501
      M300 S1111 P300
      G4 P301

      Z-Bot CoreXY Build | Thingiverse Profile

      1 Reply Last reply Reply Quote 0
      • undefined
        ozgiac
        last edited by 13 Jan 2019, 10:32

        Thanks for that.

        I wanted to get away from the user trying to jog.

        Your process will work, how ever having experienced a wide variety of customers and their abilities,
        i would like a one touch solution

        That was the reason of using a plate to make electrical contact with the nozzle.

        What one user assumes is touching the plate, another user will think there should be some pressure against nozzle, so it opens it up to a variety of settings.

        Since hardware like the BLtouch has come out, it has made 3d printers a lot more user friendly,
        how ever the process of Z-Offset is one of my greatest customer support issues.

        We produce a lot of custom made larger format printers, so bed levelling becomes a critical process as opposed to common 200x200mm and smaller build plates.

        We have recently switched over to Duet/Reprap controllers, so slowly getting familiar with it.

        undefined 1 Reply Last reply 13 Jan 2019, 12:13 Reply Quote 0
        • undefined
          deckingman @ozgiac
          last edited by 13 Jan 2019, 12:13

          @ozgiac If I understand correctly, you are trying to automate the process of calculating the offset from the BL Touch probe trigger point to the nozzle, to maker it easier for end users of your printers.

          That being the case, then have you considered doing away with the BL Touch and using the nozzle itself as the probe? Then there is no offset to worry about.

          It can be accomplished a couple of ways. One way is to use a piezo sensor, similar to the smart effector. Another way (which is how I do it) is to use a "simple" precision positioning switch but for that the mechanics are quite complicated as the hot end needs to be able to move a mm or so in Z but be constrained from any other movement in X or Y.

          Either way involves a bit of re-designing but once that's done you'll have a reliable and trouble free way of homing Z which is fairly "user error proof" and may reduce production costs.

          Ian
          https://somei3deas.wordpress.com/
          https://www.youtube.com/@deckingman

          1 Reply Last reply Reply Quote 0
          • undefined moth4017 referenced this topic 23 Sept 2023, 01:27
          4 out of 4
          • First post
            4/4
            Last post
          Unless otherwise noted, all forum content is licensed under CC-BY-SA