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

    Tool Length Sensor (TLS) for e.g. tool changing

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    tool change tool offsets
    1
    1
    384
    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.
    • taconiteundefined
      taconite
      last edited by

      Hey guys,

      I worked on a tool length sensor which some of you may find convenient in certain circumstances.
      e.g.

      • nozzle change
      • change of the hot-end
      • tool changing

      It is fully printable with some minor add ons which most of you have lying around. The Tool Length Senosr (TLS) can be wired in parallel to your z-probe (connecting between GND and IN), because its in fact a normally open microswitch.

      I made a macro with conditional G-Code for it, which iterates through the defined number of tools. When the probe is hit by a clean cold nozzle (hot nozzle is possible as well with a small add-on) the current z position relative to the TLS is stored in G10 Commands and stored in the EEPROM (p.s. don't forget to add the needed command to your cofig.g).

      f21e22c8-045d-43a8-b848-814f8a0d8589-image.png

      ;05.08.2020
      M291 P"Please put Tool length sensor in the middle of the build plate and hit okay when done" R"Placing tool length sensor" S2
      M291 P"ATTENTION: Machine is moving during the probing moves" R"ATTENTION" S2
      G28 ; home
      G90
      G1 X0 Y0 ; move to center
      G1 Z50 
      while iterations<#tools		;run as often as number of tools
      	if tools[iterations] != null	; check if tool is really asigned
      		M291 P"Please put Tool" ^ iterationis ^ " into the effector and hit okay when done" R"Tool [iterations]" S2
      		if sensors.gpIn[1].value=0	; check if tool is in effector
      			M291 S0 T3 P"Tool in effector"
      		else {}
      			M291 S0 T3 P"Tool not in effector"
                              abort
      		G91
      		M98 P"Alarmsound.g"
      		G30 Z-45 S-1 
      		if  sensors.probes[0].value[0]>500
      			G10 P{iterations} X0 Y0 Z{move.axes[2].userPosition-12.5}
      			M500 P10
      		G1 Z50 F500
      
      

      If you have any questions or suggestions please feel free to ask

      Custom ANET A8
      Custom Delta: D-PATCH (Delta Printer with Automatic Tool CHanging) https://forum.duet3d.com/topic/16082/d-patch?_=1596131234754

      All I do here is under this license: CC BY-NC-SA

      1 Reply Last reply Reply Quote 4
      • 2500ccmundefined 2500ccm referenced this topic
      • First post
        Last post
      Unless otherwise noted, all forum content is licensed under CC-BY-SA