Enhancing pressure advance
-
@dc42 said in Enhancing pressure advance:
@deckingman said in Enhancing pressure advance:
In theory, PA should mean that one move finishes with zero residual pressure and the next one starts at that same residual pressure of zero.
Only if extrusion stops completely between moves.
I know. That's why, I went on to say (quote)...... "But what might balls that up is "jerk", because the print head doesn't come to a standstill between print moves, and so neither does the extruder."
-
@bot said in Enhancing pressure advance:
@Edgars-Batna Hmm the 100 mm/s parts go fast and the 6 mm/s parts go slow! There are only those two feedrates. Also, I think I have the retraction speed and the travel speed ten times higher than normal so I can scale down the speed of the print without slowing those moves down.
Check the gcode and adjust the speeds as needed or whatever! Its a 0.2 mm line width and a 0.04 layer height (after the first layer) so I'm not sure if you'll be able to print it anyway.
Unable to print with 2.05.1 official at all. Getting just loud extruder motor chirps. My other, normal, test print went fine, tho.
If you feel adventurous, here's modified firmware (rename to .zip): Duet2CombinedFirmware.txt
Usage: M207 C[your constant]. For multiple extruders specify a list: A:B:C...
M207 reports the values as "compensation".
Only tried on 2 extruder mixing CoreXY setup.
Only works with firmware retraction (G10/G11).Looking at your GCode, steps with E0.0000x just plain won't work and steps with E0.000x will have tons of error because the computations in the firmware are not this precise. Maybe you are chasing a completely different beast... Could you create a test with reasonable extrusion rate?
I'd post source code but git is getting on my nerves regarding newlines, so this will need to wait until tomorrow.
-
@Edgars-Batna Unfortunately, this is a reasonable extrusion rate and the areas I need to tune. Low resolution prints don't really need the extra attention, at least for my uses.
But, I suggest you generate a g-code yourself that just uses the top print speed you can achieve with a move that comes after that is the slowest speed you can achieve.
Also, what do you mean by the firmware doesn't compute that precise? AFAIK, the firmware uses 6 digits of precision. No?
-
@bot said in Enhancing pressure advance:
Also, what do you mean by the firmware doesn't compute that precise? AFAIK, the firmware uses 6 digits of precision. No?
Don't get me wrong. I want this to work too! But, the chirping on my printer are lost extruder steps. I'm talking from experience from digging around for weeks in the firmware a year ago.
Excerpt from your file:
G1 X20.514 Y12.885 E0.0004
G1 X20.514 Y12.767 E0.0004
G1 X20.627 Y12.767 E0.0004
G1 X22.028 Y14.168 E0.0066
G1 X22.036 Y14.168 E0.0000
G1 X22.036 Y14.104 E0.0002
G1 X22.106 Y14.104 E0.0002
G1 X22.124 Y14.026 E0.0003So, just at a basic glance, there is like nan% up to inf% of compensation required. KABOOM the computations go.
-
@Edgars-Batna Nah dude. It works fine. Trust me, it's been tested thoroughly.
My extruder microstep resolution is about 0.00025 mm
[Edit: I mean, everything else works fine and there are no hugely obvious errors. For PA, I dunno maybe this messes it up but it doesnt seem like it.]
-
@bot said in Enhancing pressure advance:
@Edgars-Batna Nah dude. It works fine. Trust me, it's been tested thoroughly.
My extruder microstep resolution is about 0.00025 mm
[Edit: I mean, everything else works fine and there are no hugely obvious errors. For PA, I dunno maybe this messes it up but it doesnt seem like it.]
Alright, my extruders go at 0.00236 mm, but be warned. I also didn't understand why S3D only outputs 4 digits after comma...
I'd also be interested to see if my implementation does anything for you. For me it greatly reduced blobbing/stringing at the start of a move with C0.4, but I only ran two tests.
-
@Edgars-Batna I also hate that s3d outputs only 4 decimal places, but it seems precise enough. Even though I can microstep 0.00025 mm, it wouldn't be accurate. Also, a single microstep is never going to be an issue at this scale. A tiny blob of filament is many microsteps so it evens out.
As for trying the firmware, I'd love to but I'm scared!!! This is my only printer right now and if I mess it up I'll be crying more than covid-19 has be crying already.
-
I extended the testing up to PA value S0.8. I may need to go further.
My initial reaction is that the values of PA required for different XY acceleration values seems different. I wonder if, when the firmware slows down the XY acceleration to accomodate extruder jerk, if the PA is not being scaled with the new acceleration but instead uses the un-slowed-down acceleration to calculate PA? (But this doesn't have to do with the topic at hand. I'm using the same acceleration value for all these tests, I'm just reacting based on tests I did earlier with different XY accel.)
I'll post picture comparisons later.
-
@bot said in Enhancing pressure advance:
As for trying the firmware, I'd love to but I'm scared!!! This is my only printer right now and if I mess it up I'll be crying more than covid-19 has be crying already.
Understandable, I usually have the hard power button in my hands when testing new stuff. Most of it is no longer new to me due to extensive trial & crash through my other topics, so I feel comfortable implementing this part of the firmware and the printer has enough flex already to not break entirely, but, yeah, every line of code is a bug.
@dc42 Could you please take a look if there is something hugely illegal:
https://github.com/mdealer/RepRapFirmware/commit/841e38d9ad39dc408d785f6b75ab3e6182344f02 -
@Edgars-Batna said in Enhancing pressure advance:
@dc42 Could you please take a look if there is something hugely illegal:
https://github.com/mdealer/RepRapFirmware/commit/841e38d9ad39dc408d785f6b75ab3e6182344f02Please explain what the changes are intended to do.
-
@dc42 said in Enhancing pressure advance:
@Edgars-Batna said in Enhancing pressure advance:
@dc42 Could you please take a look if there is something hugely illegal:
https://github.com/mdealer/RepRapFirmware/commit/841e38d9ad39dc408d785f6b75ab3e6182344f02Please explain what the changes are intended to do.
@Edgars-Batna said in Enhancing pressure advance:
I think I implemented it this way:
- The average extrusion rate of last 5 seconds is stored.
- Unretraction move applies your formula: Adjusted_Unretract_Distance = Nominal_unretract_distance + (Target_Extruder_Speed_of_Second_Move - Target_Extruder_Speed_of_First_Move) * New_Constant
- The remainder of extrusion is stored for later.
- The next moves are adjusted by the remainder, factored by move time. 5 second moves get the most of the extrusion remainder. Remainder is passed on from move to move.
Result is a small fixed amount of total underextrusion. There you see the time constants that could also be adjustable.
It's basically what @bot suggested plus my implementation. I think it's just another variable for relieving or building up pressure in the hotend but bound to the unretraction move. Sorry, no hard facts or theory. This might well be just backlash of my own printer in the pics above, it only helped in that particular case and significantly reduced stringing in another test with a real print. I just ran some tests with more or less bot's problem, but it appears it just makes it worse without further investigations.
I'm analyzing and will post some more pics soon. -
Sorry, I got a little delayed trying to find ass wipe to buy anywhere... I'm almost finished post-processing the images of all the prints so they can easily be compared. I'll post them in a matter of hours.
-
@dc42 I have finished the test and uploaded the results.
They are here.
The photos are all there, there is a readme.txt file with additional info about the tests, and the gcodes used for the tests are there.
I'll refrain from stating any opinion. I'd like to hear your thoughts raw. Read the readme.txt file, though, because I do mention a note about the bed level during the tests.
I realize you also wanted me to vary the V2 speed, which in this test is always 40 mm/s. If you wish I can repeat these tests with 80 mm/s instead of 40 mm/s as the top speed, and then repeat once again a test but with the slow speeds doubled and 80 mm/s as the top speed. Let me know if you would find this useful.
Here is an example of one of the images. They are all formatted this way:
-
@bot regarding the pressure inside the melt chamber:
The new e3d Hermera extruder can push filament with up to 10ish kg (100N).
1,75mm Filament has a cross section of roughly 2,4mm^2.100N / 2,4mm^2 = 40N/mm^2
Hence the pressure inside the hotend can't exceed 40N/mm^2 = 40MN/m^2 = 40MPa = 400bar
This is the maximum pressure based on the design of the gearing. The NEMA17 Motor can't produce the torque to reach that pressure. There is insufficient information about the real-world pushing force of this extruder.
https://e3d-online.dozuki.com/Document/H4JSEgZEtxEsa5oE/Hemera-Datasheet-(Edition-1).pdfIf the viscocity of molten plastics in the hotend is known one could calculate the pressure needed to uphold a given materialflow through the nozzle. Such calculation can also correct for the nozzle shape and material (friction), making comparison between brass and non-stick coated nozzles possible.
BR, Marius
-
@bot What if you run every second or third PA value for, let's say, 10 layers. That might dilute the bed level issue enough to ignore it. I think you could do a very rough run with, say, PA 0, 0.8, 1.6 just so we get a feel for the error in play. Regarding the images, I think we only care for the transition points, so, REALLY zoom in on that. Maybe we're not even interested in true dimensions but just the ratio of the transition. Idea pot is boiling.
I wanted to post some pics, but then, running tests, realized it's no use due to my bed level and inductive probe peculiarities unless I do 10 layers or more...
-
@Edgars-Batna Yeah, the photos are just from my smart phone. I could/should set up a tripod or camera rig to make each photo identical.
The problem with doing more than one layer is that it becomes nearly impossible to capture the results on camera. The one layer, fixed on the bed with a contrasting background may be the best hope we have. I think the bed level was messed up because I changed the bed temperature. Though, it's not really an issue of leveling or tramming, it's an issue of flatness. The bed its not flat. Usually, I'm not printing flat on the bed so this is no issue but for these tests it's cropping up. I might select a region of the bed that is more flat to perform the tests, but I still think these results give us an idea of what is happening.
-
Looked through the images multiple times. The best ones from my point of view are somewhere in range of 1.0-1.4. It could be the margin for error... But, one thing that pops into the eye is that 4-40 contains significant imperfections and that with higher PA it gets worse. No value is optimum at those speeds. Almost like PA needs to be more aggressive just around the acceleration sections.
-
@Edgars-Batna Yes, I would agree with those observations. At these settings, S1.0 is IMO best.
I'm not sure if this over-extrusion at the beginning of slower print moves is an error in PA. I've always been able to get good results by using PA for infill and other sections which just need to be close enough, and slowing down the print enough on the perimeters to give perfect extrusion because it's all one slow speed.
I can also get perfect extrusion by using these extremely low jerk and accel values, but then the top speed becomes a limit of perfect extrusion (due to stepper motor cogging? dunno), and if we have different feedrates in the print, we're bound to get these occurences of slight over-extrusion at the beggining of a slower feedrate section if coming from a higher feedrate section.
I just wish for the plain-jane simple unretract modifier I outlined above. I realize that E0.0000 moves that S3D stupidly generates would mess up the calculation of the target E axis speed, but the calculator could be instructed to ignore E0.0000 lines and look for a G1 line with non-zero E values to calculate the target speed from.
I can tune PA to be good enough for all other occurences.
-
Actually, it does seem like there is a problem using (high values) of PA with these ridiculously low extrusion rates. Now that I have started a real-world print with the now higher value of S1.0, there are ocassional huge blobs of filament extruded in areas, like support structures, that sometimes produce tiny little segments.
-
I momentarily had a post with a couple photos of what I assumed may have been problems with low extrusion rates but I thought it may not be the case and it just muddied the discussion so I removed it. FYI to anyone who saw it and thought they were going crazy. Ignore this post. Nothing to see here, move along.[Edit: to really play gas light with you I now restored that post because I confirmed it definitely is a problem: periodically, a huge blob of filament will be extruded. Consistently in that same support spot, and as well as others I think.]