Tool w Toolboard knocked off didn't stop, fire hazard
-
I have a tool changer system and my tool, hemera extruder with toolboard 1LC and tool selected switch, was knocked off the tool head somehow and sat on the heated bed. Since it has a tool selected ID switch when it was dislodged it should have detected the disconnect (no tool change command issued) it should have stopped extruding and turned off the heater and also stopped/paused the printing (moving the XYZ axis). It didn't do any of that, instead it kept on printing and extruding until it was done printing and then pushing the tool off the bed onto the wooden table (CoreXY and move the carriage back left, out of the way, when finished). Luckily I was here and heard a loud thump, ran in and kept it from starting a fire.
If you have a tool changer with a loaded/mounted tool and has a switch to detect which tool and that it is mounted and all of a sudden gets unmounted or knocked off, during printing, without a command to change tools it should stop or pause the print and stop extruding and turn off the heater! And of course give an error message.
Duet 3, toolboard 1LC using version 3.2-RC2. I looked at V3.2 notes and didn't see any mention of this issue.
-
How are you monitoring the switch?
Are you using daemon.g? -
Oh forgot to mention Duet 3 is in standalone mode. I shouldn't have to monitor it, the toolboard 1LC has a tool mounted switch switch connection, the firmware should be monitoring it just like it does with nozzle temperature to make sure the heater didn't fall out.
There also was a time before that it wasn't fully mounted and the system gave me a message that I was attempting to extrude from unselected tool but still continued printing with that tool just not extruding.
-
Hi @BeosDoc It is possible to configure a switch to act as a trigger so that if the switch disconnects it pauses the print. Please share your config.g to see if its setup that way.
This is not something that is automatic as not everyone has a tool board actually on a tool changer with multiple tools, so not everyone has a switch.
-
That makes sense. Where's the documentation on how to do that?
Obviously my config.g doesn't have it but here it is anyway:
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.4 on Sat Nov 14 2020 22:27:05 GMT-0600 (CST) ; General preferences G4 S1 ; Delay for 1 second to give toolboard time to catch up on reset G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Tron Duet3" ; set printer name M669 K1 ; select CoreXY mode ; Network M552 Pxxx.xxx.x.xxx S1 ; enable network and set IP address M553 P255.255.255.0 ; set netmask M554 Pxxx.xxx.x.x ; set gateway M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S0 ; physical drive 0.0 goes backwards M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S1 ; physical drive 0.2 goes forwards (Z FL(front left)) M569 P20.0 S0 ; physical drive 1.0 goes backwards M569 P0.3 S1 ; physical drive 0.3 goes forwards (Z BL) M569 P0.4 S1 ; physical drive 0.4 goes forwards (Z FR) M569 P0.5 S1 ; physical drive 0.5 goes forwards (Z BR) M584 X0.0 Y0.1 Z0.2:0.3:0.5:0.4 E20.0 ; set drive mapping M350 X16 Y16 Z16:16:16:16 E16 I1 ; configure microstepping with interpolation M92 X200.00 Y200.00 Z800.00:800.00:800.00:800.00 E408.00 ; set steps per mm M566 X900.00 Y900.00 Z100.00:100.00:100.00:100.00 E800.00 ; set maximum instantaneous speed changes (mm/min) M203 X48000.00 Y48000.00 Z2000.00:2000.00:2000.00:2000.00 E10000.00 ; set maximum speeds (mm/min) M201 X1500.00 Y1500.00 Z400.00:400.00:400.00:400.00 E2000.00 ; set accelerations (mm/s^2) M906 X2100 Y2100 Z1600:1600:1600:1600 E1100 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X400 Y548 Z390 S0 ; set axis maxima M671 X-5:-5:355:355 Y20:370:370:20 S10 ; leadscrews near each corner ; Endstops M574 X1 S1 P"io0.in" ; configure active-high endstop for low end on X via pin io0.in M574 Y1 S1 P"io1.in" ; configure active-high endstop for low end on Y via pin io1.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M558 P9 C"^io7.in" H10 F120 T9000 A4 ; set Z probe type to unmodulated and the dive height + speeds M950 S0 C"io7.out" G31 P500 X43 Y-22 Z2.18 ; set Z probe trigger value, offset and trigger height. add for closer, sub for farther M557 X38:390 Y00:370 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"Bed" ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out1" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.638 C553.0 D3.91 S1.00 V31.5 ; PID mode for temp0 M140 H0 ; map heated bed to heater 0 M143 H0 S160 ; set temperature limit for heater 0 to 160C M308 S1 P"20.temp0" Y"pt1000" R2200 A"NzT0" ; configure sensor 1 as PT1000 on pin 1.temp0 M950 H1 C"20.out0" T1 ; create nozzle heater output on 1.out0 and map it to sensor 1 M307 H1 B0 S0.75 ; disable bang-bang mode for heater and set PWM limit ; Fans M950 F3 C"20.out2" Q5000 ; create fan 4 on pin 20.out2 and set its frequency M106 P3 S255 H1 T45 C"Hemera Fan" ; set fan 3 value. Thermostatic control is turned on M950 F0 C"out7" Q500 ; create fan 1 on pin out3 and set its frequency M106 P0 S0 H-1 C"L Fan" ; set fan 1 value. Thermostatic control is turned off M950 F1 C"out8" Q500 ; create fan 2 on pin out4 and set its frequency M106 P1 S0 H-1 C"R Fan" ; set fan 2 value. Thermostatic control is turned off M950 F2 C"out9" Q500 ; create Nozzle LEDs on pin out9 M106 P2 S0 H-1 C"Noz LED" ; Tools M563 P0 D0 H1 F0:1 S"Tool 0" ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Filament Sensor ;M591 D20 P1 C"0.io1.in" S1 ; Detect filament issues M591 D0 P1 C"20.io1.in" S1 ; Set up the dock indicator switches on the Hemera tools M950 J0 C"20.io2.in" ; Custom settings M308 S2 Y"mcu-temp" A"MCU" ;M912 P0 S-8.4 ; Miscellaneous ;M575 P1 S1 B57600 ; enable support for PanelDue
-
use an external trigger.
you'll probably have to have some if statements in etc
e.g. if T1 then...
https://duet3d.dozuki.com/Wiki/Gcode#Section_M581_Configure_external_trigger -
Sorry, that kinda points me in the right direction but doesn't look like that would cover what is needed.
You can have if statements in g files?
-
@BeosDoc yes. Using meta code.
So when the switch is triggered, the code would then check if that particular tool is active.
https://duet3d.dozuki.com/Wiki/GCode_Meta_Commands