Filament monitor not working.
-
The other day I had a print "finish" though it had a jam long before it did. The filament monitor did not stop the print or raise any alerts. Today while printing I checked the status using M591 D0. I checked it again about an hour later and got the same measured distance leading me to believe something isnt right. I'm on a duet 3 MB6hc, RRF 3.5.0rc.1, and a duet magnetic filament monitor.
10/12/2023, 12:36:08 AM m591 d0 Duet3D rotating magnet filament monitor v4 on pin 121.io1.in, enabled always, sensitivity 24.80mm/rev, allow 10% to 600%, check printing moves every 3.0mm, version 4, mag 129 agc 76, measured sensitivity 24.79mm/rev, min 95% max 106% over 4382.3mm 10/11/2023, 11:11:52 PM m591 d0 Duet3D rotating magnet filament monitor v4 on pin 121.io1.in, enabled always, sensitivity 24.80mm/rev, allow 10% to 600%, check printing moves every 3.0mm, version 4, mag 131 agc 78, measured sensitivity 24.79mm/rev, min 95% max 106% over 4382.3mm
; Configuration file for Duet 3 (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun May 08 2022 13:47:15 GMT-0700 (Pacific Daylight Time) G4 S2 ; wait for expansion boards to start ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Duet 3" ; set printer name M669 K1 ; select CoreXY mode ; Drives M569.1 P50.0 T2 C1000 R100 I1000 D0.2 V100 ; Configure the 1HCL board at CAN address 50 with a quadrature encoder on the motor shaft that has 5 steps per motor full step. M569.1 P51.0 T2 C1000 R100 I1000 D0.2 V100 ; Configure the 1HCL board at CAN address 51 with a quadrature encoder on the motor shaft that has 5 steps per motor full step. M569.1 P52.0 T2 C1000 R100 ; Configure the 1HCL board at CAN address 51 with a quadrature encoder on the motor shaft that has 5 steps per motor full step. M569 P50.0 D4 S1 F2 ; physical drive 50.0 goes forwards M569 P51.0 D4 S1 F2 ; physical drive 51.0 goes forwards M569 P52.0 D4 S1 ; physical drive 51.0 goes forwards Z axis M569 P0.0 S1 ; physical drive 0.2 goes forwards M569 P121.0 S0 ; physical drive 121.0 goes forwards M584 X51.0 Y50.0 Z52.0 E121.0 ; set drive mapping M92 X80.25 Y80.25 Z1600.18 E409.00 ; set steps per mm M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M566 X500.00 Y500.00 Z500.0 E2500.00 ; set maximum instantaneous speed changes (mm/min)Z2500.00 M203 X15000.00 Y15000.00 Z800.00 E1200.00 ; set maximum speeds (mm/min) M201 X10000.00 Y10000.00 Z2500.00 E1250.00 ; set accelerations (mm/s^2)Z800.00 M906 X2250 Y2250 Z1800 E1200 ; set motor currents (mA) and motor idle factor in per cent M84 S60 ; Set idle timeout M917 X0 Y0 ; Set Standstill current ; Axis Limits M208 X0 Y-20 Z-0.5 S1 ; set axis minima M208 X445 Y240 Z300 S0 ; set axis maxima ; Endstops M574 X1 S1 P"!io1.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin !io1.in M574 Y1 S1 P"!io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin !io3.in ; Z-Probe M950 S0 C"121.io0.out" ; create servo pin 0 for BLTouch M558 P9 C"121.io0.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X23 Y-1 Z0.95 ; set Z probe trigger value, offset and trigger height M557 X15:401 Y-5:241 S20 ; define mesh grid ; Heaters ;Bed M308 S0 P"temp2" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp2 M950 H0 C"out2" T0 ; create bed heater output on out2 and map it to sensor 0 M307 H0 A311.1 C939.0 D1.8 B0 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S130 ; set temperature limit for heater 0 to 130C ;Nozzle M308 S1 P"121.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin 121.temp0 M950 H1 C"121.out0" T1 ; create nozzle heater output on 121.out0 and map it to sensor 1 M307 H1 R4.273 K0.509:1.568 D2.03 E1.35 S1.00 B0 V24.0 ; disable bang-bang mode for heater and set PWM limit M143 H1 S300 ; set temperature limit for heater 1 to 300C ;Chamber M308 S2 P"temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin temp0 M950 H3 C"out0" T2 ; create chamber heater output on out0 and map it to sensor 2 M307 H3 B1 D60 ; enable bang-bang mode for the chamber heater and set PWM limit M141 H3 ; map chamber to heater 2 M143 H3 S80 ; set temperature limit for heater 2 to 300C M570 H3 T50 P10800 ; Temp excursion for heater fault ; Fans M950 F1 C"121.out2" Q500 ; create fan 0 on pin 121.out2 and set its frequency M106 P1 S0 H1 T45 ; set fan 0 value. Thermostatic control is turned on M950 F0 C"out9" Q1500 ; create fan 1 on pin out9 and set its frequency M106 P0 S0 H-1 L0.20 X1.0 B0.75 ; set fan 1 value. Thermostatic control is turned off ; 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 M207 S0.6 F4500 ; Retraction. s=distance F=feedrate Z=zhop Filament sensors M591 D0 P3 C"121.io1.in" R10:600 S2 L24.8 E3.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 2% to 600% tolerance, 3mm detection length ; Custom settings M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss ; Miscellaneous T0 ; select first tool M955 P121.0 I41 ; accelerometer and orientation M593 P"mzv" F28 ; input shaping M572 D0 S0.01 ; pressure advance
-
@macguyver thanks for this report. We have had one similar report on RC1 so I was planning on trying to reproduce it. I have not see in it on my machine with filament monitors running rc1 but that is in SBC mode. Is this in SBC or stand alone mode?
I have logged a GitHub issue here:
https://github.com/Duet3D/RepRapFirmware/issues/920 -
@T3P3Tony it's running in sbc mode. Here is a m122
10/12/2023, 12:15:02 PM m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.1 (2023-08-31 16:19:24) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 08DJM-956L2-G43S8-6JTD0-3S06P-9A2UD Used output buffers: 1 of 40 (18 max) === RTOS === Static ram: 154852 Dynamic ram: 87768 of which 4156 recycled Never used RAM 94896, free system stack 135 words Tasks: SBC(2,rWait:,29.3%,420) HEAT(3,nWait,0.7%,323) Move(4,nWait,44.0%,214) CanReceiv(6,nWait,1.5%,769) CanSender(5,nWait,1.8%,326) CanClock(7,delaying,0.2%,349) TMC(4,nWait,3.7%,59) MAIN(2,running,18.7%,137) IDLE(0,ready,0.1%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 39:28:01 ago, cause: power up Last software reset at 2023-10-10 23:18, reason: User, Gcodes spinning, available RAM 94944, slot 0 Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0044a000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 MCU temperature: min 30.4, current 42.5, max 44.1 Supply voltage: min 23.5, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/200/160, gc cycles 0 Events: 0 queued, 0 completed Driver 0: standstill, SG min n/a, mspos 8, reads 20876, writes 11 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 20876, writes 11 timeouts 0 Driver 2: standstill, SG min n/a, mspos 8, reads 20876, writes 11 timeouts 0 Driver 3: standstill, SG min n/a, mspos 8, reads 20877, writes 11 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 20877, writes 11 timeouts 0 Driver 5: standstill, SG min n/a, mspos 8, reads 20877, writes 11 timeouts 0 Date/time: 2023-10-12 15:14:55 Slowest loop: 682.90ms; fastest: 0.04ms === Storage === Free file entries: 20 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 61, maxWait 32952328ms, bed compensation in use: mesh, height map offset 0.000, ebfmin 0.00, ebfmax 0.00 next step interrupt due in 25901 ticks, disabled Moves shaped first try 229549, on retry 64622, too short 425772, wrong shape 857612, maybepossible 179528 === DDARing 0 === Scheduled moves 373273, completed 373213, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 8], CDDA state 3 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters 3 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.1 Heater 1 is on, I-accum = 0.0 Heater 3 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File* is doing "G1 X122.735001 Y76.077003 E0.029770" in state(s) 0 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue* is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 File2* is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 1, axes/extruders owned 0x80000007 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === Extruder 0: no data received === CAN === Messages queued 9398169, received 6323263, lost 0, boc 0 Longest wait 14ms for reply type 6018, peak Tx sync delay 649, free buffers 50 (min 17), ts 710408/710407/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 17011/17011 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x25a98 Buffer RX/TX: 1728/3016-0, open files: 0 === Duet Control Server === Duet Control Server version 3.5.0-rc.1 (2023-09-01 07:16:31) File /opt/dsf/sd/gcodes/sunglass switch pro 18.gcode is selected, processing File: Buffered code: G1 X122.735 Y76.077 E.02977 Buffered code: G1 X123.684 Y75.879 E.03019 Buffered code: G1 X124.281 Y75.806 E.01873 Buffered code: G1 X129.767 Y75.806 E.17084 Buffered code: G1 X172.246 Y76.127 E1.32287 Buffered code: G1 X172.246 Y76.752 E.01946 Buffered code: G1 X172.326 Y77.224 E.01491 Buffered code: G1 X172.468 Y77.516 E.01011 Buffered code: G1 X172.606 Y77.699 E.00714 Buffered code: G1 X172.825 Y77.899 E.00924 Buffered code: G1 X173.23 Y78.107 E.01418 Buffered code: G1 X173.66 Y78.177 E.01357 Buffered code: G1 X176.167 Y78.196 E.07807 Buffered code: G1 X230.258 Y78.194 E1.68444 Buffered code: G1 X233.876 Y78.163 E.11267 Buffered code: G1 X234.313 Y78.04 E.01414 Buffered code: G1 X234.676 Y77.797 E.0136 Buffered code: G1 X234.928 Y77.492 E.01232 Buffered code: G1 X235.063 Y77.204 E.0099 Buffered code: G1 X235.093 Y77.023 E.00571 Buffered code: M204 P1800 Buffered code: G10 ; retract Buffered code: G1 X234.303 Y77.023 F25200 Buffered code: G1 X266.269 Y110.856 Buffered code: G1 X266.17 Y111.229 Buffered code: G11 ; unretract Buffered code: M204 P1000 Buffered code: G1 F2397.316 Buffered code: G1 X266.52 Y111.325 E.0113 Buffered code: G1 F2400 Buffered code: G1 X266.889 Y111.498 E.01269 Buffered codes: 1360 bytes total Code buffer space: 1728 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 45.47, max time between full transfers: 335.2ms, max pin wait times: 70.9ms/26.0ms Codes per second: 48.23 Maximum length of RX/TX data transfers: 4752/3352
-
@macguyver ok thanks that's intrusting, the only other report i have is in standalone mode.
-
@T3P3Tony I'm running a lot of your stuff. I'm also running 3 1HCL expansion boards for closed loop steppers on x,y,and z.
-
@T3P3Tony So I've done some more of my own troubleshooting. While the measured distance of filament is low the sensor detects and triggers as it should. Eventually the measured distance stops recording. When that happened I cut the filament and it did not detect the lack of filament and continued to print. The number that it freezes at is variable. First time this happened it stopped at 4382.3mm, now it's stopped at 6214.0mm. Below will be a M122 if it helps.
As a possible work around until this is fixed, I am wondering if there is a command to restart the measured distance that I could put in the slicer's layer change Gcode. Disabling and reenabling the filament monitor via M591 S works, but it pauses the print every time it is reenabled.
10/14/2023, 4:53:57 PM m591 d0 Duet3D rotating magnet filament monitor v4 on pin 121.io1.in, enabled always, sensitivity 24.80mm/rev, allow 10% to 600%, check printing moves every 3.0mm, version 4, mag 130 agc 82, measured sensitivity 25.19mm/rev, min -9% max 107% over 6214.0mm
10/14/2023, 4:44:51 PM m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.5.0-rc.1 (2023-08-31 16:19:24) running on Duet 3 MB6HC v1.01 (SBC mode) Board ID: 08DJM-956L2-G43S8-6JTD0-3S06P-9A2UD Used output buffers: 1 of 40 (18 max) === RTOS === Static ram: 154852 Dynamic ram: 88072 of which 3852 recycled Never used RAM 95424, free system stack 143 words Tasks: SBC(2,rWait:,4.2%,398) HEAT(3,nWait,0.0%,323) Move(4,nWait,1.7%,214) CanReceiv(6,nWait,0.1%,771) CanSender(5,nWait,0.1%,326) CanClock(7,delaying,0.0%,349) TMC(4,nWait,17.5%,59) MAIN(2,running,76.3%,137) IDLE(0,ready,0.1%,30), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 03:01:48 ago, cause: software Last software reset at 2023-10-14 16:43, reason: User, Gcodes spinning, available RAM 99000, slot 0 Software reset code 0x6003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 MCU temperature: min 40.2, current 46.5, max 47.4 Supply voltage: min 23.5, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.2, under voltage events: 0 Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/352/312, gc cycles 0 Events: 4 queued, 4 completed Driver 0: standstill, SG min n/a, mspos 8, reads 38608, writes 11 timeouts 0 Driver 1: standstill, SG min n/a, mspos 8, reads 38608, writes 11 timeouts 0 Driver 2: standstill, SG min n/a, mspos 8, reads 38608, writes 11 timeouts 0 Driver 3: standstill, SG min n/a, mspos 8, reads 38609, writes 11 timeouts 0 Driver 4: standstill, SG min n/a, mspos 8, reads 38609, writes 11 timeouts 0 Driver 5: standstill, SG min n/a, mspos 8, reads 38609, writes 11 timeouts 0 Date/time: 2023-10-14 19:44:50 Slowest loop: 701.90ms; fastest: 0.05ms === Storage === Free file entries: 20 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, segments created 39, maxWait 3783424ms, bed compensation in use: mesh, height map offset 0.000, ebfmin 0.00, ebfmax 0.00 next step interrupt due in 11308 ticks, disabled Moves shaped first try 10423, on retry 2104, too short 11770, wrong shape 25470, maybepossible 2351 === DDARing 0 === Scheduled moves 64797, completed 64772, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 5], CDDA state 3 === DDARing 1 === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters 3 -1 -1 -1, ordering errs 0 Heater 0 is on, I-accum = 0.1 Heater 1 is on, I-accum = 0.0 Heater 3 is on, I-accum = 0.0 === GCodes === Movement locks held by null, null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File* is idle in state(s) 3 USB is idle in state(s) 0 Aux is idle in state(s) 0 Trigger* is idle in state(s) 0 Queue* is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause* is idle in state(s) 0 File2* is idle in state(s) 0 Queue2 is idle in state(s) 0 Q0 segments left 6, axes/extruders owned 0x80000007 Code queue 0 is empty Q1 segments left 0, axes/extruders owned 0x0000000 Code queue 1 is empty === Filament sensors === Extruder 0: no data received === CAN === Messages queued 357391, received 486221, lost 0, boc 0 Longest wait 14ms for reply type 6018, peak Tx sync delay 14949, free buffers 50 (min 34), ts 54545/54544/0 Tx timeouts 0,0,0,0,0,0 === SBC interface === Transfer state: 5, failed transfers: 0, checksum errors: 0 RX/TX seq numbers: 2358/2358 SPI underruns 0, overruns 0 State: 5, disconnects: 0, timeouts: 0 total, 0 by SBC, IAP RAM available 0x25a98 Buffer RX/TX: 3168/360-4096, open files: 0 === Duet Control Server === Duet Control Server version 3.5.0-rc.1 (2023-09-01 07:16:31) File /opt/dsf/sd/gcodes/sunglass switch pro 16.gcode is selected, processing File: Buffered code: G1 X224.497 Y141.703 E1.91722 Buffered code: G1 F1088.291 Buffered code: G1 X223.807 Y141.703 E.02149 Buffered code: G1 F1085.714 Buffered code: G1 X223.807 Y141.688 E.00047 Buffered code: G1 F1044.907 Buffered code: G1 X223.807 Y141.013 E.02102 Buffered code: G1 F3599.987 Buffered code: G1 X223.807 Y113.286 E.86344 Buffered code: G1 F3600 Buffered code: G1 X223.807 Y112.836 E.01401 Buffered code: G1 F2820.875 Buffered code: G1 X223.753 Y112.698 E.00461 Buffered code: G1 F1891.453 Buffered code: G1 X223.603 Y112.633 E.00509 Buffered code: G1 F1859.094 Buffered code: G1 X223.062 Y112.633 E.01685 Buffered code: G1 X203.102 Y112.633 E.62157 Buffered code: G1 X202.561 Y112.633 E.01685 Buffered code: G1 F1891.453 Buffered code: G1 X202.422 Y112.687 E.00464 Buffered code: G1 F2719.649 Buffered code: G1 X202.357 Y112.836 E.00506 Buffered code: G1 F3599.987 Buffered code: G1 X202.357 Y113.286 E.01401 Buffered code: G1 X202.357 Y141.013 E.86344 Buffered code: G1 F1010.728 Buffered code: G1 X202.357 Y141.688 E.02102 Buffered code: G1 F1053.382 Buffered code: G1 X202.357 Y141.703 E.00047 Buffered code: G1 F1056.076 Buffered code: G1 X201.667 Y141.703 E.02149 Buffered codes: 1312 bytes total Code buffer space: 2808 Configured SPI speed: 8000000Hz, TfrRdy pin glitches: 0 Full transfers per second: 120.38, max time between full transfers: 80.1ms, max pin wait times: 61.6ms/22.5ms Codes per second: 394.01 Maximum length of RX/TX data transfers: 4524/3360
-
Last bit of info for the weekend in case it helps in any way. Resetting the measured distance by disabling and reenabling the filament sensor seems to fix this temporarily. It will still eventually stop accumulating measured distance and that number appears to be random. I had it go as high as 43,000mm and as low as 12mm. This happened 12+ times over a 24 hour print.
-
-
@macguyver are you able to test a new firmware build to see of it resolves the issue? If so, do you have any CAN-connected expansion boards in the machine?
-
@dc42 yes I can try a new fw build. I have lots of can connected boards. 3 1hcl and a tool board.
-
@macguyver please try the files at https://www.dropbox.com/scl/fo/tjznycpk7bv7sj71p0ssl/h?rlkey=096p4nvgmigyrb20jj8olg3wu&dl=0. Caution, these have not been through the same level of testing as a beta release. There are partial upgrade notes at https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x-RC#reprapfirmware-350-rc2-changes-since-350-rc1---in-preparation.
-
@dc42 Thank you, i'll try these tonight when I get home and report back any findings!
-
@dc42 The accumulated distance is still stopping randomly, but I am now able to reset it without it pausing the print.
-
@macguyver well, what I do is execute again the configuration command. I can be done while printing and measured distance is reset to cero, but also calibration data too. But this would do the reset you want, just put the config line on the layer change gcode.