The problem

Many of us in the printing space chase speed. We do this, usually, not because we want to watch a printer zoom around, but to rapid prototype, reduce the need to have more printers for volume, and many other reasons. Many of us have moved from Cartesian systems like bed flingers to CoreXY systems in the persuit of quality at speed, but unfortunately these share one specific problem. There's a weak primary axis. Thanks to this weak axis, we have to limit the strong axis. The bed moving is clearly more of a limit than the toolhead on bed flingers, and moving the entire gantry on CoreXY systems is more weight than just a toolhead.

The solution?

So this should be a simple problem to solve one would think. Stop treating the axis the same! You would be, mostly, right. A wonderful member of the community that goes by Piezoid has actually done the initial leg work in solving this for Cartesian (aka, bed flinger) as well as CoreXY machines. I have run these kinematics for months now and have been finding some luck with them, but found similar quirks in the system that others have also found, and can see why some users chose to abandon it as promising as it is.

More problems?!

Here's a list of my complaints with the solution above.

  • No fine grain control of per axis accel limits per feature. There is basic scaling of acceleration, but that doesn't give us the control we have with modern slicers to control per feature acceleration, which can lead to slower print times.

  • Because our acceleration is changing constantly, tuning pressure advance is harder at best, and impossible at worst.

How to overcome this!

Per axis acceleration has allowed my machines to run at their limits in terms of not ringing, per axis when setting the limits in the firmware near the input shaper limits, so I wanted to press on and solve these problems. As for losing speed, I'm proposing the ability to go back to per feature accelerations. This would allow us to push well above input shaper limits on things like infill or other not visible features just like we have without per axis limits, but with the gain of being able to push each axis to it's own limit. In terms of pressure advance tuning problems, because we have per feature control, you will have the power to bring the axis accelerations back to the same, or more similar, for features that exibit problems with pressure advance. This sounds like it gives up speed, it doesn't. If you already needed that feature on the same acceleration on both axies, you got a sidegrade for that feature, but things like infill and travel, you will be able to unlock the full potential of the machine.

So how do I get that?

While writing this, my printer is running with all of these changes that were proposed. I'm cleaning up the code, documenting it, and trying to make it as accessable as possible for anyone that wants to extract more from their machines in terms of performance. I hope to post this quite soon, and if you have any questions, concerns, thoughts, or ideas, feel free to reach out and I'm more than willing to try things out or help you out!