DIY magnetic filament monitor
-
Hi,
I am currently working on a DIY magnetic filament sensor similar to the Duet one. It works with the same "M591 D0 P3 C3 S1 R70:130 L24.8 E3.0" type of command that is proposed on the Duet site.
https://duet3d.dozuki.com/Wiki/Duet3dFilamentMonitor_RotatingMagnetVersionThe monitor works beautifully, to the exception of one thing. When I input an "E" value of 15mm, the sensor only detects a lack of movement after a delay of twice that value (in this case 30mm). The precision of the detection is hence always the half of what is imputed.
Here is how I measured these values:
1- I cut the filament so that the length of filament that remains after the sensor is equal to twice the value inputted in E (in this case 30mm). This way, the calibration sequence or twice the E value measures filament and the sensor stops getting an input after the sequence.
2- I start a print and wait for the Duet interface to return a "too low movement" message.
3- I then read the length of filament extruded directly on the Job status interface. This value is always 4 times the value of E (in this case 60mm).From what I could gather, that "4 times" comes from twice the length of E from the calibration sequence + a 2XE multiplier coming from I don't know where. I cannot seem to find the reason of that multiplication. Is it a bug?
The way I understand the system, Duet receives a number of pulses for an extruded distance. It then calculates the distance/pulse. If in a time interval of "E" extruded filament it receives X pulses, it calculates the sensed distance by multiplicating the number of pulses by the sensitivity inputed in the "L" value. That sensed distance is then compared with the extruded distance from the extruders. it the value is too far off, the print stops.
I am using a hobb with a perimeter of 43.982mm, but it should not alter the E value as the system is calibrated. I am also using a different chip, the "TLI5012B". I am using the RepRapFirmware for Duet 2 WiFi/Ethernet version 2.05.1
Could anyone please explain to me why I keep getting a X2 multiplicator for the E value?
Thank you