diff --git a/calibration/input_shaping_calib.md b/calibration/input_shaping_calib.md index fba194f..1237526 100644 --- a/calibration/input_shaping_calib.md +++ b/calibration/input_shaping_calib.md @@ -1,6 +1,6 @@ # Input Shaping -During high-speed movements, vibrations can cause a phenomenon called "ringing," where periodic ripples appear on the print surface. Input Shaping provides an effective solution by counteracting these vibrations, improving print quality and reducing wear on components without needing to significantly lower print speeds. +This Calibration guide will help you to calibrate the [Input Shaping](printer_motion_ability#input-shaping) feature in your printer firmware. > [!NOTE] > Some Printers have built-in accelerometers that can be used to **automatically** measure the resonant frequencies of the printer. @@ -9,49 +9,10 @@ During high-speed movements, vibrations can cause a phenomenon called "ringing," > [!TIP] > It's usually recommended to perform Input Shaping calibration once a year or after any mechanical or structural changes such as relocation, changing the support surface, new belts, motors, frame, etc. -> [!IMPORTANT] -> RepRap can only set one frequency for both X and Y axes so you will need to select a frequency that works well for both axes. - -- [Types](#types) - - [Default](#default) - - [Version Table](#version-table) -- [Calibration Steps](#calibration-steps) - - [Fixed-Time Motion](#fixed-time-motion) +- [Calibration](#calibration) - [Credits](#credits) -## Types - -It is usually recommended to use MZV, EI (specially for Delta printers) or ZV as a simple and effective solution. -Not all Input Shaping types are available in all firmware and their performance may vary depending on the firmware implementation and the printer's mechanics. - -### Default - -When "Default" is selected, the firmware's default input shaper will be used. -Every firmware and even its version may have a different default type but usually are: - -- Klipper: MZV -- Marlin: ZV -- RepRap: - - Version >= 3.4: MZV - - Version < 3.4: DAA - - Version < 3.2: DAA (without damping option) - -### Version Table - -| Type | Name | [Klipper](https://www.klipper3d.org/Resonance_Compensation.html#technical-details) | [RepRap](https://docs.duet3d.com/User_manual/Reference/Gcodes#m593-configure-input-shaping) | [Marlin 2](https://marlinfw.org/docs/features/ft_motion.html#more-complexity-zv-input-shaper) | -| --- | --- | --- | --- | --- | -| MZV | Modified Zero Vibration | >=0.9.0 | >=3.4 | - | -| ZV | Zero Vibration | >=0.9.0 | = 3.5 | >2.1.2 | -| ZVD | Zero Vibration Derivative | >=0.9.0 | >=3.4 | - | -| ZVDD | Zero Vibration Double Derivative | - | >=3.4 | - | -| ZVDDD | Zero Vibration Triple Derivative | - | >=3.4 | - | -| EI | Extra Insensitive | >=0.9.0 | - | - | -| 2HUMP_EI / EI2 | Two-Hump Extra Insensitive | >=0.9.0 | >=3.4 | - | -| 3HUMP_EI / EI3 | Three-Hump Extra Insensitive | >=0.9.0 | >=3.4 | - | -| [FT_MOTION](https://marlinfw.org/docs/features/ft_motion.html#fixed-time-motion-by-ulendo) | Fixed-Time Motion | - | - | >2.1.3 | -| DAA | Damped Anti-Resonance | - | < 3.4 | - | - -## Calibration Steps +## Calibration Pre-requisites: @@ -65,7 +26,7 @@ Pre-requisites: > This test **will set the values to high values** limited by your printer's motion ability and the filament's max volumetric speed (avoid materials below 10 mm³/s). 1. Select the Test Model ´Ringing Tower´ (Recommended) or ´Fast Tower´ (Reduced version useful for printers with high ringing). -2. Select the [Input Shaper Type](#types) you want to test. Each firmware has different types available and each type has different performance. +2. Select the [Input Shaper Type](printer_motion_ability#input-shaping-type) you want to test. Each firmware has different types available and each type has different performance. 3. Select a range of frequencies to test. The Default 15hz to 110hz range is usually a good start. 4. Select your damping. Usually, a value between 0.1 and 0.2 is a good start but you can change it to 0 and your printer will use the firmware default value (if available). ![IS_freq_menu](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/images/InputShaping/IS_freq_menu.png?raw=true) @@ -87,65 +48,66 @@ Pre-requisites: 6. **Restore your 3D Printer settings to avoid keep using high acceleration and jerk values.** 7. **Save the settings** - Into your printer firmware settings save the values you found (Type, frequency/cies and damp) - - Save it into Orca's printer profile settings in Printer settings/ Machine G-code/ Machine start G-code using the following G-code: - - Klipper: - - Skeleton: + - Save it into Orca's printer profile settings: + - Motion ability → Resonance Compensation (**Marlin**/**RepRap**): + 1. [Go to Printer settings → Motion ability → Resonance Compensation](printer_motion_ability#resonance-compensation): + 2. Set your Type, Frequencies and Damping values. + ![inputshaping_printer](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/images/InputShaping/inputshaping_printer.png?raw=true) + - Machine start G-code: + - Klipper: + - Skeleton: - ```pwsh - SET_INPUT_SHAPER SHAPER_TYPE=TYPE SHAPER_FREQ_X=#Xfrequency DAMPING_RATIO_X=#XDamping SHAPER_FREQ_Y=#Yfrequency DAMPING_RATIO_Y=#YDamping - ``` + ```pwsh + SET_INPUT_SHAPER SHAPER_TYPE=TYPE SHAPER_FREQ_X=#Xfrequency DAMPING_RATIO_X=#XDamping SHAPER_FREQ_Y=#Yfrequency DAMPING_RATIO_Y=#YDamping + ``` - - Example: + - Example: - ```pwsh - SET_INPUT_SHAPER SHAPER_TYPE=MZV SHAPER_FREQ_X=37.25 DAMPING_RATIO_X=0.16 SHAPER_FREQ_Y=37.5 DAMPING_RATIO_Y=0.06 - ``` + ```pwsh + SET_INPUT_SHAPER SHAPER_TYPE=MZV SHAPER_FREQ_X=37.25 DAMPING_RATIO_X=0.16 SHAPER_FREQ_Y=37.5 DAMPING_RATIO_Y=0.06 + ``` - - Marlin: - - Skeleton: + - Marlin: + - Skeleton: - ```gcode - M593 X F#Xfrequency D#XDamping - M593 Y F#Yfrequency D#YDamping - M500 - ``` + ```gcode + M593 X F#Xfrequency D#XDamping + M593 Y F#Yfrequency D#YDamping + M500 + ``` - - Example + - Example - ```gcode - M593 X F37.25 D0.16 - M593 Y F37.5 D0.06 - M500 - ``` + ```gcode + M593 X F37.25 D0.16 + M593 Y F37.5 D0.06 + M500 + ``` - - RepRap: - - Skeleton: for RepRap 3.3 and later + - RepRap: + - Skeleton: for RepRap 3.3 and later - ```gcode - M593 P#Type F#frequency S#Damping - ``` + ```gcode + M593 P#Type F#frequency S#Damping + ``` - - Example RepRap 3.4 and later + - Example RepRap 3.4 and later - ```gcode - M593 P"ZVD" F37.25 S0.16 - ``` + ```gcode + M593 P"ZVD" F37.25 S0.16 + ``` - - Skeleton: for RepRap 3.2 and earlier + - Skeleton: for RepRap 3.2 and earlier - ```gcode - M593 F#frequency - ``` + ```gcode + M593 F#frequency + ``` - - Example Legacy (RepRap 3.2 and earlier) + - Example Legacy (RepRap 3.2 and earlier) - ```gcode - M593 F37.25 - ``` - -### Fixed-Time Motion - -TODO: This calibration test is currently under development. See the [Marlin documentation](https://marlinfw.org/docs/gcode/M493.html) for more information. + ```gcode + M593 F37.25 + ``` ## Credits diff --git a/calibration/vfa_calib.md b/calibration/vfa_calib.md index 000a114..4f1b05a 100644 --- a/calibration/vfa_calib.md +++ b/calibration/vfa_calib.md @@ -21,5 +21,5 @@ The VFA Speed Test in OrcaSlicer helps identify which print speeds trigger MRR a 4. Inspect the tower for MRR artifacts. Look for speeds where the surface becomes visibly smoother or rougher. This allows you to pinpoint problematic speed ranges. In this example, you can see how the Speed is Capping at 162 mm/s. ![vfa_test_print](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/images/vfa/vfa_test_print.jpg?raw=true) -5. Configure the [Resonance Avoidance Speed Range](printer_motion_ability#resonance-avoidance-speed) in the printer profile to skip speeds that cause visible artifacts. +5. Configure the [Resonance Avoidance Speed Range](printer_motion_ability#resonance-avoidance) in the printer profile to skip speeds that cause visible artifacts. ![vfa_resonance_avoidance](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/images/vfa/vfa_resonance_avoidance.png?raw=true) diff --git a/images/InputShaping/inputshaping_printer.png b/images/InputShaping/inputshaping_printer.png new file mode 100644 index 0000000..daa1e06 Binary files /dev/null and b/images/InputShaping/inputshaping_printer.png differ diff --git a/printer_settings/motion ability/printer_motion_ability.md b/printer_settings/motion ability/printer_motion_ability.md index aa16b55..cb12aa8 100644 --- a/printer_settings/motion ability/printer_motion_ability.md +++ b/printer_settings/motion ability/printer_motion_ability.md @@ -3,8 +3,13 @@ Settings related to the motion capabilities of the printer. - [Emit limits to G-code](#emit-limits-to-g-code) -- [Resonance Avoidance](#resonance-avoidance) - - [Resonance Avoidance Speed](#resonance-avoidance-speed) +- [Resonance Compensation](#resonance-compensation) + - [Resonance Avoidance](#resonance-avoidance) + - [Input Shaping](#input-shaping) + - [Input Shaping Type](#input-shaping-type) + - [Default](#default) + - [Version Table](#version-table) + - [Fixed-Time Motion](#fixed-time-motion) - [Speed limitation](#speed-limitation) - [Acceleration limitation](#acceleration-limitation) - [Jerk limitation](#jerk-limitation) @@ -18,20 +23,80 @@ Settings related to the motion capabilities of the printer. If enabled, the machine limits will be emitted to G-code file. This option will be ignored if the G-code flavor is set to Klipper. -## Resonance Avoidance +## Resonance Compensation + +Resonance Compensations are the methods used to reduce the vibrations of the printer during high-speed movements, which can cause ringing on the surface of the model. + +### Resonance Avoidance [Mode](option_mode): `Advanced`. -[Variable](built_in_placeholders_variables): `resonance_avoidance`. - -### Resonance Avoidance Speed - -[Mode](option_mode): `Advanced`. -[Variables](built_in_placeholders_variables): `min_resonance_avoidance_speed`, `max_resonance_avoidance_speed`. +[Variables](built_in_placeholders_variables): `resonance_avoidance`, `min_resonance_avoidance_speed`, `max_resonance_avoidance_speed`. By reducing the speed of the outer wall to avoid the resonance zone of the printer, ringing on the surface of the model are avoided. > [!TIP] > Check the [VFA Calibration](vfa_calib). +### Input Shaping + +[Mode](option_mode): `Expert`. +[Variables](built_in_placeholders_variables): `input_shaping_emit`, `input_shaping_freq_x`, `input_shaping_freq_y`, `input_shaping_damp_x`, `input_shaping_damp_y`. +During high-speed movements, vibrations can cause a phenomenon called "ringing," where periodic ripples appear on the print surface. Input Shaping provides an effective solution by counteracting these vibrations, improving print quality and reducing wear on components without needing to significantly lower print speeds. + +> [!NOTE] +> Some Printers have built-in accelerometers that can be used to **automatically** measure the resonant frequencies of the printer. +> If your printer has one, consider using it as it can provide more accurate results in less time and usually is autosaved into the printer firmware. + +> [!TIP] +> It's usually recommended to perform [Input Shaping calibration](input_shaping_calib) once a year or after any mechanical or structural changes such as relocation, changing the support surface, new belts, motors, frame, etc. + +> [!IMPORTANT] +> **RepRap** can only set one frequency for both X and Y axes so you will need to select a frequency that works well for both axes. + +![inputshaping_printer](https://github.com/OrcaSlicer/OrcaSlicer_WIKI/blob/main/images/InputShaping/inputshaping_printer.png?raw=true) + +> [!IMPORTANT] +> NEW FEATURE: **Input Shaping** +> Available in: [Nightly builds](https://github.com/OrcaSlicer/OrcaSlicer/releases/tag/nightly-builds) or Releases greater than **2.3.2**. + +#### Input Shaping Type + +[Mode](option_mode): `Expert`. +[Variable](built_in_placeholders_variables): `input_shaping_type`. +The Input Shaping type determines the algorithm used to counteract the vibrations. +It is usually recommended to use MZV, EI (specially for Delta printers) or ZV as a simple and effective solution. +Not all Input Shaping types are available in all firmware and their performance may vary depending on the firmware implementation and the printer's mechanics. + +##### Default + +When "Default" is selected, the firmware's default input shaper will be used. +Every firmware and even its version may have a different default type but usually are: + +- Klipper: MZV +- Marlin: ZV +- RepRap: + - Version >= 3.4: MZV + - Version < 3.4: DAA + - Version < 3.2: DAA (without damping option) + +##### Version Table + +| Type | Name | [Klipper](https://www.klipper3d.org/Resonance_Compensation.html#technical-details) | [RepRap](https://docs.duet3d.com/User_manual/Reference/Gcodes#m593-configure-input-shaping) | [Marlin 2](https://marlinfw.org/docs/features/ft_motion.html#more-complexity-zv-input-shaper) | +| --- | --- | --- | --- | --- | +| MZV | Modified Zero Vibration | >=0.9.0 | >=3.4 | - | +| ZV | Zero Vibration | >=0.9.0 | = 3.5 | >2.1.2 | +| ZVD | Zero Vibration Derivative | >=0.9.0 | >=3.4 | - | +| ZVDD | Zero Vibration Double Derivative | - | >=3.4 | - | +| ZVDDD | Zero Vibration Triple Derivative | - | >=3.4 | - | +| EI | Extra Insensitive | >=0.9.0 | - | - | +| 2HUMP_EI / EI2 | Two-Hump Extra Insensitive | >=0.9.0 | >=3.4 | - | +| 3HUMP_EI / EI3 | Three-Hump Extra Insensitive | >=0.9.0 | >=3.4 | - | +| [FT_MOTION](https://marlinfw.org/docs/features/ft_motion.html#fixed-time-motion-by-ulendo) | Fixed-Time Motion | - | - | >2.1.3 | +| DAA | Damped Anti-Resonance | - | < 3.4 | - | + +###### Fixed-Time Motion + +TODO: This calibration test is currently under development. See the [Marlin documentation](https://marlinfw.org/docs/gcode/M493.html) for more information. + ## Speed limitation Safeguard maximum speeds for all axes. @@ -42,7 +107,7 @@ This will cap the speed set by the process if it exceeds these values. [Modes](option_mode): `Simple` [Variables](built_in_placeholders_variables): `machine_max_acceleration_extruding`, `machine_max_acceleration_retracting`. `Advanced` [Variable](built_in_placeholders_variables): `machine_max_acceleration_travel`. -[Variables](built_in_placeholders_variables): `machine_max_acceleration_x`, `machine_max_acceleration_y`, `machine_max_acceleration_z`, `machine_max_acceleration_e`. +[Variables](built_in_placeholders_variables): `machine_max_acceleration_e`, `machine_max_acceleration_z`, `machine_max_acceleration_x`, `machine_max_acceleration_y`. Safeguard maximum accelerations for all axes. This will cap the acceleration set by the process if it exceeds these values. @@ -55,7 +120,7 @@ Safeguard maximum jerks for all axes. ### Maximum Jerk -[Variables](built_in_placeholders_variables): `machine_max_jerk_y`, `machine_max_jerk_x`, `machine_max_jerk_z`, `machine_max_jerk_e`. +[Variables](built_in_placeholders_variables): `machine_max_jerk_z`, `machine_max_jerk_e`, `machine_max_jerk_x`, `machine_max_jerk_y`. Maximum [jerk](speed_settings_jerk_xy) for each axis (M205 X, Y, Z, E, only apply if JD = 0 for Marlin 2 Firmware) ### Maximum Junction Deviation