I relate to your ideas and findings. I have a nimble though, so bit different situation. A nimble has trouble to keep up wit PA due to its high gear ratio (as noted on duet website). So although direct drive it has some "bowden like" behavior in PA. My findings:
- using Marlin routine I need S0.54
- using the Python script approach I need S0.6
- in real printing I find better results with S0.4
So lower than in the tests with I think relate to your observation on for the under extrusion on very short lines.
I have no need anymore for coasting in cura, and overall I have better quality. I hope and think you do too right? It's about improving it even more.
So I think your idea on the minimum amount of time could work well. I'm wondering if it should be time or travel length though? That would take out the need to tune each time when you print with different speeds for different prints, or even when using different speeds while printing different features.
I think having both options would be best to tinker with.
Also I would think it would be even nicer if one can give two parameters:
- length/time No PA
- length/time Full PA.
And an interpolation in between to give a sliding PA value?
No idea how hard to implement, but I bet it would be a selling point when this works well (I'd be happy to test when indeed working well.
While think about it: anybody know how to modify a gcode file to search for short line length and putting an M572 in front (and after) to change the settings with some existing scripts or something to prototype test?
Cheers Q