Skip to content

[Bug]: Change filament not working #1224

@mark4017

Description

@mark4017

Duet Forum Discussion Thread

https://discord.com/channels/711873626080804914/711873626080804917/1496987879199604818

Which Duet products are you using?

  • Duet2-Wifi
  • Duet2-Ethernet
  • Duet Expansion Breakout Board
  • Duex2
  • Duex5
  • Duet2-Maestro
  • Maestro Dual Driver Expansion
  • Duet3-6HC
  • Duet3-3HC
  • Duet3-1XD
  • Duet3-1LC
  • Duet3-Tool Distribution Board
  • Duet3-Mini5+
  • Duet3-Mini2+
  • Raspberry Pi or other SBC
  • SmartEffector
  • Magnetic Filament Sensor
  • Laser Filament Sensor
  • PT100 Daughterboard
  • Thermocouple Daughterboard
  • PanelDue
  • Other
  • None

Firmware Version

3.6.2

Duet Web Control Version

2.2.1

Are you using a Single Board Computer (RaspberryPi) with your Duet?

  • Yes I use a SBC.
  • No I do not use a SBC.

Please upload the results of sending M122 in the gcode console.

Please upload the content of your config.g file.

M929 P"system.log" S3                                              ;event log file 
;Config.g
; General preferences
G90                                                                ; send absolute coordinates...
M83                                                                ; ...but relative extruder moves
M669 K1                                                            ; select CoreXY mode


; Network
;M551 P"octo"                                                      ;set password
;M552 S-1                                                           ; to reactivate wifi  send M552 S-1 then M552 S1 to activate wifi 
M552 S1 p"ethernet"                                                ; enable ethernet network
M550 P"octo"                                                       ; set printer name also network name
M586 P0 S1                                                         ; enable HTTP
M586 P1 S1                                                         ; enabled FTP

; Drives
M569 P0 S1 D2                                                      ; Y 			 physical drive 0 goes forwards using default driver timings
M569 P1 S1 D2                                                      ; X				 physical drive 1 goes forwards using default driver timings
M569 P2 S0                                                         ; extruder 		 physical drive 3 goes forwards using default driver timings
M569 P3 S1 D2                                                      ; Z LF			 physical drive 3 goes forwards using default driver timings
M569 P4 S0 D2                                                      ; Z RF			 physical drive 4 goes forwards 
M569 P5 S1 D2                                                      ; Z CR			 physical drive 6 goes forwards 
M569 P6 S1                                                         ; spare			 physical drive 7 goes backwards
M569 P7 S0                                                         ; Push extrudeer physical drive 8 goes forwards 
;stepper motor layout
;   rear
;  | 5 |   
;| 3 | 4 |
;  front
;
M584 Y0 X1 Z3:4:5 E2                                               ;:7 ; set drive mapping
M350 X16 Y16 I1                                                    ; configure microstepping with interpolation
M350 Z16 E32                                                       ; configure microstepping 
M92 X80.00 Y80.00 Z320 E1124                                       ; set steps per mm
M566 X300.00 Y300.00 Z100 E150  P1                                 ; set maximum instantaneous speed changes (mm/min) jerk
M203 X30000 Y30000 Z3000 E9000                                     ; set maximum speeds (mm/min)
M201 X5000 Y5000 Z600 E3000                                        ; set accelerations (mm/s^2)
M201.1 X1000 Y1000 Z200                                            ;Set reduced acceleration for special move types (mm/s^2)probing moves,stall detection  

;set current
M906 X1500 Y1500 Z900 E800 I30                                     ; set motor currents (mA) and motor idle factor in per cent
M84 X Y S125                                                       ; Set idle timeout
; Axis Limits bed size x320 y300
; Axis Limits X338 Y355  max travel not bed size
M208 x 0:300 Y0:300 Z0:300                                         ; set axis minima and maxima  set in Tool.g
;M208 X0:310 Y0:270 Z0:300 ; set minimum and maximum axis limits
;M208 S0 X320 Y311 Z320                                              ; set axis maxima "Travel area"  set in tool.g
;M208 S1 X-8 Y0 Z0                                                   ; set axis minima "Travel Area"  set in tool.g


; Endstops
M574 X2 S3                                                         ; configure sensorless endstop, 1 = low end, 2 = high end. s3 = single motor, 
M574 Y2 S3                                                         ; configure sensorless endstop, 1 = low end, 2 = high end. s3 = single motor, 
M574 Z2 S4                                                         ; configure sensorless endstop, 1 = low end, 2 = high end. s3 = single motor, 

