I was reflecting on 3D printer motion algorithms and I remembered this short but explicit video by Trinamic.

Klipper only uses a trapezoidal algorithm while RepRapFirmware (RRF) and Marlin can do S-Curve. But the new Prunt firmware can be even smoother than all those! Let’s have a look in more details.

Trapezoidal (3 phases) with Klipper

The trapezoidal algorithm has 3 phases where you only stop or accelerate. For example, in a 90° corner, the firmware will do a stop and then an immediate acceleration1. As you can imagine it’s creating a lot of vibrations and it works hard on the motors.

S-Curve (7 phases) possible with RRF and Marlin

S-Curve works by adding 7 phases to smooth the acceleration and it already helps well as we could see in the previous video.

31 phases with Prunt

As I noted before, the Prunt firmware goes further by adding a 4th derivative (called snap) which gives 31 phases (don’t ask me to do the math xD, I rely on Prunt’s documentation). This is creating a butter smooth and controlled motion that is reducing the need of filters such as input shaping. It will also optimize the heat and noise of the motor.

When you reflect on this, it’s a waste of time to try smoothing the trapezoidal or S-Curve motions using filters. We should now focus on what Prunt does and later add much lighter filters if still needed.

Obviously, nothing is free, this is much heavier to compute and, at the moment, even a Raspberry Pi 5 could lag with Prunt (but optimisations are ongoing to solve this).

Prunt firmware is also still new and may require some time to stabilize but it really is a very interesting contender. And it’s not only software, they have currently a crowdsupply campaign for their 3rd board revision. This board adds better protections than most current 3D printer consumer hardware, it has 4 wires fans like on motherboards, it uses hardware acceleration for steps generation and timing and finally bundle 6 TMC2240.

Prunt Board 3

In conclusion, filters like input shaping or pressure advance try to hide deeper limitations of the motion algorithms. Prunt firmware proves that more modern motion algorithms exist and could reduce the need of those filters. I don’t know if this is THE firmware but it’s very enjoyable to finally see this critical part of 3D printing moving forward from the ground up.

Links:


  1. In reality, the firmware keep a small acceleration otherwise it would be too slow but they are still on 3 phases. More info here ↩︎