Skip to content

Input Shaping (IS)

Miguel Risco-Castillo edited this page Nov 28, 2023 · 5 revisions

Input shaping (IS) is a feature that reduces the ringing artifacts caused by the vibrations of the printer’s moving parts. Ringing is the wavy pattern that appears on the edges of printed objects, especially when printing at high speeds or with high acceleration. IS works by applying a filter to the movement commands sent to the stepper motors, so that they avoid exciting the natural frequencies of the printer’s frame and belts. This results in smoother and cleaner prints, as well as faster printing times.

image
Image from: https://github.com/MarlinFirmware/Marlin/pull/24797#issuecomment-1264379602

From Wikipedia: In control theory, input shaping is an open-loop control technique for reducing vibrations in computer-controlled machines. The method works by creating a command signal that cancels its own vibration. That is, a vibration excited by previous parts of the command signal is cancelled by vibration excited by latter parts of the command. IS is implemented by convolving a sequence of impulses, known as an input shaper, with any arbitrary command. The shaped command that results from the convolution is then used to drive the system. If the impulses in the shaper are chosen correctly, then the shaped command will excite less residual vibration than the unshaped command. The amplitudes and time locations of the impulses are obtained from the system's natural frequencies and damping ratios. Shaping can be made very robust to errors in the system parameters.

To use IS in Marlin, you need to enable it in your printer’s firmware and calibrate it for your specific printer model and configuration. You also need to activate it in your slicing software by adding a G-code command that sets the IS mode and parameters for your print. The IS mode determines the type of filter used, such as ZV (Zero Vibration), ZVD (Zero Vibration Derivative), EI (Einsy Isolation), or MZV (Minimum Zero Vibration). The IS parameters are the resonance frequencies of your printer’s X and Y axes, which can be estimated by a test print.

Currently Marlin is experimenting with IS support. You can follow the progress of that feature here: https://github.com/MarlinFirmware/Marlin/pull/24797 There are mixed reports about if it is working with stock Creality boards, its parameters will be set using a menu in Control/Motion or using the M593 G-code.

Donations

Thank you for your support, I receive donations through Patreon and Paypal