Which tool is enabled after startup?
-
@taconite said in Which tool is enabled after startup?:
3.1.0
Upload this zip file to the system tab to update to 3.2
https://github.com/Duet3D/RepRapFirmware/releases/download/3.2/Duet2and3Firmware-3.2.zip
-
Sorry for the late reply. I updated to 3.2. and it seems I found an error - but need to investigate it further.
@dc42 You are correct. This is absolutly working - the file is created. The only thing that is not working - and I kind of feel stupid about it. When I try to run the Macro e.g. M98 - it just says "Changing tool" but nothing is happening. Normally when I just select the tool manually it is set active
-
Any idea why this is happening?
-
@taconite said in Which tool is enabled after startup?:
and it seems I found an error - but need to investigate it further.
What did your investigation turn up?
-
@Phaedrux Oh sry totally forgot about that. I thought I found a bug in 3.2 and rolled back to 3.1.0 but it happens in both.
When the printer is doing a long travel move that is part of the purging it seems like (need to measure it to prove it) the voltage of the power supply is dropping and therefore one GPIO pin of the Duex5 I am using is toggeling from 1 --> 0 --> 1 in a very short period of time and therefore a relay is switched on which is driving the lock mechanism of the tool change.
I reduced the speed of the travel move and now it happens very rarely. That is the only reason I could come up with.But has nothing to do with the original topic (but I thought it may have because I just recognized it when going to 3.2)
But the running of the macro is still not working. It just tells me in DWC "changing Tool" but nothing happens
-
@taconite said in Which tool is enabled after startup?:
When I try to run the Macro e.g. M98 - it just says "Changing tool" but nothing is happening. Normally when I just select the tool manually it is set active
Is the macro exactly like the one shown by dc42?
-
@dc42 said in Which tool is enabled after startup?:
A variable would only solve that if it was persistent between power cycles.
On my tool changer I avoid the need for additional wires and inputs on the main board by using a tool board for each tool, and connecting the dock sense switches to those.
If you have a spare analog input, you could use that for the effector docking sensor, and use different value resistors on each tool.
This is a fun way! How can you read the value of a resistor?
-
-
@Phaedrux
do you have an idea?
btw. the macro "toolchange_set_tool" is called in tfree aswell -
@taconite Sorry, to be honest I'm not even sure what you're trying to do.
-
@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.