More strange pressure advance behaviour
-
OK. No worries. I'll give that a quick try.
BTW I've had a play around with the resolution setting in Slic3R. There is some indication that the value is in mm but I'm not sure what that relates to. Looking at the layer preview, it isn't minimum segment size. A value of 0.5 shows definite signs that the printed circle would come out faceted. Going down to 0.05 shows smooth curves in the layer preview and the gcode file is much smaller. Looking through it, I can see that the segment sizes are all bigger but I'm still seeing quite a variation in segment size for a given curve.
-
David,
I tried 8 X micro stepping and unity (whole steps). Problem persists but visually much more violent and scary to watch.
Ian
-
S3D is becoming the bane of my existence…
Is there a patreon account we can join to encourage you to code a slicer, David?
-
@bot:
Is there a patreon account we can join to encourage you to code a slicer, David?
Count me in..
-
@bot:
S3D is becoming the bane of my existence…
Is there a patreon account we can join to encourage you to code a slicer, David?
Now, that's an idea.
-
@bot:
S3D is becoming the bane of my existence…
Is there a patreon account we can join to encourage you to code a slicer, David?
I contribute bug fixes and improvements to Cura and so I am interested to know why people are not using that slicer given that it is freely available. I understand that no one slicer is perfect and that for a given job, one may do better than another and, at the end of the day, we all have our preferences. Anyway, to avoid hijacking this thread, I will start another.
-
I used to use cura until the 2.x releases where made and I found that it crashed to much so haven't used it since and especially due to the stubbornness of the devs to allow different extrusion regimes (I know that has bee fixed now) and I to have ditched S3D in favour of Kiss 1.6.2 which once you get your head around the guy which is awful ish then I find it produces excellent prints and is the only Slicer I know that does the equivalent of pressure advice in the slicer itself and which can be set up on per material basis it also does variable layer hight's as well (Not as in it can be told what to do but can work it out for itself).
And it is also free (caveat there are a couple of very advanced features that are locked in the free version but most users would not use them). Don't know if it OS or not tho.
Doug
-
David,
I tried 8 X micro stepping and unity (whole steps). Problem persists but visually much more violent and scary to watch.
Ian
I was wrong, I checked the code and it now takes the microstepping into account.
On my test print at 50mm/sec printing speed, the extrusion rate was nominally 2.01mm/sec but it can change between adjacent moves by as much as 0.11mm/sec. This is enough to trigger the code into reducing speed, due to a second-order effect of pressure advance. I will look at how this can be avoided.
-
Ian, I have just tried slicing my test circles using Cura 3.1 instead of S3D and the extrusion speed consistency is much better, about 1% instead of 8.4%. So until I change the pressure advance code to better handle changes in extrusion rate that shouldn't be there, you might like to try slicing your models with Cura instead of S3D. I think that will fix most of the problem.
-
Ian, I have just tried slicing my test circles using Cura 3.1 instead of S3D and the extrusion speed consistency is much better, about 1% instead of 8.4%. So until I change the pressure advance code to better handle changes in extrusion rate that shouldn't be there, you might like to try slicing your models with Cura instead of S3D. I think that will fix most of the problem.
Hi David,
Thanks for that. A couple of things though. I use Slic3R not S3D because it's the best of a bad bunch for multi (more than 2) colour objects. It's been a long time since I used Cura - I'll see if it's any better at supporting multiple parts\tools.
However, as of tomorrow, I'll be up to 9,000 miles away from my printer, the week after that I'll be 10,500 miles away, and the week after that I'll be up to 11,800 miles away, then reversing the trip. Back on 26th Feb. Enjoy the snow folks - I'm off to the other hemisphere
-
David,
Do we have any update on this? To save you trawling back through this thread here is a summary.
Up until 1st October 2017, I had always had problems when doing arcs using high levels of pressure advance with multiple extruders. After a great deal of testing, we got to the point where you wrote this:
1st October 2017
" So I think I've worked out what is going on. When there is a sequence of short moves such as in an arc, the gcode processor may not be able to fill the movement queue as fast as the motion system empties it, especially if it is having to compute and generate step pulses for 5 extruders. If the queue contains insufficient moves to do full lookahead, then the segments in an arc have to be scheduled to slow down at the end, to ensure that the motors can stop if new moves are not added fast enough. When large amounts of pressure advance are used, this causes the extruders to retract filament at the end of the move. This retraction increases the number of steps that must be generated, which further increases the load on the processor. So if the machine gets into a state in which the gcode processor can't quite keep up with the mechanics of the machine and starts doing jerky movements, pressure advance will increase the load on the processor and make the situation worse."Then...
"Here are some possible solutions/workarounds
Reduce printing speed
Use larger segments in your arcs (lower $fn value in OpenSCAD)
Use fewer extruders
Use lower pressure advance
Use lower microstepping, which will reduce the number of steps being generated. Are you using the default x16? If so then you could try x8 on the extruders, especially if you are using the 0.9deg motors that E3D supply for the Titans.
If you are using 0.9deg motors on your extruders, use 1.8deg motors instead. It may be worth using 0.9deg motors in ungeared extruders, but for geared extruders like the Titan I doubt that they offer any advantage.
Make the firmware more efficient at generating steps and/or processing gcodes. The step generation is probably as fast as I can make it already, but I may be able to improve the efficiency of gcode processing. The 1.20alpha series should be faster than 1.19 already.
Make the firmware reduce printing speed automatically when underrun is imminent
Use a faster processor (but we will have to wait for the Duet N^2G for that!)"I tried the simple things like larger segments and I don't use 0.9 degree motors, so at that point I came to the conclusion that if I wanted to use high pressure advance as is needed by my particular setup with the Diamond hot end, and if I want to use multiple extruders, and if I want to print at anything other than very low speeds, then I'd have to wait for the new generation of Duet.
At that point, I could use pressure advance without any issues but only with a single extruder being driven.
Then on 17th Jan I resurrected this old chestnut of a thread and on 18th I discovered that I now had issues using just a single extruder, so something in the firmware changed between October (firmware 1.19 beta8) and mid Jan (Firmware 1.20 and later).
The final conclusion was that the (new) problem was due to changes in the extrusion rate that Slic3r generates. On 21st Jan you wrote:
..............So until I change the pressure advance code to better handle changes in extrusion rate that shouldn't be there, you might like to try slicing your models with Cura instead of S3D. I think that will fix most of the problem.
I kind of took it from that, that you planned to look at changing the pressure advance code. I haven't seen anything in later release notes so was just wondering what the status is. I'm on 1.20.1RC2 btw.
Cheers.
-
@deckingman, no there isn't any update.
Did we ever establish whether slic3r generates GCode with a uniform extrusion rate for curves?
-
@dc42 said in More strange pressure advance behaviour:
@deckingman, no there isn't any update.
Did we ever establish whether slic3r generates GCode with a uniform extrusion rate for curves?
Not really. Going through the gcode file for those test cylinders, what is for sure is that the extrusion amount can differ but there are no changes to feedrate. I'll have to do some maths on the XY coordinates but I'm pretty sure I did it before and discovered that the reason the extrusion amount varies is that the segment size can vary. I'm pretty sure the change in E amount corresponded with a change in XY of the same magnitude.
Most of the time, the segment size is constant for any given arc but at seemingly random points in the file, odd segment sizes appear (for segment size read E amount). I think at one point you or I decided that change in segment size would lead to a change in direction that was sufficient to trigger pressure advance (but my memory is hazy on that so it could be a Red Herring).
-
Try Kisslicer 1.62. S3D just sits there on me desktop, Like a $149 bill.
-
@jmjcoke said in More strange pressure advance behaviour:
Try Kisslicer 1.62. S3D just sits there on me desktop, Like a $149 bill.
I currently use Slic3R. I did try S3D but for me it was hopeless with more than 2 colour objects and also the fact that essentially I have a number of completely different machine configurations. Fortunately, I managed to get a refund within the 30 day period.
Ref Kissslicer - yes it might be worth a try but again, I'd need the Pro version to do 5 colour objects which, means parting with more hard earned for something that might, or might not work.
The BIG problem with all this is that are we starting to tread the path that Duet Firmware will only work with certain slicers? IMO the perfect slicer has yet to be developed and they all have their vagaries and "issues". So to my mind, the firmware ought to work independently of which slicer was used to generate the gcode. I'm not saying it should produce perfect prints - that would be impossible. But it ought to carry out the movement commands that are embedded in the gcode file, regardless of how imperfect those commands might be.
I don't think the Duet team would want to go down the road of "Please buy our boards, they are the best (but they only work with certain slicers)". That's likely to put quite a few people off buying the product, despite that fact that their favourite slicer may not generate the best gcode.
-
OK, so I just installed KISSlicer in order to take a quick look at it. It only lets me configure a printer with up to 4 extruders - I have 5. So that's not going to be any good.
-
@deckingman you are right about us wanting it to work with all slicers. I guess people are asking about the slicers as a potential variable. Does this weird shifting happen in square profile columns?
-
@t3p3tony said in More strange pressure advance behaviour:
@deckingman you are right about us wanting it to work with all slicers. I guess people are asking about the slicers as a potential variable. Does this weird shifting happen in square profile columns?
Hi Tony,
I think you may be confusing this thread with another. It's not a weird shifting thing. This is just about using highish levels or pressure advance, as is required by the Diamond hot end. The issue is only when doing arcs, and is somewhat random in that it doesn't always do it. (Actually, there is another issue related to using pressure advance with multiple extruders and that isn't random - it always does it). However, in this case, even with a single extruder it is random. It manifests itself in erratic carriage movement, and random short pauses resulting in some weirdly shaped circles. Printing a test file which consists of nothing but various different sizes of cylinder, shows this randomness. i.e. for any given layer, one or more or none of the cylinders will exhibit the behaviour but on the next layer, it might be the same cylinder, or a different cylinder, or no cylinders that exhibit the problem.
The gcode file that Slic3R generates shows that randomness in terms of segment size. Generally the segments are consistent for any given circle but now and then, there is an odd one which is larger, followed by a small one and that pattern my be repeated for a few moves before reverting to equal segment sizes.
So the consensus seems to be that it is the non-prefect gcode that is initiating the problem hence the suggestions to try different ones. The trouble is, none that I have tried support 5 extruders so I'm stuck with Slic3R. Short term, I could use a different slicer but then long term, I won't be able to print using 5 extruders. As things are, I can print with 5 extruders (as long as I don't use pressure advance).
The thing is, up until October, I had always had the problems with pressure advance and multiple extruders but using a single extruder was problem free. This is a new issue which started some time between October and January. Same printer, same slicer, same config etc but different firmware.
-
Cura can handle up to 8 extruders.
-
@burtoogle said in More strange pressure advance behaviour:
Cura can handle up to 8 extruders.
Thanks. I'll give it a try when I get the opportunity. Just out of curiosity, why do other slicers impose limits on the number of extruders? I guess Slic3R must have a limit but just to see what would happen, I tried setting the number of extruders in Slic3r to 100 and it all seemed to work. Not that I'd ever use that many but I'm just curious as to why there is a hard limit with some slicers.