Firmware 3.4b7 - firmware retraction bug
-
@phaedrux said in Firmware 3.4b7 - firmware retraction bug:
@Diamondback No it shouldn't damage anything. I think what happens is that the back emf equals the input voltage and the driver basically detects that as a possible disconnect.
Have you shared your full config.g yet?
Here you go:
; 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 M669 K1 ; select CoreXY mode ; Network M552 S1 ; enable network ; Drives M569 P0 S0 ; stepper X/Y M569 P1 S0 ; stepper X/Y M569 P2 S1 ; stepper Coupler M569 P3 S0 ; stepper E1 M569 P4 S0 ; stepper E2 M569 P5 S0 ; stepper E3 M569 P6 S0 ; stepper E4 M569 P7 S0 ; stepper Z1 M569 P8 S0 ; stepper Z2 M569 P9 S0 ; stepper Z3 M584 X0 Y1 C2 Z7:8:9 ; set drive mapping (motion system) M584 E3:4:5:6 ; set drive mapping (extruders) ; Axis Limits if !exists(global.hasRunInit) global minY = -266 global maxY = 115 M208 X-148:160 Y{global.minY,global.maxY} ; set axis minima & maxima RRF 3.4 M208 C0:250 Z-2:270 ; set axis minima & maxima M671 X-203:-12:216 Y-179:222:-179 S30 ; set Z leadscrew positions M92 X80.00 Y80.00 C200.00 Z400.00 ; set steps per mm M350 X16 Y16 I1 ; configure microstepping with interpolation M350 C16 Z16 I1 ; configure microstepping with interpolation M566 X600 Y600 C2 Z70 ; set maximum instantaneous speed changes (mm/min) M203 X30000 Y30000 C10000 Z3000 ; set maximum speeds (mm/min) M201 X5000 Y5000 C500 Z500 ; set accelerations (mm/s^2) was: 2k M204 P600 T5000 M906 X2100 Y2100 I50 ; set motor currents (mA) and motor idle factor in per cent M906 C500 I30 ; set motor currents (mA) and motor idle factor in per cent M906 Z1800 I50 ; set motor currents (mA) and motor idle factor in per cent M906 E500:500:500:500 I30 ; set motor currents (mA) and motor idle factor in per cent (2x Flex3Drive 2x LGX) M84 S30 ; Set idle timeout ;=================== Extruder ====================== M92 E408:408:408:408 ; set steps per mm M350 E16:16:16:16 I1 ; configure microstepping M566 E500:500:500:500 ; set maximum instantaneous speed changes (mm/min) ; used to be at 1200 M203 E15000:15000:15000:15000 ; set maximum speeds (mm/min) M201 E3000:3000:3000:3000 ; set accelerations (mm/s^2) ;==================================================== ; 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) ; Z-Probe if !exists(global.hasRunInit) global zProbeSpeedFeed = 250 global zProbeSpeedFeedLevel = 2100 global zProbeSpeedTravel = 20000 global zProbeDiveHeightLevel = 30 global zProbeDiveHeightMesh = 3 global zProbePin = "zstop" global zProbeType = 8 global zProbeTriggerValue = 200 global minXMesh = -146 global maxXMesh = 150 global minYMesh = -150 global maxYMesh = 150 global meshPointSpacing = 30 M558 K0 P{global.zProbeType} C{global.zProbePin} H{global.zProbeDiveHeightMesh} F{global.zProbeSpeedFeed} T{global.zProbeSpeedTravel} ; default Z probe with slow speed ;M558 K0 P8 C"zstop" H3 F250 T20000 ; default Z probe with slow speed ;M558 K1 P8 C"zstop" H30 F2100 T20000 ; high speed Z probe for initial leveling and homing runs M558 K2 P8 C"duex.e5stop" H10 F100 T20000 ; set Z probe type to unfiltered switch and the dive height + speeds G31 K0 X0 Y0 Z0 P200 ;G31 K1 X0 Y0 Z0 P200 G31 K2 X0 Y0 Z0 P200 ;G31 K0 X0 Y0 Z0 P{global.zProbeTriggerValue} ; set Z probe trigger value, offset and trigger height, offsets here are hardcoded in leveling macro as well M557 X{global.minXMesh, global.maxXMesh} Y{global.minYMesh, global.maxYMesh} S{global.meshPointSpacing} ; define mesh grid M376 H30 ; Set bed correction taper ; Heaters M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp M950 H0 C"bedheat" T0 Q10 ; 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 B0 R0.676 C345.1 D2.68 S1.00 V24.3 ; Bed PID Tuning M140 H0 ; map heated bed to heater 0 M308 S1 P"e0temp" 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"e1temp" 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 M308 S3 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 3 as thermistor on pin e2temp M950 H3 C"duex.e2heat" T3 ; create nozzle heater output on e2heat and map it to sensor 3 M143 H3 S301 ; set temperature limit for heater 3 to 301C M308 S4 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin e3temp M950 H4 C"duex.e3heat" T4 ; create nozzle heater output on e3heat and map it to sensor 2 M143 H4 S301 ; set temperature limit for heater 2 to 301C M302 S190 R190 ;Cold extrusion settings M307 H1 R4.637 K0.673:0.218 D2.31 E1.35 S1.00 B0 V24.2 ; PID Tuning T0 M307 H2 R4.174 K0.555:0.276 D1.96 E1.35 S1.00 B0 V24.2 ; PID Tuning T1 M307 H3 R4.301 K0.536:0.105 D1.89 E1.35 S1.00 B0 V24.2 ; PID Tuning T2 M307 H4 R3.780 K0.576:0.060 D1.57 E1.35 S1.00 B0 V24.2 ; PID Tuning T3 ; Fans M950 F0 C"fan0" ; Hotend Fan Tool 0 M106 P0 S255 L255 H1 T50 C"T0 Hotend" ; Hotend Fan Tool 0 M950 F1 C"duex.fan3" Q50 ; Layer Fan Tool 0 M106 P1 S0 H-1 C"T0" ; Layer Fan Tool 0 M950 F2 C"fan2" ; Hotend Fan Tool 1 M106 P2 S255 L255 H2 T50 C"T1 Hotend" ; Hotend Fan Tool 1 M950 F3 C"duex.fan4" Q50 ; Layer Fan Tool 1 M106 P3 S0 H-1 C"T1" ; Layer Fan Tool 1 M950 F4 C"duex.fan5" ; Hotend Fan Tool 2 M106 P4 S255 L255 H3 T50 C"T2 Hotend" ; Hotend Fan Tool 2 M950 F5 C"duex.fan6" Q50 ; Layer Fan Tool 2 M106 P5 S0 H-1 C"T2" ; Layer Fan Tool 2 M950 F6 C"duex.fan7" ; Hotend Fan Tool 3 M106 P6 S255 L255 H4 T50 C"T3 Hotend" ; Hotend Fan Tool 3 M950 F7 C"duex.fan8" Q50 ; Layer Fan Tool 3 M106 P7 S0 H-1 C"T3" ; Layer Fan Tool 3 ;Static layer fan M950 F8 C"duex.e4heat" Q65535 ; static layer fan M106 P8 S0 H-1 I1 L0.2 C"RSCS" ; Tools M563 P0 D0 H1 F1 ; define tool 0 G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C M563 P1 D1 H2 F3 ; define tool 1 G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C M563 P2 D2 H3 F5 ; define tool 2 G10 P2 R0 S0 ; set initial tool 2 active and standby temperatures to 0C M563 P3 D3 H4 F7 ; define tool 3 G10 P3 R0 S0 ; set initial tool 3 active and standby temperatures to 0C M563 P4 S"Pen" ; define tool 4 (Pen) ;Dock present switches M950 J0 C"e0stop" ; Tool 0 Dock switch M950 J1 C"e1stop" ; Tool 1 Dock switch M950 J2 C"duex.e2stop" ; Tool 2 Dock switch M950 J3 C"duex.e3stop" ; Tool 3 Dock switch ;additional tool related switches ;M950 J4 C"duex.e4stop" ;potential toolhead tool present switch ;M950 J5 C"duex.e5stop" ;Z Offset Calibration switch M950 S0 C"duex.pwm4" ;PebbleWiper Servo M950 P1 C"duex.pwm5" ;Light switch PWM ;Accelerometer M955 P0 C"spi.cs3+spi.cs4" ;M593 P"zvd" F60 ; Inputshaping ; Miscellaneous M98 P"/macros/Misc/Lights/On" M98 P"/sys/config-tools.g" if !exists(global.hasRunInit) global pebbleFeedSpeedDefault = 400 global pebbleFeedSpeed = global.pebbleFeedSpeedDefault global deactivateToolAfterFilamentChange = false global hasRunInit = true
macros/Misc/Lights/On
M42 P1 S230
config-tools.g
if !exists(global.hasRunInit) global tool0NozzleSize = "0.0" global tool1NozzleSize = "0.0" global tool2NozzleSize = "0.0" global tool3NozzleSize = "0.0" global tool0NozzleMaterial = "" global tool1NozzleMaterial = "" global tool2NozzleMaterial = "" global tool3NozzleMaterial = "" M98 P"/sys/config-tools-size.g" M98 P"/sys/config-tools-material.g" ;Z-Offset: If nozzle is too close to bed _reduce_ offset (negative number becomes more negative) ; If nozzle is too far away, _increase_ offset (negative number becomes less negative) ;Tool offsets G10 P0 X-8.400 Y39.180 Z-4.100 G10 P1 X-8.340 Y39.260 Z-4.080 G10 P2 X-7.880 Y38.880 Z-4.310 G10 P3 X-7.810 Y39.040 Z-4.576 G10 P4 X0 Y46.5 Z-20.000 ; set tool 4 axis offsets
config-tools-size.g
(This file is auto generated from my nozzle size selection UI in BtnCmd)set global.tool0NozzleSize = "0.4" set global.tool1NozzleSize = "0.4" set global.tool2NozzleSize = "0.4" set global.tool3NozzleSize = "0.4"
config-tools-materials.g
(This file is auto generated from my nozzle material selection UI in BtnCmd)set global.tool0NozzleMaterial = "brass" set global.tool1NozzleMaterial = "brass" set global.tool2NozzleMaterial = "brass" set global.tool3NozzleMaterial = "nozzlex"
-
@phaedrux said in Firmware 3.4b7 - firmware retraction bug:
@Diamondback No it shouldn't damage anything. I think what happens is that the back emf equals the input voltage and the driver basically detects that as a possible disconnect.
That's correct.
-
@diamondback are you using mesh bed compensation with taper when this issue occurs?
-
@dc42 said in Firmware 3.4b7 - firmware retraction bug:
@diamondback are you using mesh bed compensation with taper when this issue occurs?
I am indeed using a tapered mesh bed compensation, however, that only gets activated prior to starting a job. I don't think it gets deactivated afterwards though, so it might very well be active sometimes when this happens.
Maybe that explains the seemingly random nature, doing filament changes after power-up vs after a print job...
If you suspect that the mesh has something to do with it, is there a specific gcode I should try to put in my post print macro that deactivates the mesh again?
Or would changing something abuot the taper help?
I can't really turn off the mesh for actual printing I'm afraid. -
@diamondback thanks. One of our collaborators has tracked down a cause of extruder-only moves happening too fast, but he can only make it occur when bed compensation taper is in use. I am working on a fix to include in 3.4.2. Meanwhile can you try disabling bed compensation taper, to see if the problem still occurs?
-
@dc42 said in Firmware 3.4b7 - firmware retraction bug:
@diamondback thanks. One of our collaborators has tracked down a cause of extruder-only moves happening too fast, but he can only make it occur when bed compensation taper is in use. I am working on a fix to include in 3.4.2. Meanwhile can you try disabling bed compensation taper, to see if the problem still occurs?
Ok, will disable it and see what happens
-
@diamondback one more question: does the tool concerned have a nonzero Z offset?
-
@dc42 said in Firmware 3.4b7 - firmware retraction bug:
@diamondback one more question: does the tool concerned have a nonzero Z offset?
It's a toolchanger where all 4 tools have non-zero offsets in all axis. (the toolhead/coupling/toolplate system is the one from E3D)
-
@diamondback @natthapol-v @danzaywer I have put new 3.4.2rc2+ firmware builds to fix this at https://www.dropbox.com/sh/7tf55ax00ky1pyx/AAA_eVJE20oYUON_gjKhCHsja?dl=0. I have tested the fix on the Duet 3 MB6HC build.
I was only able to reproduce this issue after when using tapered mesh bed compensation. Thanks for your patience.
-
@dc42 said in Firmware 3.4b7 - firmware retraction bug:
@diamondback @natthapol-v @danzaywer I have put new 3.4.2rc2+ firmware builds to fix this at https://www.dropbox.com/sh/7tf55ax00ky1pyx/AAA_eVJE20oYUON_gjKhCHsja?dl=0. I have tested the fix on the Duet 3 MB6HC build.
I was only able to reproduce this issue after when using tapered mesh bed compensation. Thanks for your patience.
Awesome, so with that updated firmware, using a taper shouldn't be an issue anymore?
-
@diamondback said in Firmware 3.4b7 - firmware retraction bug:
Awesome, so with that updated firmware, using a taper shouldn't be an issue anymore?
Correct.
-
So far, no issues. But haven't printed/changed filaments a lot yet