;Ball joint 3pl
M671 X-11:319:154 Y-10:-10:320 S35                                 ;leadscrews at front left,front right, rear Center s= max correction factor  must be in same order as M584

; Z-Probes >
M558 K0 P5 C"probe1" H12:6 F500:200 T30000 A3 S0.02                ; set in tool.g ..set Z probe type to unmodulated and the dive height + speeds, T= travel speed !=inverted signal tool.g
G31 K0 Z0                                                          ; clear Z offset
G31 K0 P500 X0 Y0 Z0.0                                                             
                                                              
; Anvil Probe nozzel offset
M558 K1 P8 C"PG11" H12:6 F500:200 T20000 A3 S0.02                  ; set Z probe trigger value, offset and trigger height bigger the posative number the closer to the bed set in Tool.g
G31 K1 Z0                                                          ; clear anvil  offset
G31 K1 P500 X0 Y0 Z0.0     

; Mesh
M557 X15:295 Y15:280 P3                                            ; define mesh grid  P number of points 

; Heaters + temperature sensors
;bed >
M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 A"Bed T °C"         ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"e0heat" T0 Q10                                           ; create bed heater output on bed and map it to sensor 0
M307 H0 R0.838 K0.331:0.000 D3.08 E1.35 S0.90 B0                   ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0                                                            ; map heated bed to heater 0
M143 H0 S130 A2                                                    ; set temperature limit for heater 0 to 120C

;hotend >
M308 S1 P"F.8" Y"rtd-max31865" F50 R430  A"Hot End °C"             ; R430 for PT100 R4300 for PT1000
M950 H1 C"e1heat" T1                                               ; create nozzle heater output on e0heat and map it to sensor 1
M307 H1 R2.750 K0.452:0.000 D5.56 E1.35 S1.00 B0 V11.6             ; disable bang-bang mode for heater  and set PWM limit increase D to stop temperature swing 
M570 H1 P10 T20                                                    ; heat fault detection P number of seconds before fault reported, T <> teperature from setpoint
M143 H1 S350 A2                                                    ; set temperature limit for heater 1 to 280C

;Chamber >     
M308 S2 P"e2temp" Y"thermistor" T100000 B4267 A"Chamber T °C"      ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"e2heat" T2                                               ; create chamber heater output on 1.out0 and map it to sensor 2
M307 H2 R0.384 K0.430:0.000 D8.24 E1.35 S1.00 B0                   ; disable bang-bang mode for the chamber heater and set PWM limit
M570 H2 P10 T20                                                    ; heat fault detection P number of seconds before fault reported, T <> teperature from setpoint
M141 P1 H2                                                         ; map chamber 1 to heater number Hx
M143 H2 S85                                                        ; set temperature limit for heater 

;Dry Box >
M308 S3 P"e0temp" Y"thermistor" T100000 B4267 A"Drybox T °C"       ; configure sensor  as thermistor
M950 H3 C"e3heat" T3                                               ; create chamber heater output on duex.e2heat and map; it to sensor 3
;M307 H3 B1 S1 ; bang bang setup
M307 H3 R0.116 K0.260:0.000 D13.16 E1.35 S1.00 B0                  ; B= (bang-bang mode = 1  PWM =0) s=max PWM, R lower if temperature doesnt rise fast enough, if the heater over shoots loswer the D value 
M141 P2 H3                                                         ; map heater 3 to chamber 2
M143 H3 S80 A1                                                     ; set temperature limit for heater 

;external heater >
;M308 S4 P"e1temp" Y"thermistor" T100000 B4267 A"external heater °C" ; 
;M950 H3 C"e3heat" T3                                               ; create chamber heater output on duex.e2heat and map; it to sensor 3
;M307 H3 B1 S1 
;M307 H3 R0.116 K0.260:0.000 D13.16 E1.35 S1.00 B0                  ; B= (bang-bang mode = 1  PWM =0) s=max PWM, R lower if temperature doesnt rise fast enough
;M141 H3                                                            ; map heater 3
;M143 H3 S80 A1                                                     ; set temperature limit for heater 

;DHT Sensor >
M308 S10 P"A.15" Y"dht22" A"Drybox DHT°C[C]"
M308 S11 P"S10.1" Y"dhthumidity" A"Dry box Humidity[%]"

