M591 P7 - figuring out the other numbers



  • I made my own rotating disk sensor with an optical endstop. I connected the endstop to E0.

    I am not sure about the other numbers, this is what I have so far, I did not try it yet because I am not sure if it's going to work.
    M591 D0 P7 C3 S1 R70:130 L1.26 E10

    I don't understand the R & L and E parameters

    R - looks like an error percentage... but for how long? what I mean is, if the L parameter is not accurate, and the filament goes at 90% does this mean that after an hour (or whatever the time) it will pause eventually?

    I extruded 100 mm of filament, and i counted 126 pulses, so I did 126/100 = 1.26 for the L parameter, If I understood the documentation correctly -> Filament movement per pulse in mm
    Or is it the other way around? 100/126 = 0.79 ?

    E - "minimum extrusion length before a commanded/measured comparison is done" - so I put 10, does this mean that it calculates if it should pause or not every 10 mm ?

    Last question: In most cases it's fine to pause, but I want the option to switch to another extruder and continue printing. I have a Cyclops extruder 2 in 1 out. So when end of filament is detected, I want it to run a g code specific file to retract, and push the filament on the other extruder. Is this possible?


  • administrators

    @cvmichael said in M591 P7 - figuring out the other numbers:

    R - looks like an error percentage... but for how long?

    It's averaged over the extrusion distance specified in the E parameter.

    I extruded 100 mm of filament, and i counted 126 pulses, so I did 126/100 = 1.26 for the L parameter, If I understood the documentation correctly -> Filament movement per pulse in mm

    Correct.

    E - "minimum extrusion length before a commanded/measured comparison is done" - so I put 10, does this mean that it calculates if it should pause or not every 10 mm ?

    Also correct.



  • Thank you!

    Actually 126/100 = 1.26 is wrong, a few seconds after printer started I got this message: "Extruder 0 reports too much movement"

    So I did the reverse 100/126 = 0.7936 and I put that in the config, now it's perfect 🙂

    M591 D0 P7 C3 S1 R70:130 L0.7936 E10

    But it takes a bit long until it detects the filament stopped, I will lower it to E5 mm

    Here is a fresh upload on YouTube with it working:
    https://youtu.be/XXCyZhsfCfs

    Thanks again!


  • administrators

    @cvmichael said in M591 P7 - figuring out the other numbers:

    M591 D0 P7 C3 S1 R70:130 L0.7936 E10
    But it takes a bit long until it detects the filament stopped, I will lower it to E5 mm

    As your sensor resolution is around 0.8mm of filament, you will need to allow (0.8/5) = 16% tolerance just to allow for the limited resolution.



  • I don't really understand your post. Is the 16% tolerance something I should enter in the M591 parameters?

    I tried changing the E10 to E5, but it did not seem to make a difference...maybe it did, but I did not notice.

    I will redesign the wheel to have double the teeth, that should improve the resolution.

    Also, is there a way to run a g-code file instead of the pause?


  • administrators

    @cvmichael said in M591 P7 - figuring out the other numbers:

    I don't really understand your post. Is the 16% tolerance something I should enter in the M591 parameters?

    What I mean is that the R parameter will have to allow an additional +/-16% compared to a sensor with higher resolution; or an additional 8% compared to using 10mm length on the same sensor.

    I tried changing the E10 to E5, but it did not seem to make a difference...maybe it did, but I did not notice.

    It should have increased the reported variability under the same conditions by 8%.

    Also, is there a way to run a g-code file instead of the pause?

    Not yet.


 

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