Problem with tool change - T command
-
Hello. My machine has a dual extruder printhead, I have a lifting mechanism wichs lift up T1 w using a servo. I have managed to configure everything but Im facing a weird problem now: im using a octpoprint interface just as a comment. Printing with T0 works perfect. But now while trying to print with a dual extrusion print, the T1 is doing "something" and just calling to T1 makes octpprint to crash down.
Im sure it is a configuration issue because I can call T1 withot any problem if I use another printer profile in the slicer and use another printer, octoprint works perfectly, so there is something related to the config in my duet and octoprint.I have configured my tool changing in this way:
; tfree0.g
; called when tool 0 is freed
;
; generated by RepRapFirmware Configuration Tool
G10 ; retract 6mm for standby
G1 X62 Y0 F5000 ; moves to origin for tool change; tfree1.g
; called when tool 1 is freed
;
; generated by RepRapFirmware Configuration Tool
G10 ;retract
G1 X0 Y0 F5000 ; move to origin; tpost0.g
; called after tool 0 has been selected
;
; generated by RepRapFirmware Configuration Tool
; Wait for set temperatures to be reached
M116
G11; tpost1.g
; called after tool 1 has been selected
;
; generated by RepRapFirmware Configuration Tool
; Wait for set temperatures to be reached
M116
G11; tpre0.g
; called before tool 0 is selected
;
; generated by RepRapFirmware Configuration Tool
M280 P0 S92; tpre1.g
; called before tool 1 is selected
;
; generated by RepRapFirmware Configuration Tool
M280 P0 S47My config.g:
; Configuration file for Duet 3 (firmware version 3) ORIGINAL
; executed by the firmware on start-up
;; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Printer" ; set printer name
M669 K1 ; select CoreXY mode; Network
M552 S0 ; disable network; Drives
M569 P0.0 S0 D2 ; physical drive 0.0 goes forwards X Se invirtieron los cables tambien. Se agrego D3 para stealhtchop3
M569 P0.1 S1 D2 ; physical drive 0.1 goes forwards Y Ultimo cambio: de S0 a S1. Se agrego D3 para stealhtchop3
M569 P0.2 S1 D2 ; physical drive 0.2 goes forwards
M569 P0.3 S1 D2 ; physical drive 0.3 goes reverse
M569 P0.4 S0 D2 ; physical drive 0.4 goes forwards
M569 P0.5 S1 D2 ; physical drive 0.5 goes backwardsM584 X0.0 Y0.1 Z0.2:0.3 E0.4:0.5 ; set drive mapping
M350 X16 Y16 Z32 E16:16 I1 ; configure microstepping with interpolation
; M92 X160.32 Y160.32 Z3200.00:3200.00 E827.22 set steps per mm
M92 X80.16 Y80.16 Z3200.00 E428.25:428.25 ; set steps per mm
M566 X900.00 Y900.00 Z300.00 E450:450 ; set maximum instantaneous speed changes (mm/min)
M203 X18000.00 Y18000.00 Z240.00:240.00 E2400.00 ; set maximum speeds (mm/min)
M201 X1000.00 Y1000.00 Z20.00:20.00 E500.00 ; set accelerations (mm/s^2)
M906 X1500 Y1500 Z900:900 E1000:1000 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X400 Y350 Z400 S0 ; set axis maxima; Endstops
M574 X1 S3 ; configure sensorless endstop for low end on X
M574 Y1 S3 ; configure sensorless endstop for low end on Y
M574 Z2 S2 ; configure Z-probe endstop for low end on Z; Z-Probe
M558 P5 C"^!io3.in" H5 F120 T18000 ; set Z probe type to switch and the dive height + speeds
G31 P500 X0 Y28.5 Z0.245 ; set Z probe trigger value, offset and trigger height
M557 X25:310 Y27:312 S57:57 ; define mesh grid; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
;M307 H0 B0 D30 S1.00 ; enable PID para camara, deadtime en 30 segundos
M307 H0 B1 S1.00 ; enable bang-bang mode for the chamber heater and set PWM limit
;M140 H0 ; map heated bed to heater 0
M141 H0 ; map chamber to heater 0
M143 H0 S130 ; set temperature limit for heater 0 to 130C
M308 S1 P"temp1" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M308 S2 P"temp2" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2
M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit; Fans
;M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency
;M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
;M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency
;M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on; Tools
M563 P0 D0 H1 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
M563 P1 D1 H2 define tool 1
G10 P1 X-61 Y0 Z-2.3 set tool 1 axis offsets
G10 P1 R0 S0 set initial tool 1 active and standby temperatures to 0C; Custom settings are not defined
M915 X Y S2 R0 F0 ; sensroless sensitivity; movments without homing
M564 H0; Miscellaneous
M207 S6 R0.2 F1800 ;firmware retraction
M83 ; relative extrusion
M501 ; load saved parameters from non-volatile memory
M950 S0 C"0.out9" ; servo "0" in pin out9
M280 P0 S92 ; move servo to rest position
M376 H30 ; cancell mesh levelling at 30 mm
M143 S450 ; set max temp to 450 degrees for T0
M143 H2 S450 ; set max temp to 450 for T1
T0 ; select first toolAnd the start of the gcode that Im trying to use to calibrate xy offset and the one that is making me troubles:
; generated by SuperSlicer 2.2.53 on 2020-11-08 at 12:33:56 UTC
;
; external perimeters extrusion width = 0.42mm
; perimeters extrusion width = 0.45mm
; infill extrusion width = 0.45mm
; solid infill extrusion width = 0.45mm
; top infill extrusion width = 0.42mm; external perimeters extrusion width = 0.42mm
; perimeters extrusion width = 0.45mm
; infill extrusion width = 0.45mm
; solid infill extrusion width = 0.45mm
; top infill extrusion width = 0.42mm; object:{"name":"xy-nozzle-offset-calibration-0","id":"xy-nozzle-offset-calibration-0.1.stl id:0 copy 0","object_center":[175.000000,175.000000,0.000000],"boundingbox_center":[175.000000,175.000000,0.150000],"boundingbox_size":[64.000000,64.000000,0.300000]}
M107
T0
M141 S100
M116
G28
M141 S80
M116
G4 S300
M104 S150
M116
G29
G29 S1
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
T1
G10 S240 P1 ; set temperature
M116 ; wait for temperature to be reachedLook at the T1 calling. If I comment that line, the goce is run (through T0 occourse) without problems. So the trigger is that T1.
Any ideas about this problem?
Thanks in advance -
An important data: I get this error when calling T1:
Recv: Warning: Tool 1 was not driven because its heater temperatures were not high enough or it has a heater fault
It is not a heater fault, I checked and heater is working perfect , also on T0
-
The only thing extrusion related in your tool change files is the unretract command.
; tpost0.g
; called after tool 0 has been selected
;
; generated by RepRapFirmware Configuration Tool
; Wait for set temperatures to be reached
M116
G11; tpost1.g
; called after tool 1 has been selected
;
; generated by RepRapFirmware Configuration Tool
; Wait for set temperatures to be reached
M116
G11What temp is T1 at when that command is executed?
-
@Phaedrux What Iposted are the first lines of the gcode of the printing file.
In there you can see:
T0 start at 150 degrees just for doing the bed levelling. It heats up to 150, executes de G29 then switches to T1. In this initial switch T1 os cold because the slicer has not sent any heating command for T1. Inmediatle after calling T1, a G10 S240 is excuted.
I understand where are you going: Im trying to execute a cold extrusion here at the very starting of the file... The retraction of T0 should be possible, but not the unretract of T1 right?
Ideas how to solve this configuration issue? -
I guess you could either change the cold extrusion limits fo retraction, or ensure that T1 is pre-heated at the start of the print as well as T0. Perhaps with a standby temp.
https://duet3d.dozuki.com/Wiki/Gcode#Section_M302_Allow_cold_extrudes
That doesn't really solve the problem of octoprint crashing when that error is thrown. Can you try adding
M555 P2
to your config.g to ensure that RRF is sending messages over USB formatted as marlin would.It's been a while since I've used octoprint, but I think there is an option to set behaviour on errors. Perhaps take a look through the settings.
-
@Phaedrux I dont know if you saw this info:
An important data: I get this error when calling T1:
Recv: Warning: Tool 1 was not driven because its heater temperatures were not high enough or it has a heater fault
It is not a heater fault, I checked and heater is working perfect , also on T0
What is the meaning of that error?
-
As I said. It's a cold extrusion warning. Probably from the G11 on a cold tool.