;BME Sensor >
;m308 s11 y"bme280" p"spi.cs6" a"Ambient temp"
;m308 s12 y"bme-pressure" p"s11.1" a"Pressure[hPa]"
;m308 s13 y"bme-humidity" p"s11.2" a"Humidity[%]"

; highest tmc driver temp
;M308 S7 Y"drivers" A"max tmc temp"                                 ; Highest driver temp
;M308 S8 Y"drivertemp" p"S7.0" A"A Drv 0"                           ; Motor A driver temp
;M308 S9 Y"drivertemp" p"S7.1" A" B Drv 1"                          ; Motot B driver temp
;M308 S12 Y"drivertemp" p"S7.2" A"Ext Drv 2"                        ; Motor A driver temp


;Neo Pixe LED
M950 E0 C"neopixel" T1 Q3000000                                    ; create a RGB Neopixel LED strip on the LED port and set SPI frequency to 3MHz



;Driver A >
;M308 S3 P"e0temp" Y"thermistor" T2000 B-746.91 A"Stepper Driver A °C" ; 

;Driver B >
;M308 S4 P"e1temp" Y"thermistor" T2000 B-746.91 A"Stepper Driver B °C" ; 

;stepper motor
M308 S5 P"e3temp" Y"thermistor" T100000 B4260 A"Extruder Motor °C" ; 



;~~~~~~~~~~~~~~~~~~~~ Fans ~~~~~~~~~~

; Cpap
M950 F7 C"!fan0" Q25000                                             ; create fan and set its frequency  ! invert control
M106 p7 S1 H-1 L0.25 X0.6 C"Cpap Fan" B1                            ; S fan speed , L minium fan speed ,  x maxium fan speed  B blip time in sec,  H-1 disable thermostat mode ,

;extruder Heat sink >
M950 F1 C"fan1" Q250                                                ; create fan and set its frequency
M106 P1  S1 H1 T35	C"Extruder Heatsink Fan" B1                     ; Extruder Heatsink Fan	

;Dry Box
M950 F3 C"fan3" Q20000                                             ; create fan and set its frequency 
;M106 P3 S0.1 H3 T22:45  C"Dry Box Fan"	
M106 P3 S0 H-1  C"Dry Box Fan"	B2                                  ; Dry box 
;M106 P3 S0 H1 T35 L10  C"Dry Box Fan"


;Part cooling 
M950 F0 C"fan5" Q25                                                ; create fan and set its frequency
M106 P0 S0 H-1	C"Part cooling Fan" L0.25  B0.2                     ; Part cooling


;~~~~~~~~~~~~~~~~ outputs ~~~~~~~~~~~~~~~~~~
;filter
M950 F2 C"hbed" Q25000                                             ; create fan and set its frequency 
M106 P2 S0 H-1  C"Filter Fan" B1                                   ; Filter fan

;12V output
;M950 P7 C"!fan0" Q25000
;M42 P7 S0.5

;ROS
M591 P1 C"e2stop" S1 D0                                            ;d extrurder,s1 simple senor ,Sn 0 off Sn2 on all the time 



; Tools
M563 P0 D0 H1 F0                                                   ; 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
;M567 P0 E1.0  ;:1.0                                               ; use this to get the 2 exturudes to work at the same time
; Tool
T0                                                                 ; select first tool

;LIS3DH Input shaping
;M955 P0 C"PE_12+PE_10" I20
M593 P"mzv" F43

;External Buttons
M950 J1 C"!e4stop"                                                 ; config input pin	switch NO  connected to io2 and Gnd 
M581 P1 T0 C0                                                      ; T0 = emergency stop on trigger; T1 = pause print; T{N} = runs the macro "sys/trigger{N}.g", rising edge S1 falling edge S0
M950 J2 C"!e1stop"                                                 ; config input pin	switch NO  connected to io and Gnd 
M581 P2 T5 C0                                                      ; Print Again  macro trigger5.g
M582 T0 T5                                                         ; Check External Trigger
;debug
M552 s-1                                                           ; -1 = disable WiFi module
M111 P14 S0                                                        ;debug  wifi/ethernet s1 on s0 off
M552 s1 p"ethernet"                                                ;set up for ethernet 

;service interval calculate 1000 hours into seconds 1000 * 60 *60  = 3600000
if !exists(global.serviceInterval)
    global serviceInterval = 14000.0
if !exists(global.cumulativeTime)
	global cumulativeTime = 0   

