After looking at the two recent posts here in this forum where users had uploaded Excel spreadsheets for calculating the A and B values for the M592 command, I spend several hours trying to measure the different speeds, run the spreadsheet, measure results after setting the M592 command, etc. I was getting nowhere. The values I was getting were leading to wierd results where the variation in what feeds I measured at different speeds was actually larger than the unmodified initial measurements. I did this so many times it's not funny.
I'd decided not to try doing it with 50mm tests. I'd gone for 100mm tests. I wasted hours not noticing that I was using 50mm movement commands with 100mm extrusions, which means that my extrusions were happening twice as fast, and I was quickly getting to the point where my extruder would slip.
I was about to give up, but I decided to try it one last time.
- I used 150mm movements with 150mm extrusions.
- I measured what I got with no non-linear adjustment at five feed rates, 1-5mm/s. At 6mm/s I was seeing slippage and getting a bogus result.
The reason I did the 150mm extrusions was because I was marking with a sharpy and eyeballing my measurements against a 150mm metric ruler. I reckon my measurements were good to about .5mm. An error of .5mm on a 150mm extrusion is lower than a .5mm error on a 100mm or 50mm extrusion, so my input data for the spreadsheet would be better.
It was. In my original measurement of the script running five test extrusions at those 1-5mm/s speeds during 150mm X-axis movements (so I knew that my feed rates were accurate minus some negligible acceleration at the start and end of the motion).
Here's what I was seeing:
1mm/s: 145mm used
2mm/s: 144mm used
3mm/s: 140.5mm used
4mm/s: 137.5mm used
5mm/s: 133.5mm used
That's an extreme spread of 11.5mm. That's pretty huge. With no hotend involved (extruding into air) the extruder steps are perfect and will extrude as close to 150mm of filament as I can measure. With a hotend involved, even at 1mm/s, that drops to 145mm. That was an eye opener to me.
Anyhow, plugging these values into the spreadsheet from this thread I got A=-0.00512, B=0.00496, by far the smallest values I'd yet seen in all my tests.
So I punched in the M592 D0 A-.00512 B.00446 ; gcode and ran it, and redid my test script. Here's what I measured:
1mm/s: 145mm measured
2mm/s: 144.5mm measured
3mm/s: 144mm measured
4mm/s: 143.5mm measured
5mm/s: 142.5mm measured
That's an extreme spread of 2.5mm over a 150mm extrusion, for 1.7% difference, as opposed to 8.6% different extruded length for the same commanded extrusion length.
Has it made a difference in my prints? Don't know yet. It did not make the fat slow sections go away while doing the pressure advance test script, though I think the difference is lower. Not sure what's the deal with that. I've done one print so far since tweaking the non-linear extrusion, and it came out pretty well. I've got some other things related to retraction and layer changes that I've got to work out, but so far so good.
Anyhow, if you've tried tweaking non-linear extrusion and just gotten bizarre and unhelpful results, try running your tests at 150mm movement and 150mm extrusion at the different feed rates. You're likely to get more accurate results, and therefore more helpful M592 coefficients.