UNSOLVED Magnetic Filament Sensor



  • I'm having difficulties get a new magnetic filament sensor working correctly. Most of the time it reads 'good' values of around 95-105% but will randomly drop right down to only a couple of percent or even 0.

    Is it worth me taking the sensor apart? Is there anyway to tighten tolerances or anything? Being a new sensor should I just request a return (however reluctant due to international shipping. In UK but ordered from hobbystore.pl)

    Have tried different measurement lengths from 3 up to 30mm

    Not working.....

    M591 D0
    Duet3D magnetic filament monitor on input 3, disabled, sensitivity 24.80mm/rev, allow 70% to 130%, check every 3.0mm, version 3, mag 114 agc 128, measured sensitivity 35.60mm/rev, min 0% max 132% over 982.7mm
    

    Working...

    M591 D0
    Duet3D magnetic filament monitor on input 3, disabled, sensitivity 24.80mm/rev, allow 70% to 130%, check every 30.0mm, version 3, mag 118 agc 128, measured sensitivity 30.05mm/rev, min 99% max 100% over 90.2mm
    

    Config;

    ; Configuration file for Duet WiFi (firmware version 2.03)
    ; executed by the firmware on start-up
    ;
    ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Mar 26 2020 22:56:52 GMT+0000 (Greenwich Mean Time)
    
    ; General preferences
    G90                                                ; send absolute coordinates...
    M83                                                ; ...but relative extruder moves
    M550 P"Rigidbot"                                   ; set printer name
    
    ; Network
    M552 S1                                            ; enable network
    M586 P0 S1                                         ; enable HTTP
    M586 P1 S0                                         ; disable FTP
    M586 P2 S0                                         ; disable Telnet
    
    ; Drives
    M569 P0 S1                                         ; X physical drive 0 goes backwards
    M569 P1 S1                                         ; Y physical drive 1 goes backwards
    M569 P2 S1                                         ; Z physical drive 2 goes backwards
    M569 P3 S0                                         ; E physical drive 3 goes forwards
    M569 P4 S1										   ; 2nd Z motor
    M584 X0 Y1 Z2:4 E3                                   ; set drive mapping
    M350 X16 Y16 Z16 E16 I1                            ; configure microstepping with interpolation
    M92 X200.00 Y200.00 Z1600.00 E135.00               ; set steps per mm
    M566 X900.00 Y1100.00 Z100.00 E2000.00                ; set maximum instantaneous speed changes (mm/min)
    M203 X9000.00 Y9000.00 Z400.00 E8000.00         ; set maximum speeds (mm/min)
    M201 X500.00 Y500.00 Z100.00 E5000.00             ; set accelerations (mm/s^2)
    M906 X1800 Y1800 Z1500 E1600 I20                   ; set motor currents (mA) and motor idle factor in per cent
    M84 S50                                            ; Set idle timeout
    
    M671 X-76:302 Y0:0 S8 ; leadscrews at left (connected to Z) and right (connected to E1) of X axis
    
    
    ; Axis Limits
    M208 X0 Y0 Z0 S1                                   ; set axis minima
    M208 X250 Y230 Z250 S0                             ; set axis maxima
    
    ; Endstops
    M574 X1 Y1 S0                                      ; set active low and disabled endstops
    M574 Z1 S2                                         ; set endstops controlled by probe
    
    M591 D0 P3 C3 S1 R40:130 L24.8 E20.0 ; Duet3D rotating magnet sensor for extruder drive 0 is connected to E0 endstop input, enabled, sensitivity 24.8mm.rev, 70% to 130% tolerance, 3mm detection length
    
    ; Z-Probe
    M558 P1 H2 I0 F120 T12000 A10 S0.01 
    G31 P500 X53 Y0 Z1                             ; set Z probe trigger value, offset and trigger height
    M557 X65:215 Y30:210 S8.5                           ; define mesh grid
    
    ; Heaters
    M307 H0 B0 S1.00                                   ; disable bang-bang mode for the bed heater and set PWM limit
    M305 P0 T100000 B4138 R2200                        ; set thermistor + ADC parameters for heater 0
    M143 H0 S120                                       ; set temperature limit for heater 0 to 120C
    M305 P1 X200                                       ; configure PT100 for heater 1
    M143 H1 S350                                       ; set temperature limit for heater 1 to 350C
    
    ; Fans
    M106 P0 C"Part Fan" S0 I0 F500 H-1 L80 B0.5     ; set fan 0 name, value, PWM signal inversion and frequency. Thermostatic control is turned off
    M106 P1 C"Driver Fan" S0 I0 F500 H1 T80 L255 
    M106 P2 C"Hotend Fan" S0 I0 F500 H1 T80 L255 ; set fan 2 name, value, PWM signal inversion and frequency. Thermostatic control is turned on
    
    ; Tools
    M563 P0 S"Extruder" 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
    
    ; Custom settings
    M929 P"eventlog.txt" S1										; Enable logging
    M501
    
    ; Miscellaneous
    M911 S22 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
    
    
    

    M122

    === Diagnostics ===
    RepRapFirmware for Duet 2 Maestro version 2.05.1 running on Duet Maestro 1.0
    Board ID: 08DJM-9P6T2-L43S4-7JTD4-3SJ6Q-TBSRQ
    Used output buffers: 3 of 24 (20 max)
    === RTOS ===
    Static ram: 19804
    Dynamic ram: 87832 of which 0 recycled
    Exception stack ram used: 352
    Never used ram: 23084
    Tasks: NETWORK(ready,764) HEAT(blocked,1264) MAIN(running,3896) IDLE(ready,160)
    Owned mutexes:
    === Platform ===
    Last reset 00:58:17 ago, cause: software
    Last software reset at 2020-06-21 19:05, reason: Stuck in spin loop, spinning module GCodes, available RAM 22812 bytes (slot 2)
    Software reset code 0x4043 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0400f80f BFAR 0xe000ed38 SP 0x20000f24 Task 0x5754454e
    Stack: 004447cb 004482be 61000000 00000000 00000004 004484ad 20004058 00000001 20000760 10000000 00000004 20019054 000094a4 00000004 00444abd 00000004 00000000 00000001 0041ad35 00444a5d 01d737ff 00000000 0041ac01
    Error status: 0
    Free file entries: 8
    SD card 0 detected, interface speed: 15.0MBytes/sec
    SD card longest block write time: 7.5ms, max retries 0
    MCU temperature: min 26.0, current 30.0, max 33.8
    Supply voltage: min 0.0, current 23.9, max 24.4, under voltage events: 0, over voltage events: 0, power good: yes
    Driver 0: ok, read errors 0, write errors 1, ifcount 67, reads 8745, timeouts 0
    Driver 1: ok, read errors 0, write errors 1, ifcount 69, reads 8745, timeouts 0
    Driver 2: ok, read errors 0, write errors 1, ifcount 70, reads 8745, timeouts 0
    Driver 3: ok, read errors 0, write errors 1, ifcount 51, reads 8742, timeouts 3
    Driver 4: ok, read errors 0, write errors 1, ifcount 70, reads 8745, timeouts 0
    Driver 5: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 8753
    Driver 6: ok, read errors 0, write errors 0, ifcount 0, reads 0, timeouts 8753
    Date/time: 2020-06-21 20:04:23
    Slowest loop: 29.80ms; fastest: 0.05ms
    I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0
    === Move ===
    Hiccups: 0, FreeDm: 156, MinFreeDm: 146, MaxWait: 2828509ms
    Bed compensation in use: mesh, comp offset 0.000
    === DDARing ===
    Scheduled moves: 1293, completed moves: 1287, StepErrors: 0, LaErrors: 0, Underruns: 0, 0
    === Heat ===
    Bed heaters = 0, chamberHeaters = -1 -1
    Heater 0 is on, I-accum = 0.4
    Heater 1 is on, I-accum = 0.3
    === GCodes ===
    Segments left: 1
    Stack records: 3 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 doing "G0 X155.854 Y160.754" 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
    lcd is idle in state(s) 0
    autopause is idle in state(s) 0
    Code queue is empty.
    === Network ===
    Slowest loop: 41.99ms; fastest: 0.02ms
    Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0) Telnet(0)
    HTTP sessions: 2 of 8
    Interface state 5, link 100Mbps full duplex
    === Filament sensors ===
    Extruder 0: pos 195.47, errs: frame 2 parity 0 ovrun 0 pol 1 ovdue 0
    


  • Setup is direct drive extruder using a feeder tube. ABS filament from a spool holder with bearings so very smooth.

    56Capture.PNG



  • @dm86 I might be wrong, but it could be that the way you've mounted the sensor is giving you issues?

    Ideally you want the sensor to be as close as possible to your extruder. I'm not sure how long your feedtube is but if there is any slack in the filament path between the MFM and extruder, you're gonna get problems, particularly on segments of a print with lots of retractions (is this the case?). Also, what size is the PTFE tube and is it securely fixed at both ends with collet clips? If it's slightly oversized (even 2.0mm ID) the filament can kink up in the tube. This is essentially the same issue with Bowden setups. As it kinks and un-kinks during retract/un-retract, the extruder will be moving filament, but the sensor won't seen anything (hence is tripping).

    If you're monitoring every 3.0mm of filament extruded, that's a comparable length to normal retraction (and also only a very small amount of plastic!). Have two retractions back-to-back with any flex/play/backlash in the feedtube between the extruder and MFM, and you're likely to set it off. When you tried it monitoring over 30.0mm of extruded filament, you'll average these issues out because overall the extruder and sensor are both working and the same total length of filament is travelling through both. The measured sensitivity is also quite different between the two results. I'm guessing this is from the same issue.

    FYI I have a bowden setup with the MFM mounted ~30mm before the extruder. I've used Capricorn XS PTFE tube (1.9mm ID) and it's fixed at both ends with collet clips. My extruder is a Bondtech so the filament path is well constrained, even on the input-side. Even with all this, I can't go below ~5.0mm check lengths and have widened the allowance to 140/60% to avoid it occasionally tripping. It is the nature of these sensors that you have to take all of this into account when mounting and setting them up. In reality, having a slightly larger check window isn't a massive issue - it will still flag a filament-out 🙂



  • @engikeneer Thanks for the input. It's definitely not that, there is very little to no slack in the tube and being direct drive its pulled through keep it tight anyway. When it stops reading it stops for a while. Even setting to 100mm distance I'm getting 0% failures.

    Having read more on some other posts it seems like my mag and agc values are too high. However I'm not sure what I can do about these and what they really mean? Hoping to get someone in the know to advise if I should be taking it apart or returning it?


  • Moderator

    @dm86 Would you be able to upgrade to RRF3? Specifically to 3.1.1. DC42 is in the process of investigating the magnetic filament monitors as part of the next update 3.2. So any testing we can do there would be beneficial.



  • @Phaedrux Should be able to. On a 5 day print so might take me a while to get to it. Although if I miss it running out of filament it might be a bit sooner 😂

    It does seem like a sensor issue though but I'll hold off taking it apart until after upgrading.


  • Moderator

    Well taking it apart and checking that things are aligned, etc is not a bad idea.


  • administrators

    @dm86 said in Magnetic Filament Sensor:

    I'm having difficulties get a new magnetic filament sensor working correctly. Most of the time it reads 'good' values of around 95-105% but will randomly drop right down to only a couple of percent or even 0.

    Is it worth me taking the sensor apart? Is there anyway to tighten tolerances or anything? Being a new sensor should I just request a return (however reluctant due to international shipping. In UK but ordered from hobbystore.pl)

    Have tried different measurement lengths from 3 up to 30mm

    Not working.....

    M591 D0
    Duet3D magnetic filament monitor on input 3, disabled, sensitivity 24.80mm/rev, allow 70% to 130%, check every 3.0mm, version 3, mag 114 agc 128, measured sensitivity 35.60mm/rev, min 0% max 132% over 982.7mm
    

    Your AGC value is too high and out of tolerance. Less than 100 is good. The usual reason is that the distance between the magnet (on the end of the rotating shaft) and the sensor is too great. Suggestions:

    • Check that the 3 screws are tight (but don't over-tighten them, that may strip the threads)
    • If that doesn't lead to a lower AGC value, then remove the two long screws to separate the two halves. Sand down the flat mating surface very slightly, then reassemble.


  • @dc42 Thank you both.

    As its brand new I didn't want to take it apart and be accused of being the problem myself without checking here first.

    Today it decided to start throwing errors and pausing the print even with the sensor disabled so wondering if there is something else going on too.

    2020-06-22 13:15:32 Resume state saved
    2020-06-22 13:15:32 Extruder 0 reports sensor not working
    2020-06-22 13:15:35 Printing paused at X149.7 Y115.4 Z33.3
    2020-06-22 14:52:37 HTTP client 192.168.50.130 login succeeded
    2020-06-22 14:52:48 Printing resumed
    2020-06-22 14:52:48 Resume state saved
    2020-06-22 14:52:48 Extruder 0 reports sensor not working
    2020-06-22 14:52:51 Printing paused at X149.7 Y115.4 Z33.3
    2020-06-22 14:53:00 Printing resumed
    2020-06-22 14:53:00 Resume state saved
    2020-06-22 14:53:00 Extruder 0 reports sensor not working
    

    When this print finishes will upgrade and recheck everything and report back.

    Out of interest, what does mag and agc actually mean?

    PS I realised I post in the wrong category, can an admin move to the sensor one? TIA


  • Moderator

    @dm86 said in Magnetic Filament Sensor:

    PS I realised I post in the wrong category, can an admin move to the sensor one? TIA

    It was already moved. 😉


  • administrators

    'agc' is automatic gain control, used to bring the signal magnitude from the Hall sensor in range. The maximum value available is 128.

    'mag' is the magnitude of the signal from the Hall sensor element, after applying agc. Under normal conditions, 'agc' will be in the range 85 to 105 and 'mag' won't change much. So 'mag' is less useful than 'agc'.

    The fact that 'agc' is at maximum also explains why you get the 'sensor not working' report sometimes, because 'mag' will sometimes be too low for the sensor to work properly.



  • @dc42 Not much joy again today. Tightened down as all 3 screws were loose. 2 did clamp down a bit and I did see the seam close a little bit as I did it. However the third one was loose and turning it didn't seem to tighten it up at all.

    M591 D0
    Duet3D magnetic filament monitor on input 3, disabled, sensitivity 24.80mm/rev, allow 50% to 130%, check every 30.0mm, version 3, mag 129 agc 128, measured sensitivity 10770.89mm/rev, min 0% max 2898% over 1809.2mm
    

    However that seems to have had no improvement at all. When this print finishes/fails I will try taking it apart and giving it a light sand. I appreciate its tight tolerances and all but not a great experience on a £60 sensor. 😖

    Out of interest when do the AGC/MAG values update? If I tweek the screws how can I read updated values? Run M591 after a few seconds of printing or does it need a reboot in-between?


  • administrators

    @dm86, would you like the sensor replaced under warranty? I've never seen a sensor with an AGC reading at maximum.

    When there is no filament motion, changes in AGC reading should be visible in M591 within a second or two. The red flashes of the LED on the filament monitor indicates that the monitor is sending status words, including the AGC value.



  • @dc42 I think that is my only option at this point.

    I spent ages on it last night trying to tweak it in to life. I got a slight improvement on mag after sanding off a rough spot on the 'non-flat' side of the enclosure. But still only got it down to 112, AGC stayed maxed out.

    I also tried it on my Duet2 just to check it wasnt something weird on my Maestro and got the same readings.

    I originally purchased through Hobby Store PL. Do I need to return to them?

    Thanks



  • @dc42 Can you advise how to get this exchanged please?


  • Moderator

    @dm86 said in Magnetic Filament Sensor:

    I originally purchased through Hobby Store PL. Do I need to return to them?

    Contact them for a warranty replacement, reference this forum thread for evidence of warranty approval. In case it wasn't clear from @dc42's answer, we approve a warranty replacement. Sorry for the inconvenience.

    Ian



  • So loads of hastle sending it back to Poland, which then got lost in the post. Credit to Hobby Store for having good customer service and sending me a replacement regardless. However, replacement even worse than the original. Also noticed last post in here a fault sensor also from Hobby-Store.

    Whats going on here? Just a bad batch?

    M591 D0
    Duet3D magnetic filament monitor on input 3, enabled, sensitivity 24.80mm/rev, allow 40% to 130%, check every 20.0mm, version 3, mag 132 agc 120, measured sensitivity infmm/rev, min 0% max 0% over 11519.9mm
    

    Bought a Duet 2 Wifi from E3D that end up being thrown in the bin because it didn't work, really starting to lose faith here. Unfortunately unlike Hobby Store, E3D's customer service is terrible so given up that fight.



  • OK I've taken it apart, checked it, light sanding on one side, tightened it all back down and no improvement on Mag & AGC values. Sensor works intermittently.

    Please can someone advice whats going on and how to proceed please?


  • Moderator

    Hi, we will take another look. Thanks for you patience.

    Have you gone through updating to 3.1.1 as we discussed earlier?



  • I have on my Duet 2 but I'm having wifi problems with that. I then had problems trying to upgrade my Maestro but as the printer is going nearly 24/7 haven't been able to solve that yet. Will try and take another look tomorrow.

    I have tried it on both boards and Mag + Agc values report the same but I don't have working wifi on the Duet 2 I haven't been able to try much of a test print.


  • Moderator

    Sorry to hear you're having so many issues. Please allow for some time zone delay before DC42 has a chance to take a look.


  • administrators

    @dm86 that agc value is high. please mail me, info@duet3d.com and we will work out how to proceed because we don't yet have the new housings needed for a direct replacement.


Log in to reply