Help Filament Sensor (Pulsating Type)



  • Hi ,
    i am currently building a filament sensor based on a reprap hall-e sensor.

    Personal motivation:
    I really need filament sensor due to large amounts of out of spec filaments. surface quality doesn´t matter and refilling and restarting after grinding is not a problem..but manually restarting failed prints takes just too much time.

    Let me shortly describe my setup:

    Not my picture but same components:
    alt text

    The Filament passes through 2 rubber cylinder mounted on an axle with bearing to a housing.
    One of this axles rotates a magnet which gets detected by the hall-e sensor.

    passed filament per pulse
    dr = rubber diameter = 8
    (maybe an effective diameter due to compression needs to be used, something like 7.75 or so)

    Thus the circumference (i.e. 1 revolution i.e. 1 pulse):
    1 pulse = 2*pi *dr/2 = 24.34 mm

    This is verified by running calibration mode of M591 (with S0 ).
    It reports roughtly 24.x as i have definied via L parameter (see below)

    Definition of Sensor from config.g:

    ; Hall-E Filament Sensor
    M591 D0 P7 C3 S1 R50:150 L24.0 E50.0
    ; D0=Extruder 0, P7 = Pulse (P3=MagneticDuet); C3 = Input Connection (0=X,1=Y,2=Z,3=E0...)
    ; S(0/1) = disable/enable monitoring; Raa:bb allowable error
    ; Lnn Filament movement per pulse in mm
    ; Enn Extrusion Length before comparison
    ; M591 D0 ; display filament sensor parameters for extruder drive 0

    Problem:
    The E Value needs to be pretty high in comparison to my L value.
    Meaning: to make sure i get a proper extruder length sensor reading i need multiple pulses per E-value.
    Example:
    If one pulse is 24mm (L24 ) than i could check the first time after exactly 24mm (E24). However due to different kind of errors i can not check exactly at 24 mm because the sensor reading might just not have recognized the first pulse because a very little amount of filament is missing (true extrusion is maybe 23.99).
    As a response of the M591 command i get an large error!

    This suggests that the allowable error is directly related to the number of pulse per extrusion check.
    Based on my feeling (don´t judge me here 🙂 ) this means that a somewhat tolerable error due to discretisation is reached by using more then 6 or 7 pulses per extrusion check. This would mean an maximum error of roughly 15%.

    Lets formulate this the other way around: a reliable extrusion check E is valid after 7*L. in my case: E168. (Feeling like half of my printed testcube: true measure was 25% of the model...somewhat late to check for missing extrusions 😉 )

    Possible solutions:

    1. using more magnets per revolution (costly and most like only possible with the next solution due to space requirements)
    2. gearing the system for better ratios (did i mention space requirements? besinde some slip, rattling and what so ever)
    3. getting more information from the magnetic field. as far as i know (no expert here...) the hall e sensor does not only give cut of binary signals but voltage drops (linear, sinusiodal...?) this could be incorporated in the filament sensor system.

    Is there anything else i missed?
    Every help is really appreciated 🙂


  • administrators

    I agree with your analysis. You need much more than one pulse per 24mm of filament motion.



  • Thanks for your response!
    I guess i can increase the resolution by roughly a factor of 30:
    3:1 via gears + 10 magnets per gear.

    Maybe that´s enought!



  • Just a quick update. Prototype sketching is done...let´s wait for the print.

    0_1528560713706_FilamentSensor.PNG


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.