; Custom macros
M98 P"0:/sys/global.g"                                             ; Define Global variables 
M400
M98 P"/macros/showTotalPrintTime.g"                                ;update printtime in BtnCmd
M98 P"0:/sys/tool.g"                                               ; load tool settings
echo"tool"
;M98 P"0:/sys/totalValue.g"
;echo"total value"
M400
echo"start startup"
M98 P"/macros/startup_sequence"
echo"end startup"

Please upload the content of any other releveant macro files.

;update values below 
echo "L1"
var filamentType = "ASA"                                                                    ; filamenmnt type
var toolT =240                                                                              ; set hotend temperature     
var dryboxT = 65                                                                            ; set dry box temperature    
var purgeLength = 100                                                                       ; set the length of filament to purge
echo "L2"
; Don't touch anyting beyond this point(unless you know what you're doing)!!
echo "loading", {var.filamentType}
M564 S0                                                                                     ; let travel outside print zone
M400                                                                                        ; Wait for moves to finish
G91 
echo "L3"                                                                                        ; Relative positioning
M83                                                                                         ; Extruder relative positioning
G90                                                                                         ; Absolute positioning
M98 P"/macros/park_bucket"                                                                  ; Move the nozzle to the bucket defined in the settings section
M400       
echo "L4"                                                                                 ; Wait for moves to finish
M291 P"Please wait while the nozzle is being heated up" R{"Loading " ^ var.filamentType} T5 ; Display message
M568 P0 S{var.toolT}                                                                        ; Set current tool temperature
M116  
echo "L5"                                                                                       ; wait for temperature to be reached 
M291 S4 R"Inset filament" P"Is filament inserted, then press OK." K{"OK","SKIP",}
if input == 0
  M291 P"Feeding filament..." R{"Loading " ^ var.filamentType} T5                           ; Display new me0mode
G1 E{var.purgeLength} F300                                                                  ; purge filament at 3000mm/min
G4 P1000                                                                                    ; Wait one second
G1 E-3 F180                                                                                 ; Retract filament at 1800mm/min
M400    
echo "L6"                                                                                     ; Wait for moves to complete
M292                                                                                        ; Hide the message
G10 S0                                                                                      ; Turn off the heater again
; Set Dry box Temperature 
M291 P{"Dry box temperature being set to " ^ var.dryboxT^"°C"} T5                           ; Display message
M141 P2 S{var.dryboxT}                                                                      ; set drybox temperature
M143 H3 S{var.dryboxT+10} A2   
echo "L7"       
; "SKIP"
if input == 1 
  echo "skipped"
M400                 

;update values below 
var filamentType = "ASA"                                                                      ; filamenmnt type
var toolT =240                                                                                ; set hotend temperature     
var dryboxT =20                                                                               ; set dry box off temperature    
var purgeLength = 60                                                                          ; set the length of filament to purge
var unloadLength = -120                                                                        ; unload length 
echo "U1"
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
; Don't touch anyting beyond this point(unless you know what you're doing)!!
echo "Going to unload", {var.filamentType}
M564 S0                                                                                       ; let travel outside print zone
M400                                                                                          ; Wait for moves to finish
G91                                                                                           ; Relative positioning
M83                                                                                           ; Extruder relative positioning
G90                                                                                           ; Absolute positioning
M98 P"/macros/park_bucket"  
echo "U2"                                                                  ; Move the nozzle to the bucket defined in the settings section
M400                                                                                          ; Wait for moves to finish
M291 P"Please wait while the nozzle is being heated up" R{"Unloading " ^ var.filamentType} T5 ; Display message
M568 P0 S{var.toolT}                                                                        ; Set current tool temperature
M116                                                                                        ; wait for temperature to be reached 
M291 P"Unfeeding filament..." R{"Unloading " ^ var.filamentType} T5                           ; Display new message
M83    
echo "U3"                                                                                       ; Extruder to relative mode
G1 E{var.unloadLength} F300                                                                   ; purge filament at 3000mm/min
G4 P1000                                                                                      ; Wait one second
M400                                                                                          ; Wait for moves to complete
M292                                                                                          ; Hide the message
G10 S0                                                                                        ; Turn off the heater again
; Set Dry box Temperature 
M291 P{"Dry box temperature being set to " ^ var.dryboxT^"°C"} T5    
echo "U4"                         ; Display message
M141 P2 S{var.dryboxT}                                                                        ; set drybox temperature

Details specific to your printer.

core xy

Links to additional info.

Image

What happened?

can load and unload filaments from the tool option in DWC , but the change filament will only unlad the filament .

Metadata

Metadata

Assignees

Labels

bugBug that has been reproduced

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions