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