Any additional settings for the magnetic filament monitor?
I've been using the magnetic filament monitor to help calibrate extrusion on my machines and it's been working great - however now that's all dialled in, I want to restrict what it does during prints to avoid false triggering - I'll get into that in a bit.
What I'm trying to achieve is the facility to only monitor for filament run-out and call the pause.g macro under that condition. I am aware that this was the intended use for the switch option - however I'm already using the switch to monitor and pause in case the bowden tube pops out - which works great by the way!
Is there a way to configure for only a zero movement on the rotating magnet (i.e. no filament) to trigger pause.g?
Currently my configuration looks like this:
M591 D0 P4 C3 S1 R1:2500000 L25.57 E10.0
As you can see I've restricted the reported movement measuring range to between 1 and 2500000. I tried minimum values of 0 and below and this disables the pause.g macro call, hence 1.
The reason the upper range value is so high is that I was frequently coming back to paused prints for no apparent reason.
I had a large print to do, so took M122 and M591 readings as it went:
![6180afd2-dfcb-463e-b968-6369cff66ec6-image.png](/assets/uploads/files/1628689646381-6180afd2-dfcb-463e-b968-6369cff66ec6-image.png) undefined ```06/08/2021, 21:11:46 M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1 running on Duet WiFi 1.02 or later Board ID: 08DJM-9178L-L4MSN-6J1FG-3SN6M-9S3GR Used output buffers: 3 of 24 (19 max) === RTOS === Static ram: 25712 Dynamic ram: 93052 of which 36 recycled Exception stack ram used: 504 Never used ram: 11768 Tasks: NETWORK(ready,628) HEAT(blocked,1232) MAIN(running,348) IDLE(ready,160) Owned mutexes: === Platform === Last reset 13:57:36 ago, cause: power up Last software reset at 2021-08-05 20:35, reason: User, spinning module GCodes, available RAM 11816 bytes (slot 3) Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0441f000 BFAR 0xe000ed38 SP 0xffffffff Task 0x4e49414d Error status: 0 Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest block write time: 0.0ms, max retries 0 MCU temperature: min 33.6, current 33.7, max 40.6 Supply voltage: min 23.7, current 24.1, max 24.3, under voltage events: 0, over voltage events: 0, power good: yes Driver 0: standstill, SG min/max 0/233 Driver 1: standstill, SG min/max 0/224 Driver 2: standstill, SG min/max 0/197 Driver 3: standstill, SG min/max 0/1023 Driver 4: standstill, SG min/max not available Date/time: 2021-08-06 21:11:42 Cache data hit count 4294967295 Slowest loop: 111.96ms; fastest: 0.08ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Move === Hiccups: 0, FreeDm: 160, MinFreeDm: 130, MaxWait: 12ms Bed compensation in use: none, comp offset 0.000 === DDARing === Scheduled moves: 0, completed moves: 0, StepErrors: 0, LaErrors: 0, Underruns: 0, 0 === Heat === Bed heaters = 0 -1 -1 -1, chamberHeaters = -1 -1 Heater 0 is on, I-accum = 0.1 Heater 1 is on, I-accum = 0.4 === GCodes === Segments left: 0 Stack records: 1 allocated, 0 in use Movement lock held by null http is idle in state(s) 0 telnet is idle in state(s) 0 file is idle in state(s) 0 serial is idle in state(s) 0 aux is idle in state(s) 0 daemon is idle in state(s) 0 queue is idle in state(s) 0 autopause is idle in state(s) 0 Code queue is empty. === Network === Slowest loop: 201.12ms; fastest: 0.08ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0) HTTP sessions: 1 of 8 - WiFi - Network state is running WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 4 WiFi firmware version 1.23 WiFi MAC address 84:0d:8e:b3:b8:6f WiFi Vcc 3.37, reset reason Turned on by main processor WiFi flash size 4194304, free heap 25776 WiFi IP address 192.168.1.131 WiFi signal strength -61dBm, reconnections 0, sleep mode modem Socket states: 0 0 0 0 0 0 0 0 === Filament sensors === Extruder 0: pos 323.44, errs: frame 13 parity 0 ovrun 0 pol 11 ovdue 0
06/08/2021, 21:11:30 M591 D0 Duet3D magnetic filament monitor with switch on input 3, enabled, sensitivity 25.57mm/rev, allow 0% to 2500000%, check every 10.0mm, version 2, measured sensitivity 26.07mm/rev, min 50% max 283% over 303254.8mm 06/08/2021, 20:53:42 Finished printing file 0:/gcodes/BigBoy Rebuild/frame_botttom050__40-3_LS_13h22m_305610mm.gcode, print time was 13h 34m
@slimshader try increasing the E parameter some more. The higher the E value, the more reliable the readings are. However, if you still get errors using R1:400 then I suspect that something isn't right:
- Is the filament monitor close to the inlet of the extruder drive?
- It might also help to upgrade the filament monitor firmware to version 3 so that we can check the agc value, however this requires a programmer for Attiny microcontrollers.
@dc42 Thanks David, I'll try increasing the E value - if I can get it consistent enough, it might mitigate the need to stop the analysis portion of the monitored filament and make an expensive switch.
In terms of placement, the monitor is placed about 15mm above the extruder:
I haven't yet upgraded the firmware, but I will try that too as I understand knowing the AGC value would be useful to help diagnose this.
What I am noticing though is that the values measured throughout prints seem to vary wildly from job to job; for example:
![07d69934-c8c6-4350-884a-f1db8368f892-image.png](/assets/uploads/files/1628719410251-07d69934-c8c6-4350-884a-f1db8368f892-image.png) undefined 03/08/2021, 20:54:59 Printing resumed 03/08/2021, 20:54:32 Duet3D magnetic filament monitor with switch on input 3, enabled, sensitivity 26.08mm/rev, allow 3% to 250%, check every 10.0mm, version 2, measured sensitivity 26.25mm/rev, min -14% max 143% over 12602.8mm 03/08/2021, 20:53:07 Printing paused at X53.5 Y-62.6 Z95.5 03/08/2021, 20:53:02 Resume state saved 03/08/2021, 20:20:34 Printing resumed 03/08/2021, 20:20:33 Printing paused at X34.9 Y26.9 Z91.0 03/08/2021, 20:20:28 Resume state saved 03/08/2021, 20:20:22 Printing resumed 03/08/2021, 20:20:20 Printing paused at X22.5 Y-58.6 Z91.0 03/08/2021, 20:20:15 Resume state saved 03/08/2021, 20:20:13 Printing resumed 03/08/2021, 20:19:08 Printing paused at X22.5 Y-68.9 Z91.0 03/08/2021, 20:19:03 Resume state saved 03/08/2021, 20:16:42 Printing resumed 03/08/2021, 20:13:51 Printing paused at X100.7 Y69.8 Z90.5 03/08/2021, 20:13:45 Resume state saved 03/08/2021, 19:55:27 Printing resumed 03/08/2021, 19:50:48 Printing paused at X-67.4 Y-51.1 Z88.0 03/08/2021, 19:50:42 Resume state saved 03/08/2021, 19:48:53 Printing resumed 03/08/2021, 19:28:15 Printing paused at X-82.6 Y35.1 Z88.0 03/08/2021, 19:28:10 Resume state saved 03/08/2021, 19:07:29 M24 Printing resumed 03/08/2021, 19:07:25 M292 P1 Printing paused at X-57.3 Y-62.5 Z85.5 03/08/2021, 19:07:19 Resume state saved 03/08/2021, 18:56:51 M591 D0 Duet3D magnetic filament monitor with switch on input 3, enabled, sensitivity 26.08mm/rev, allow 3% to 250%, check every 10.0mm, version 2, measured sensitivity 26.24mm/rev, min 31% max 159% over 18690.6mm 03/08/2021, 18:08:30 Printing resumed 03/08/2021, 18:08:29 Printing paused at X-62.3 Y28.2 Z77.5 03/08/2021, 18:08:22 Resume state saved 03/08/2021, 18:08:19 Printing resumed 03/08/2021, 18:07:21 Printing paused at X114.2 Y90.2 Z77.5 03/08/2021, 18:07:15 Resume state saved 03/08/2021, 17:32:52 M24 Printing resumed
@slimshader yes that's close enough.
Please can you post a job file that gives a particularly large variation, so that I can try it here - although it's likely to be a week or two before I have time.
If you wish, you may send your filament monitor board to me for reprogramming.
@dc42 sure, I'll run a few more prints over the next day or so (with the increased E value) and check the M591 output throughout - then I'll send an example over.