Why does async gcode driver with advanced motion planner support movement reinterpolation ?

53 views
Skip to first unread message

Jorropo

unread,
Nov 22, 2025, 11:09:07 AMNov 22
to ope...@googlegroups.com
I wonder why do we need movement reinterpolation ? And why does my machine sound so much better when I use it (/ doesn't jerk everything to death) ?

To talk about what I am using, Marlin already supports linear and S-curve acceleration.
So when this is configured even if openpnp would send a single GCODE move command (like with toolpathfeedrate), marlin would smooth it out.

Thus why is openpnp also doing some acceleration smoothing and sending reinterpolated gcode ?

To push it to the extreme closed loop control servos can implement acceleration limits based on current draw, adapting to the load on the servos in real time (not really useful for a PNP where the load is very predictable).

Henrik Olsson

unread,
Nov 23, 2025, 9:03:27 AMNov 23
to OpenPnP
Your Marlin based controller may support S-curve acceleration but not all controllers do. Smoothieware, for example, does not and so the advanced motion planner helps alot by sending G-code that tries to emulate what your controller does in firmware.

Why your machine sounds so much better is down to physics really.
If you drive a car and stomp on the breaks you'll feel a definitive jerk as the car comes to a halt but if you ease off of the breaks just as the car stops you'll get a much more pleasant experience. It's the same thing with your machine basically.

Toby Dickenson

unread,
Dec 3, 2025, 2:54:59 PMDec 3
to ope...@googlegroups.com
This is from memory and it has been over a year since I looked at Marlin source, so I apologise in advance for any errors, but I dont think those two parameters are comparable.

Marlin uses its acceleration and jerk limits to control centripetal acceleration, by reducing speed through movement junctions. It uses the "junction deviation" parameter as a limit for position error, and reduces speed to keep on track through corners and curves. On a 3d printer this is good for getting uniform fast movement (and therefore uniform filament flow rate) while maintaining the right shape. A typical 3d printing motion profile has the head moving at speed in the XY plane at (almost) all times.

Openpnp acceleration and jerk parameters are literally orthogonal to this. It limits the acceleration in the direction of movement, under the assumption that movement is in a straight line and the machine will be stationary at both ends. This reduces machine vibration.


--
You received this message because you are subscribed to the Google Groups "OpenPnP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openpnp+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openpnp/CAHWihb9pf-4ZSUT_wy3UD1D_-y6Vm3dggYQJ6EK0QKQRanOiFQ%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages