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

  • Hey guys,

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

    • 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).


    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
    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"
    		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