Filament monitor not working.
-
@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.