Filament loading with stall detection macro issue



  • This macro correctly does the quick load and stall but then never continues to do the slow loading part (bolded)

    M400; Wait for current moves to finish
    M913 E50; reduce the motor current
    M83; relative extrude
    G91; set relative motion required for delta
    G1 S1 E1000 F20000; extrude
    M400; wait for current moves to finish
    M913 E100; restore motor current
    G1 E50 F3600 ; extrude slowly 50mm of filament
    G90; restore absolute movement



  • maybe you need to enable cold extrusion with M302 P1 and afterwards disable with M302 P0



  • @carlosspr said in Filament loading with stall detection macro issue:

    maybe you need to enable cold extrusion with M302 P1 and afterwards disable with M302 P0

    I don't want to do this cold. I preheat the hotend


  • administrators

    Your macro looks OK to me, although the G91 and G90 commands are not needed unless you are running old firmware. Which firmware version are you using?



  • @dc42 Duet WiFi 1.02 or later

    Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 2.03RC2 (2019-05-14b2)

    Duet WiFi Server Version: 1.22



  • Maybe a daft question but is there anything else I need to do to enable sensorless loading? Maybe i'm missing something in my config.g file?


  • administrators

    @totalitarian said in Filament loading with stall detection macro issue:

    Maybe a daft question but is there anything else I need to do to enable sensorless loading? Maybe i'm missing something in my config.g file?

    You need to set the stall detection threshold using M915, but that's all.

    I'll try out your macro on my bench system tomorrow.


  • administrators

    I changed some values in your macro to work with my bench setup:

    M400; Wait for current moves to finish
    M913 E90; reduce the motor current
    M83; relative extrude
    G91; set relative motion required for delta
    G1 S1 E500 F3000; extrude
    M400; wait for current moves to finish
    M913 E100; restore motor current
    G1 E50 F300 ; extrude slowly 50mm of filament
    G90; restore absolute movement

    Note in particular that I greatly reduced the extrusion speed for the last 50mm of filament, to 5mm/sec. It's working for me.



  • Thanks, I suspect it's the fact I didn't set any M915 values. I'll also give your code a go. 🙂



  • Getting there, it now does the fast load - stalls but doesn't stops loading - then loads the slows part

    This is my revised macro. Just need to figure put why it isn't stopping when the motor stalls now

    M400; Wait for current moves to finish
    M915 P3 S10 F0 R0; set stall detection threshold
    M913 E90; reduce the motor current
    M83; relative extrude
    G91; set relative motion required for delta
    G1 S1 E500 F3000; extrude
    M400; wait for current moves to finish
    M913 E100; restore motor current
    G1 E50 F300 ; extrude slowly 50mm of filament
    G90; restore absolute movement


  • administrators

    The stall isn't being detected.

    @totalitarian said in Filament loading with stall detection macro issue:

    M915 P3 S10 F0 R0; set stall detection threshold
    M913 E90; reduce the motor current

    I know those are the values I used, but those M915 S and M913 E values are highly unusual. This is because I was running 3A Nema 23 motors (which I happened to have on my test rig) at 1A, so they were already running at a very low current for the size of motor. More commonly you would use E30 or E50 in the M913 command, and about S3 in the M915 command. You will need to tune those values until the stall is detected reliably.



  • Thanks dc42, got it working in the end

    M400; Wait for current moves to finish
    M915 P3 S2 F0 R0; set stall detection threshold
    M913 E90; reduce the motor current
    M83; relative extrude
    G1 S1 E500 F3000; fast extrude
    M400; wait for current moves to finish
    M913 E100; restore motor current
    G1 E20 F300 ; extrude slowly 20mm of filament


Log in to reply