Which tool is enabled after startup?
-
@Phaedrux
haha okay no problem
I will try to rephrase it.
I have a Delta with automatic toolchanging so assuming Tool 1 is in the effector after a power cycle (e.g. after emergency stop or manual off/on) I need to know that Tool 1 is in the effector and not tool 0 or n to avoid collision. Therefore I would like to store this information in a macro that is executed after startup.
The information (which tool is currently enabled) is written in a macro (tool_active) by a macro (toolchange_set_tool) which is called from the Tool macros (tfree and tpost) (tfree to tell the tool_active macro that no tool is enabled and tpostX to write into the macro that tool X is enabled).I have no change to use tool docking endstops because how the tools are parked. That's why I wanted to use a software solution.
I hope this makes it a little clearer
-
Yes, that part I gather. I don't understand why the macro writing isn't working for you. Can you post the exact files you are using?
-
toolchange_set_tool
if state.currentTool==0 M560 P"/sys/tool_active" T0 <!-- **EoF** --> elif state.currentTool==1 M560 P"/sys/tool_active" T1 <!-- **EoF** --> elif state.currentTool==2 M560 P"/sys/tool_active" T2 <!-- **EoF** --> elif state.currentTool==2 M560 P"/sys/tool_active" T3 <!-- **EoF** --> elif state.currentTool==4 M560 P"/sys/tool_active" T4 <!-- **EoF** --> else M560 P"/sys/tool_active" <!-- **EoF** -->
tfree0.g
... M98 P"toolchange_set_tool"
tpost0.g
... M98 P"toolchange_set_tool"
e.g. tool_active (The T1 is indent because of how the macro toolchange_set_tool is built)
T1
in config.g last command
M98 P"tool_active"
-
@Phaedrux
The core problem is, that when I run a macro that has e.g. only a "T0" command in there - the tool is not activate.
So the base question is: What happens in the background if I click "Tool0" in DWC or on Panel due? Because then the Tool is set active and the tpre0.g macro runs -
@taconite said in Which tool is enabled after startup?:
So the base question is: What happens in the background if I click "Tool0" in DWC or on Panel due? Because then the Tool is set active and the tpre0.g macro runs
When using the DWC or Panel to select a tool it would be the same as sending the tool command itself and would behave as described here: https://duet3d.dozuki.com/Wiki/Gcode#Section_T_Select_Tool
-
@Phaedrux Makes total sense but why is there a different behavior?
see:
https://youtu.be/cAUnC5YKdW8 -
-
Thanks for the video, I'm not sure what is going on under the hood here. Hopefully DC42 can get a chance to look more closely soon.
-
@dc42 any idea of the behavior?
-
A macro containing just a T0 or T1 command works for me. Tested on two machines.
-
@dc42 okay this is super strange
have you had a look at the video?
I will try it again but just have no idea why that is -
holy moly! I finally made it work. Thank you for all your support. In my tpreX.g macros I had an abort command which aborted the tool change when there was still a tool in the effector. I removed it and now it is working.
The strange thing is that it was working when manually selecting a tool on PanelDue or on the DWC and I have no idea what kept it from working when running a macro with Tn
-
@taconite what was the abort command?
-
I use the abort command (https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands) to abort things that should not occur (e.g. tool still there after parking) - maybe there is a better way to do that
EDIT: @T3P3Tony
-
@taconite so you had some "if <expression> ... abort" logic to check for certain conditions and then abort if they were true or false? Maybe the issue was the expression was evaluating to true (or false) when it should not have been.
-
I had it this way (tpre.g)
if no tool in effector pick tool else {} display message "Sill tool in effector" abort
I removed the abort. Everything was correct but the execution of a macro with a Tpren.g just did not work with the abort
-
@taconite try it with
break
rather thanabort
-
Hi, this is what i have been thinking and i need this for my toolchanger.
Duet 3 6HC, 3HC and Raspberry pi.If i write to console
M560 P"0:/sys/test"
or run macro like that
M560 P"/sys/test" <!-- **EoF** -->
or whatever else, "Error: M560: Can't open file test for writing" appears...
If i write
M98 P"0:/sys/test
it will run that macro.
Is Raspberry pi somehow causing the trouble here or what?
-
-
@K01571N3N Might be better idea to start a new thread with exactly what you're trying to do. Include firmware version details etc.