Am I doing something stupid?

  • Okay, so I wired it up, get the three green and red flashes of LEDs.

    I'm using

    M591 D0 P3 S23.5 C3 R50 E3.0  ; Duet3d sensor for extruder drive 0 is connected to endstop input 3 (E0), 23.5mm/rev, 50%  error detection tolerance, 3mm comparison length
    M591 D0                       ; display filament sensor parameters for extruder drive 0

    in config.g as per wiki.

    Set calibration by sending M591 R-50

    Then print a cube.

    If I send

    M591 D0 during print I get:

    M591 D0
    Duet3D filament sensor on endstop 3, no microswitch, 23.5mm per rev, check every 3.0mm, tolerance 50.0%, current angle 351.9

    And repeating this gives changes of angle, so the duet is reading the angle from the sensor.

    But after the print I send it again and get the same message and M122 says

    Extruder 0 sensor: angle 351.9, ok, no calibration data

    So I am presuming at this stage I am just doing something stupid?

  • According to the Gcodes wiki you need a negative R value to put the FW into Calibration mode could this be the issue.

    Don't know as I dont have a sensor


  • Maybe I need to use R-50 in config.g rather than just by sending it through the console.

  • No it doesn't seem to make a difference, I wouldn't expect it to really.

  • Did you send M591 D0 C3 before the M591 R-50?

  • No, I have M591 D0 P3 S23.5 C3 R50 E3.0 in config.g, although I have also tried with R-50 instead, which didn't make a difference.

    then I sent via console M591 R-50 to set calibration mode as per

    If I remove the M591 from config.g and send

    M591 D0 C3

    I get

    M591 D0 C3
    Extruder drive 0 has no filament sensor

  • Just reading the directions, it says to send the M591 D* C* before the R-50. I would assume you still need the full M591 in the config.g.

  • Just tried that, now getting further.

    So I put the M591 D0 P3 S23.5 C3 R50 E3.0 back in config.g

    Then sent M591 D0 C3
    Then sent M591 R-50

    Then printed an object.
    Now when I send M591 D0 I get back just the parameters I entered in config.g but if I send M122 then at the bottom I now get

    Extruder 0 sensor: angle 293.9, ok, 28.05mm/rev, tolerance +8% -10%

    Which is progress. I assume it has derived the 28.05mm/rev value, and determined the tolerance, not sure what +8% to -10% means, but I suppose I enter a tolerance into M591 in config.g which allows for this measured tolerance and some overhead to prevent false positives, i.e. 20%.

    Now in config.g it looks like M591 D0 P3 S28.05 C3 R20 E3.0

    I'll try it now but stop the filament moving and see if it works to pause the print.

  • administrators

    It shouldn't whether you configure the filament sensor in one command or more than one, but you need at least the D, P and C parameters to configure it.

    When the firmware is in calibration mode, a certain amount of filament has to be extruded during the print before calibration data starts to become available.

  • I think I have it calibrated now. As for the tolerance, what value would you recommend I enter for R parameter based on "tolerance +8% -10%"?

  • Might adjust the wiki slightly as its not very clear how to do this.

  • administrators


    I think I have it calibrated now. As for the tolerance, what value would you recommend I enter for R parameter based on "tolerance +8% -10%"?

    I suggest at least 20%. You may find that you need more, depending on whether your test print covered worst-case conditions.

  • Thanks thats what I figured. Why does the wiki mention " Use a positive or negative sign as reported by M591" surely its +/- x%?

  • Okay so i gave it test, reached in and undid the idler. After around 3-4 seconds it went to pause and displayed:

    I re-tensioned the idler and hit resume and maybe missed around 1/4 of a layer of infil on a 20x20 cube, so quite recoverable.

    It does work.


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