"Error: No Tool selected" Upon seemingly successlful toolchange
-
Hello,
I'm running into an interesting issue with my custom toolchanger.
Upon commanding toolchanges with T0/T1, it executes everything as expected, unloads the current tool if one is loaded, then loads the new tool etc. DWC indicates that the newly selected tool is active.
However, after each change, I get an error message: "Error: No tool selected" despite the toolchange seemingly being successful.
I also get that very same error right after startup (I do not have any T commands in my config.g)
Startup:
power up + 00:00:00 [info] G10 P0 X-9 Y39 Z-5 power up + 00:00:00 [info] G10 P0 R0 S0 power up + 00:00:00 [info] G10 P1 X-9 Y39 Z-5 power up + 00:00:00 [info] G10 P1 R0 S0 power up + 00:00:00 [warn] Error: No tool selected
Manual commands:
15.3.2021, 12:45:44 T1 Error: No tool selected 15.3.2021, 12:45:31 T0 Error: No tool selected 15.3.2021, 12:45:15 T1 Error: No tool selected
Duet 2 Wifi + Duex5 running 3.2.2
config.g
; Configuration file for Duet WiFi (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sun May 10 2020 15:03:19 GMT+0200 (Mitteleuropäische Sommerzeit) ; General preferences M929 S3 ;enable debug logging M575 P1 S1 B57600 ;Enable PanelDue Port G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"V-Core Pro" ; set printer name M667 S1 ; select CoreXY mode ; Network M552 S1 ; enable network ; Drives M569 P0 S0 ; physical drive 0 goes forwards X/Y M569 P1 S0 ; physical drive 1 goes forwards X/Y M569 P2 S0 ; physical drive 1 goes forwards Coupler M569 P3 S0 ; physical drive 2 goes forwards E1 M569 P4 S0 ; physical drive 2 goes forwards E2 M569 P7 S0 ; physical drive 3 goes forwards Z1 M569 P8 S0 ; physical drive 3 goes forwards Z2 M569 P9 S0 ; physical drive 3 goes forwards Z3 M584 X0 Y1 C2 Z7:8:9 E3:4 ; set drive mapping (motion system) M584 E3:4 ; set drive mapping (extruders) M671 X-43:139:326 Y76:370:76 S20 ; set Z leadscrew positions M92 X160.00 Y160.00 C200.00 Z800.00 ; set steps per mm M350 X16 Y16 C16 Z16 I1 ; configure microstepping with interpolation M566 X500 Y500 C2 Z50 ; set maximum instantaneous speed changes (mm/min) M203 X30000 Y30000 C10000 Z2000 ; set maximum speeds (mm/min) M201 X3000 Y3000 C500 Z500 ; set accelerations (mm/s^2) M906 X1800 Y1800 C500 I30 ; set motor currents (mA) and motor idle factor in per cent M906 Z1400 I100 ; set motor currents (mA) and motor idle factor in per cent M906 E1100:1100 I100 ; set motor currents (mA) and motor idle factor in per cent (Flex3Drive) M84 S30 ; Set idle timeout ;M204 P1500 T3000 ;M593 F40 ; cancel ringing ;=================== Flex3Drive ====================== M92 E8600:8600 ; set steps per mm (Flex3Drive G5) M350 E8:8 I0 ; configure microstepping (Flex3Drive G5) M566 E10:10 ; set maximum instantaneous speed changes (mm/min) (Flex3Drive) M203 E4000:4000 ; set maximum speeds (mm/min) (Flex3Drive) M201 E150:150 ; set accelerations (mm/s^2) (Flex3Drive) ;==================================================== ;=================== Titan ========================== ;M92 E837 ; set steps per mm (Titan) ;M350 E16 I1 ; configure microstepping (Titan) ;M566 E500 ; set maximum instantaneous speed changes (mm/min) (Titan) ;M203 E3600 ; set maximum speeds (mm/min) (Titan) ;M201 E1000 ; set accelerations (mm/s^2) (Titan) ;==================================================== ; Axis Limits M208 X0:305 Y0:250 C0:250 Z0:310 ; set axis minima & maxima ; Endstops M574 X2 S1 P"xstop" ; configure active-high endstop for high end on X via pin xstop M574 Y1 S1 P"ystop" ; configure active-high endstop for high end on Y via pin ystop M574 Z0 ; No Z-Endstop (use as probe instead) M574 C1 S3 ; Stall detect coupler at low end of its range ; Z-Probe M558 P8 C"zstop" H3 F1000 T15000 ; set Z probe type to bltouch and the dive height + speeds G31 X0 Y0 Z0 P200 ; set Z probe trigger value, offset and trigger height M557 X15:305 Y0:240 P10 ; define mesh grid ;Stall Detection M915 C S6 F0 H200 R0 ; Coupler ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0 M143 H0 S121 ; set temperature limit for heater 0 to 121C M307 H0 A305.7 C444 D2.9 V24.2 B0 ; Bed PID Tuning M140 H0 ; map heated bed to heater 0 M308 S1 P"e0_temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e0temp M950 H1 C"e0heat" T1 ; create nozzle heater output on e0heat and map it to sensor 1 M143 H1 S301 ; set temperature limit for heater 1 to 301C M308 S2 P"e1_temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin e1temp M950 H2 C"e1heat" T2 ; create nozzle heater output on e1heat and map it to sensor 2 M143 H2 S301 ; set temperature limit for heater 2 to 301C M302 S120 R120 ;Cold extrusion settings M307 H1 R4.065 C157.9 D2.14 S1.00 V24.2 ; M376 H20 ; Set bed correction taper ; Fans M950 F0 C"duex.fan3" ; Hotend Fan Tool 1 M106 P0 S255 L255 H1 T50 ; Hotend Fan Tool 1 M950 F1 C"duex.fan4" Q50 ; Layer Fan Tool 1 M106 P1 S0 H-1 ; Layer Fan Tool 1 M950 F2 C"duex.fan5" ; Hotend Fan Tool 2 M106 P2 S255 L255 H2 T50 ; Hotend Fan Tool 2 M950 F3 C"duex.fan6" Q50 ; Layer Fan Tool 1 M106 P3 S0 H-1 ; Layer Fan Tool 1 ; Tools M563 P0 D0 H1 F1 ; define tool 0 G10 P0 X-9 Y39 Z-5 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 D1 H2 F3 ; define tool 1 G10 P1 X-9 Y39 Z-5 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C T-1 ;Dock present switches M950 J0 C"duex.e2stop" ; Tool 0 Dock switch M950 J1 C"duex.e3stop" ; Tool 1 Dock switch M950 P1 C"duex.e5heat" ;Light switch PWM ;M591 D0 P1 C"e0stop" S1 ;Filament Sensor E0 ;Pressure Advance ;M572 D0 S0.2 ; ; Miscellaneous M703 ; Apply filament specific settings if any is loaded M98 P"/macros/Misc/Lights/On"
What am I doing wrong here?
-
post a set of tool change files.
e.g. tpre0, tpost0 and tfree0 -
tpre0
; tpre0.g ; called before tool 0 is selected M98 P"/macros/Toolchanging/Coupler - Unlock" ; unlock Coupler M564 S0 ; allow movement outside the normal limits M98 P"/macros/Toolchanging/Advanced/MoveToDock/T0" M98 P"/macros/Toolchanging/Coupler - Lock" ; close Coupler ;WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ;if you are using non-standard length hotends ensure the bed is lowered enough BEFORE undocking the tool! ;G91 ;G1 Z10 F1000 ;G90 G1 Y250 F5000 ; move out ;M208 Y66 ; set Y max for this tool M564 S1 ; apply the normal limits again M703 ;restore filament settings
tpost0
; tpost0.g ; called after tool 0 has been selected ;heatup M116 P0 ;prime nozzle ;M98 P"prime.g" M106 R1 ; restore print cooling fan speed
tfree0
; tfree0.g ; called when tool 0 is freed G91 G1 Z4 F1000 ; drop the bed G90 M564 S0 ; allow movement outside the normal limits M98 P"/macros/Toolchanging/Advanced/MoveToDock/T0" M98 P"/macros/Toolchanging/Coupler - Unlock" ; open coupler M106 P2 S0 ; fan off G53 G1 Y280 F50000 ; move Out M564 S1 ; apply the normal limits again
-
Can't see anything wrong there. Just for completeness, are you also willing to share your lock, unlock and movetodock macros?
-
Sure, nothing fancy to see there:
MoveOut:
G91 G1 Y-50 F10000 G90
Lock:
G90 G1 C230 F50000
Unlock:
G90 G1 C120 F50000
-
can you comment out line 120 (T-1) in your config.g
that should eliminate the startup issue as no tool will be loaded at startup unless you tell it to.you don't have anything odd in the config.g for the filament do you?
-
@jay_s_uk Wow, totally missed that command
However, it doesn't change anything, I still get the No Tool error on startup and toolchange.Filament configs literally only include a retraction settings call, nothing else (and no filaments are loaded atm)
-
Upon further watching, it appears that the "No Tool selected" actually pops up between toolchanges, ie after storing away one and before picking up the next.
@dc42 can you tell me which specific actions would spawn the "Error: No Tool selected" message for console/popup?Edit: Found the problem. It was calls to M703 in tpreN.g, I guess since the tool isn't technically loaded there yet, it can't apply the correct filament settings.
Moved the calls to tpostN.g as well as removing the M703 from config.g and it works now