Jump to content

Cura 2.x - "Coast" causing extruder motor noise


bimmersix

Recommended Posts

Posted · Cura 2.x - "Coast" causing extruder motor noise

Let me start by thanking the Ultimaker team for creating a really nice slicer package and making it available for even non-Ultimaker owners. Also, big thanks for adding Delta support back in 2.4 beta.

I recently installed Cura 2.3.1 and the Cura 2.4 beta and I'm really impressed with them. 2.4 actually fixed one of the two issues I was having (3rd party printers connecting reliably not withstanding).

I have a Rostock Max v2 with a Prometheus hotend, 0.4mm, and a 5.18/1 geared extruder. It works very nicely and creates great prints, EXCEPT with stringing because retraction on a long bowden setup is tricky.

Because of this, I was really interested in the Coast feature in Cura and S3D. Coast completely fixed my stringing issues. However, Coast in Cura causes a strange symptom - every time the print gets to a "coast" spot, the extruder clicks loudly but doesn't move (and it isn't supposed to move), almost like it is being told to accelerate very quickly and doesn't have the power to do so. This happens frequently, but is completely absent in prints with Coast off but with all of the same settings otherwise. Coast in S3D does not cause this.

Does anyone have suggestions? Tonight, I can run the gcode for a small print with and without Coast and upload for comparison. I've spent a bit of time trying to figure this out but have reached the end of my abilities.

-Joel in Phoenix

  • Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    Just pick one of the instances where the machine makes the noise and find the 5 gcodes before and after that point. this should be easy to do - just print 2 cubes and it will retract between them. Do one shell width wall and no infill to keep things fast and simple.

    Ideally it will happen on the bottom layer. Then you can easily know where in the gcode the problem occurrs. Slice with both slicers and post the gcodes just before and after the event. I'm very curious about this. I suspect the movements have different feedrates "F" gcode from the 2 slicers and I suspect that's the primary difference. Although it's possible that s3d sets the acceleration or jerk parameters. Or cura might also set those. Typically acceleration and jerk are not setup by the slicer and that's a printer thing but there are gcodes for that.

    • Like 1
    Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    Thanks so much for the fast response.

    I watched the gcode carefully and confirmed it is at the "moment" that the issue happens. I had the same thought about feedrates and accel. The extruder works fine at 80 mm/sec on retracts, which is the max firmware setting for it, and I turned the acceleration way down from the defaults with no effect on the sound. This gcode is all from Cura. I don't see anything weird, so I'm not sure what to make of it, but that is why I'm asking the experts.

    Excerpt from retraction cube print, coast enabled:

    ;TYPE:WALL-OUTER

    G1 F3000 E25.68521

    G1 F900 X-4.8 Y4.8 E26.15605

    G1 X-4.8 Y-4.8 E26.62689

    G1 X4.8 Y-4.8 E27.09773

    G1 X4.8 Y4.385 E27.54821

    G0 F720 X4.8 Y4.8 <----------This is the coast move

    G0 F5625 X4.6 Y4.8

    G0 X4.619 Y4.619

    ;TYPE:SKIN

    G1 F3000 E27.56857

    G1 F900 X-4.619 Y-4.619 E28.20933

    G0 X-4.689 Y-4.689

    G0 F5625 X-4.053 Y-4.619

    G1 F900 X4.619 Y4.053 E28.81083

    G0 X4.689 Y4.123

    G0 F5625 X4.619 Y3.488

    G1 F900 X-3.488 Y-4.619 E29.37314

    G0 X-3.558 Y-4.689

    Same place, no coast:

    ;TYPE:WALL-OUTER

    G1 F3000 E25.68521

    G1 F900 X-4.8 Y4.8 E26.15605

    G1 X-4.8 Y-4.8 E26.62689

    G1 X4.8 Y-4.8 E27.09773

    G1 X4.8 Y4.8 E27.56857

    G0 F5625 X4.6 Y4.8

    G0 X4.619 Y4.619

    ;TYPE:SKIN

    G1 F900 X-4.619 Y-4.619 E28.20933

    G0 X-4.689 Y-4.689

    G0 F5625 X-4.053 Y-4.619

    G1 F900 X4.619 Y4.053 E28.81083

    G0 X4.689 Y4.123

    G0 F5625 X4.619 Y3.488

    G1 F900 X-3.488 Y-4.619 E29.37314

    G0 X-3.558 Y-4.689

  • Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    Looking at the gcode it looks like it should print fine. Basically it is drawing an approximately 9mm trace and then coasts the last .5mm meaning no extruding the last bit (looks like maybe a 10mm cube).

    However there is one striking thing. Having looked at the motion planner for Marlin hundreds of times and having poked through most of the lines of code repeatededly (and also looking though the motion planner for repetier and redeem) there is a bug in Marlin I found if you move twice in the same direction AND CHANGE SPEED. the bug sets the junction speed between 2 separate gcodes to an extremely low value in a buggy sort of way. This is the "jerk" parameter which limits changes in vector velocity at vertices but gets confused if there is also a speed change.

    Anyway I see you are printing VERY slow there so it seems strange but I would make all the speeds the same. So right now I see 15mm/sec for the printing move followed by 12mm/sec for the coast move. Try to make these speeds the same please. In fact for a test please make all printing speeds the same speed (I recommend 20-30mm/sec - I don't think there is much reason to go down to 15mm but 15mm/sec is fine also). However the nonprinting moves can still be fast but just for experiment lets keep them at 150mm/sec or slower.

    • Like 1
    Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    Also we are comparing cura to cura here. It would be nice to compare s3d to cura to see how s3d implements coast. But only if my suggested test doesn't yield anything useful.

    • Like 1
    Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    You are correct, it is a set of 10mm cubes.

    The firmware is the latest Repetier (0.92, I believe) and I've been using Rep since that is what originally came with my Rostock a year ago, when I knew nothing of other firmwares.

    I will slice in S3D and submit for comparison.

    Regarding Marlin and the differing speeds - I actually sliced this with Cura keeping the "Coast Speed" at 100%, keeping the last move at the same speed, but it exhibited the exact same symptom.

    I can increase the speed for your test, but the reason it was slow was just because it was the first layer. I normally print at 40 mm/sec and travel at 250 mm/sec, being a delta. I can change the travel speed and reslice. I'm also happy to reslice with faster print speeds for the first layer, but the symptom does persist even when moving to the full print speeds.

    Again, I appreciate the time you have put into this.

     

    Looking at the gcode it looks like it should print fine.  Basically it is drawing an approximately 9mm trace and then coasts the last .5mm  meaning no extruding the last bit (looks like maybe a 10mm cube).

    However there is one striking thing.  Having looked at the motion planner for Marlin hundreds of times and having poked through most of the lines of code repeatededly (and also looking though the motion planner for repetier and redeem) there is a bug in Marlin I found if you move twice in the same direction AND CHANGE SPEED.  the bug sets the junction speed between 2 separate gcodes to an extremely low value in a buggy sort of way.  This is the "jerk" parameter which limits changes in vector velocity at vertices but gets confused if there is also a speed change.

    Anyway I see you are printing VERY slow there so it seems strange but I would make all the speeds the same.  So right now I see 15mm/sec for the printing move followed by 12mm/sec for the coast move.  Try to make these speeds the same please.  In fact for a test please make all printing speeds the same speed (I recommend 20-30mm/sec - I don't think there is much reason to go down to 15mm but 15mm/sec is fine also).  However the nonprinting moves can still be fast but just for experiment lets keep them at 150mm/sec or slower.

     

  • Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    Ah. A delta. that changes things a bit. Still the speed changes comment is relative. I would go in and replace all speed changes so it doesn't change speed at the coast point. Remove the F720 (or change to F900) or if it only happens on faster layers remove do the similar substitution there (with global replace).

    I'm looking forward to seeing the gcode from s3d.

  • Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    Ok, so here are the two differences I can spot now between S3D and Cura:

    S3D uses relative extruder coordinates on each layer, and;

    S3D uses G1 moves, but Cura uses G0 and G1. However - both Cura files, with and without Coast enabled, use the G0 moves but no coast doesn't make the noise.

    Cura + Coast and print/coast speeds being equal, as you suggested, extruder still clicks/bangs like it is trying to rapidly accelerate and can't. I'm beyond my ability to interpret gcode, so maybe something will stand out to you. I also know the speeds are not identical - tried to get them close but have sliced so many test files of this I am starting to lose track. By the way, I have not experienced this slicing with Rep Host, slic3r, or Mattercontrol, although those don't have a coast option, but otherwise this behavior is anomalous.

    Cura + Coast (a few layers in):

    ;LAYER:3

    G0 X54.211 Y-4.4 Z0.9

    G0 X45.27 Y4.73

    G0 X45.2 Y4.8

    ;TYPE:WALL-OUTER

    G1 F1800 X45.2 Y-4.8 E141.29238

    G1 X54.8 Y-4.8 E141.60627

    G1 X54.8 Y4.8 E141.92016

    G1 X45.825 Y4.8 E142.21362

    G0 X45.2 Y4.8

    G0 F15000 X45.2 Y4.6

    G0 X45.379 Y4.401

    ;TYPE:SKIN

    G1 F3000 E142.23406

    G1 F1200 X54.4 Y-4.62 E142.6512

    G0 X54.47 Y-4.69

    G0 F15000 X54.619 Y-4.273

    S3D + Coast, same place, same layer, although paths are slightly different:

    G1 X45.720 Y4.280 F9000

    G1 E0.0000 F3000

    G92 E0

    G1 X45.720 Y-4.280 E0.3416 F1800

    G1 X54.280 Y-4.280 E0.6833

    G1 X54.280 Y4.280 E1.0249

    G1 X46.020 Y4.280 E1.3546

    G1 X45.720 Y4.280 F1800

    ; outer perimeter

    G1 X45.240 Y4.760 F9000

    G92 E0

    G1 X45.240 Y-4.760 E0.3800 F1200

    G1 X54.760 Y-4.760 E0.7599

    G1 X54.760 Y4.760 E1.1399

    G1 X45.540 Y4.760 E1.5079

    G1 X45.240 Y4.760 F1200

    ; solid layer

    G1 X46.638 Y3.872 F9000

  • Link to post
    Share on other sites

    Posted · Cura 2.x - "Coast" causing extruder motor noise

    It's basically the same stupid code. It should do the same thing.

    I'm 90% sure Marlin ignores G1 versus G0. No difference. One is supposed to be "linear" and the other "fastest" but Marlin *always* moves linear (none of this X axis gets there first crap). Anyway G1 versus G0 means nothing.

    relative Extruder position versus absolute extruder position should be no difference also.

    The only difference of any consequence is that the move afterwards is 250mm/sec travel versus 150mm/sec in S3D. That can definitely make a big difference. It can make a big difference in the move before that.

    Like I said earlier - there is a bug in Cura on speed changes. I'm thinking the 250 (plus a bug in Marlin I know about) is the problem.

    In the cura it's doing a 180 degree turn in the Y axis and jumping from 30mm/sec to 250mm/sec at the same time. The way the "jerk" code works it will limit the junction speed to I beleive 2mm/sec. Maybe the entire coast section is limited to that - not sure. That would explain it. Lower the travel speed to 100mm/sec just to see what happens.

    I guess I should point out this bug to someone someday. Hmm. I have a nice fix for it but writing it, testing it, and doing a pull request is a lot of work.

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
        • 0 replies
    ×
    ×
    • Create New...