mirror of https://github.com/Desuuuu/klipper.git
docs: Update Resonance_Compensation.md to recommend SET_VELOCITY_LIMIT
It's no longer necessary to update the printer.cfg file to alter the max_accel and square_corner_velocity parameters. Update the Resonance_Compensation.md document to reflect this. Also, recommend using STEP_DELTA in the TUNING_TOWER commands. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
a7b01857f5
commit
9c4172784a
|
@ -23,9 +23,8 @@ of the stealthChop mode of Trinamic stepper drivers.
|
||||||
|
|
||||||
## Tuning
|
## Tuning
|
||||||
|
|
||||||
Basic tuning requires measuring the ringing frequencies of the printer and
|
Basic tuning requires measuring the ringing frequencies of the printer
|
||||||
adding a few parameters to `printer.cfg` file.
|
by printing a test model.
|
||||||
|
|
||||||
|
|
||||||
Slice the ringing test model, which can be found in
|
Slice the ringing test model, which can be found in
|
||||||
[docs/prints/ringing_tower.stl](prints/ringing_tower.stl), in the slicer:
|
[docs/prints/ringing_tower.stl](prints/ringing_tower.stl), in the slicer:
|
||||||
|
@ -45,31 +44,28 @@ Slice the ringing test model, which can be found in
|
||||||
|
|
||||||
First, measure the **ringing frequency**.
|
First, measure the **ringing frequency**.
|
||||||
|
|
||||||
1. Increase `max_accel` and `max_accel_to_decel` parameters in your
|
1. If `square_corner_velocity` parameter was changed, revert it back
|
||||||
`printer.cfg` to 7000. Note that this is only needed for tuning, and more
|
to 5.0. It is not advised to increase it when using input shaper
|
||||||
proper value will be selected in the corresponding
|
because it can cause more smoothing in parts - it is better to use
|
||||||
[section](#selecting-max_accel).
|
higher acceleration value instead.
|
||||||
2. If `square_corner_velocity` parameter was changed, revert it back to 5.0.
|
2. Increase `max_accel_to_decel` by issuing the following command:
|
||||||
It is not advised to increase it when using the input shaper because it can
|
`SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000`
|
||||||
cause more smoothing in parts - it is better to use higher acceleration
|
3. Disable Pressure Advance: `SET_PRESSURE_ADVANCE ADVANCE=0`
|
||||||
value instead.
|
4. If you have already added `[input_shaper]` section to the printer.cfg,
|
||||||
3. Restart the firmware: `RESTART`.
|
|
||||||
4. Disable Pressure Advance: `SET_PRESSURE_ADVANCE ADVANCE=0`.
|
|
||||||
5. If you have already added `[input_shaper]` section to the printer.cfg,
|
|
||||||
execute `SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0` command. If you
|
execute `SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0` command. If you
|
||||||
get "Unknown command" error, you can safely ignore it at this point and
|
get "Unknown command" error, you can safely ignore it at this point and
|
||||||
continue with the measurements.
|
continue with the measurements.
|
||||||
6. Execute the command
|
5. Execute the command:
|
||||||
`TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5`.
|
`TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`
|
||||||
Basically, we try to make ringing more pronounced by setting different large
|
Basically, we try to make ringing more pronounced by setting different large
|
||||||
values for acceleration. This command will increase the acceleration every
|
values for acceleration. This command will increase the acceleration every
|
||||||
5 mm starting from 1500 mm/sec^2: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2
|
5 mm starting from 1500 mm/sec^2: 1500 mm/sec^2, 2000 mm/sec^2, 2500 mm/sec^2
|
||||||
and so forth up until 7000 mm/sec^2 at the last band.
|
and so forth up until 7000 mm/sec^2 at the last band.
|
||||||
7. Print the test model sliced with the suggested parameters.
|
6. Print the test model sliced with the suggested parameters.
|
||||||
8. You can stop the print earlier if the ringing is clearly visible and you see
|
7. You can stop the print earlier if the ringing is clearly visible and you see
|
||||||
that acceleration gets too high for your printer (e.g. printer shakes too
|
that acceleration gets too high for your printer (e.g. printer shakes too
|
||||||
much or starts skipping steps).
|
much or starts skipping steps).
|
||||||
9. Use X and Y marks at the back of the model for reference. The measurements
|
8. Use X and Y marks at the back of the model for reference. The measurements
|
||||||
from the side with X mark should be used for X axis *configuration*, and
|
from the side with X mark should be used for X axis *configuration*, and
|
||||||
Y mark - for Y axis configuration. Measure the distance *D* (in mm) between
|
Y mark - for Y axis configuration. Measure the distance *D* (in mm) between
|
||||||
several oscillations on the part with X mark, near the notches, preferably
|
several oscillations on the part with X mark, near the notches, preferably
|
||||||
|
@ -79,14 +75,14 @@ First, measure the **ringing frequency**.
|
||||||
|
|
||||||
|![Mark ringing](img/ringing-mark.jpg)|![Measure ringing](img/ringing-measure.jpg)|
|
|![Mark ringing](img/ringing-mark.jpg)|![Measure ringing](img/ringing-measure.jpg)|
|
||||||
|
|
||||||
10. Count how many oscillations *N* the measured distance *D* corresponds to.
|
9. Count how many oscillations *N* the measured distance *D* corresponds to.
|
||||||
If you are unsure how to count the oscillations, refer to the picture
|
If you are unsure how to count the oscillations, refer to the picture
|
||||||
above, which shows *N* = 6 oscillations.
|
above, which shows *N* = 6 oscillations.
|
||||||
11. Compute the ringing frequency of X axis as *V* · *N* / *D* (Hz),
|
10. Compute the ringing frequency of X axis as *V* · *N* / *D* (Hz),
|
||||||
where *V* is the velocity for outer perimeters (mm/sec). For the example
|
where *V* is the velocity for outer perimeters (mm/sec). For the example
|
||||||
above, we marked 6 oscillations, and the test was printed at 100 mm/sec
|
above, we marked 6 oscillations, and the test was printed at 100 mm/sec
|
||||||
velocity, so the frequency is 100 * 6 / 12.14 ≈ 49.4 Hz.
|
velocity, so the frequency is 100 * 6 / 12.14 ≈ 49.4 Hz.
|
||||||
12. Do (9) - (11) for Y mark as well.
|
11. Do (8) - (10) for Y mark as well.
|
||||||
|
|
||||||
Note that ringing on the test print should follow the pattern of the curved
|
Note that ringing on the test print should follow the pattern of the curved
|
||||||
notches, as in the picture above. If it doesn't, then this defect is not really
|
notches, as in the picture above. If it doesn't, then this defect is not really
|
||||||
|
@ -150,16 +146,15 @@ For most of the printers, either MZV or EI shapers can be recommended. This
|
||||||
section describes a testing process to choose between them, and figure out
|
section describes a testing process to choose between them, and figure out
|
||||||
a few other related parameters.
|
a few other related parameters.
|
||||||
|
|
||||||
Print the ringing test model as follows (assuming you already have
|
Print the ringing test model as follows:
|
||||||
shaper_freq_x/y set and max_accel/max_accel_to_decel increased to 7000 in
|
|
||||||
printer.cfg file):
|
|
||||||
|
|
||||||
1. Restart the firmware: `RESTART`.
|
1. Restart the firmware: `RESTART`
|
||||||
2. Disable Pressure Advance: `SET_PRESSURE_ADVANCE ADVANCE=0`.
|
2. Prepare for test: `SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000`
|
||||||
3. Execute `SET_INPUT_SHAPER SHAPER_TYPE=MZV`.
|
3. Disable Pressure Advance: `SET_PRESSURE_ADVANCE ADVANCE=0`
|
||||||
4. Execute the command
|
4. Execute: `SET_INPUT_SHAPER SHAPER_TYPE=MZV`
|
||||||
`TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5`.
|
5. Execute the command:
|
||||||
5. Print the test model sliced with the suggested parameters.
|
`TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`
|
||||||
|
6. Print the test model sliced with the suggested parameters.
|
||||||
|
|
||||||
If you see no ringing at this point, then MZV shaper can be recommended for use.
|
If you see no ringing at this point, then MZV shaper can be recommended for use.
|
||||||
|
|
||||||
|
@ -169,8 +164,8 @@ differ significantly from the values you obtained earlier, a more complex input
|
||||||
shaper configuration is needed. You can refer to Technical details of
|
shaper configuration is needed. You can refer to Technical details of
|
||||||
[Input shapers](#input-shapers) section. Otherwise, proceed to the next step.
|
[Input shapers](#input-shapers) section. Otherwise, proceed to the next step.
|
||||||
|
|
||||||
Now try EI input shaper. To try it, repeat steps (1)-(5) from above, but
|
Now try EI input shaper. To try it, repeat steps (1)-(6) from above, but
|
||||||
executing at step 3 the following command instead:
|
executing at step 4 the following command instead:
|
||||||
`SET_INPUT_SHAPER SHAPER_TYPE=EI`.
|
`SET_INPUT_SHAPER SHAPER_TYPE=EI`.
|
||||||
|
|
||||||
Compare two prints with MZV and EI input shaper. If EI shows noticeably better
|
Compare two prints with MZV and EI input shaper. If EI shows noticeably better
|
||||||
|
@ -207,7 +202,7 @@ You should have a printed test for the shaper you chose from the previous step
|
||||||
(if you don't, print the test model sliced with the
|
(if you don't, print the test model sliced with the
|
||||||
[suggested parameters](#tuning) with the pressure advance disabled
|
[suggested parameters](#tuning) with the pressure advance disabled
|
||||||
`SET_PRESSURE_ADVANCE ADVANCE=0` and with the tuning tower enabled as
|
`SET_PRESSURE_ADVANCE ADVANCE=0` and with the tuning tower enabled as
|
||||||
`TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5`).
|
`TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`).
|
||||||
Note that at very high accelerations, depending on the resonance frequency and
|
Note that at very high accelerations, depending on the resonance frequency and
|
||||||
the input shaper you chose (e.g. EI shaper creates more smoothing than MZV),
|
the input shaper you chose (e.g. EI shaper creates more smoothing than MZV),
|
||||||
input shaping may cause too much smoothing and rounding of the parts. So,
|
input shaping may cause too much smoothing and rounding of the parts. So,
|
||||||
|
@ -242,8 +237,7 @@ It may also be a result of a miscalibrated (too high) filament flow, so it is
|
||||||
a good idea to check that too.
|
a good idea to check that too.
|
||||||
|
|
||||||
Choose the minimum out of the two acceleration values (from ringing and
|
Choose the minimum out of the two acceleration values (from ringing and
|
||||||
smoothing), and put it as max_accel into printer.cfg (you can delete
|
smoothing), and put it as `max_accel` into printer.cfg.
|
||||||
max_accel_to_decel or revert it to the old value).
|
|
||||||
|
|
||||||
|
|
||||||
As a note, it may happen - especially at low ringing frequencies - that EI
|
As a note, it may happen - especially at low ringing frequencies - that EI
|
||||||
|
@ -273,29 +267,29 @@ your choice with the same frequencies as you have measured earlier), you can
|
||||||
follow the steps in this section. Note that if you see ringing at different
|
follow the steps in this section. Note that if you see ringing at different
|
||||||
frequencies after enabling [input_shaper], this section will not help with that.
|
frequencies after enabling [input_shaper], this section will not help with that.
|
||||||
|
|
||||||
Assuming that you have sliced the ringing model with suggested parameters and
|
Assuming that you have sliced the ringing model with suggested
|
||||||
increased `max_accel` and `max_accel_to_decel` parameters in the `printer.cfg`
|
parameters, complete the following steps for each of the axes X and Y:
|
||||||
to 7000 already, complete the following steps for each of the axes X and Y:
|
|
||||||
|
|
||||||
1. Make sure Pressure Advance is disabled: `SET_PRESSURE_ADVANCE ADVANCE=0`.
|
1. Prepare for test: `SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000`
|
||||||
2. Execute `SET_INPUT_SHAPER SHAPER_TYPE=ZV`.
|
2. Make sure Pressure Advance is disabled: `SET_PRESSURE_ADVANCE ADVANCE=0`
|
||||||
3. From the existing ringing test model with your chosen input shaper select
|
3. Execute: `SET_INPUT_SHAPER SHAPER_TYPE=ZV`
|
||||||
|
4. From the existing ringing test model with your chosen input shaper select
|
||||||
the acceleration that shows ringing sufficiently well, and set it with:
|
the acceleration that shows ringing sufficiently well, and set it with:
|
||||||
`SET_VELOCITY_LIMIT ACCEL=...`.
|
`SET_VELOCITY_LIMIT ACCEL=...`
|
||||||
4. Calculate the necessary parameters for the `TUNING_TOWER` command to tune
|
5. Calculate the necessary parameters for the `TUNING_TOWER` command to tune
|
||||||
`shaper_freq_x` parameter as follows: start = shaper_freq_x * 83 / 132 and
|
`shaper_freq_x` parameter as follows: start = shaper_freq_x * 83 / 132 and
|
||||||
factor = shaper_freq_x / 66, where `shaper_freq_x` here is the current value
|
factor = shaper_freq_x / 66, where `shaper_freq_x` here is the current value
|
||||||
in `printer.cfg`.
|
in `printer.cfg`.
|
||||||
5. Execute the command
|
6. Execute the command:
|
||||||
`TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5`
|
`TUNING_TOWER COMMAND=SET_INPUT_SHAPER PARAMETER=SHAPER_FREQ_X START=start FACTOR=factor BAND=5`
|
||||||
using `start` and `factor` values calculated at step (4).
|
using `start` and `factor` values calculated at step (5).
|
||||||
6. Print the test model.
|
7. Print the test model.
|
||||||
7. Reset the original frequency value:
|
8. Reset the original frequency value:
|
||||||
`SET_INPUT_SHAPER SHAPER_FREQ_X=...`.
|
`SET_INPUT_SHAPER SHAPER_FREQ_X=...`.
|
||||||
8. Find the band which shows ringing the least and count its number from the
|
9. Find the band which shows ringing the least and count its number from the
|
||||||
bottom starting at 1.
|
bottom starting at 1.
|
||||||
9. Calculate the new shaper_freq_x value via old
|
10. Calculate the new shaper_freq_x value via old
|
||||||
shaper_freq_x * (39 + 5 * #band-number) / 66.
|
shaper_freq_x * (39 + 5 * #band-number) / 66.
|
||||||
|
|
||||||
Repeat these steps for the Y axis in the same manner, replacing references to X
|
Repeat these steps for the Y axis in the same manner, replacing references to X
|
||||||
axis with the axis Y (e.g. replace `shaper_freq_x` with `shaper_freq_y` in
|
axis with the axis Y (e.g. replace `shaper_freq_x` with `shaper_freq_y` in
|
||||||
|
@ -312,16 +306,12 @@ After both new `shaper_freq_x` and `shaper_freq_y` parameters have been
|
||||||
calculated, you can update `[input_shaper]` section in `printer.cfg` with the
|
calculated, you can update `[input_shaper]` section in `printer.cfg` with the
|
||||||
new `shaper_freq_x` and `shaper_freq_y` values.
|
new `shaper_freq_x` and `shaper_freq_y` values.
|
||||||
|
|
||||||
Do not forget to revert the changes to `max_accel` and `max_accel_to_decel`
|
|
||||||
parameters in the `printer.cfg` after finishing this section.
|
|
||||||
|
|
||||||
### Pressure Advance
|
### Pressure Advance
|
||||||
|
|
||||||
If you use Pressure Advance, it may need to be re-tuned. Follow the
|
If you use Pressure Advance, it may need to be re-tuned. Follow the
|
||||||
[instructions](Pressure_Advance.md#tuning-pressure-advance) to find the
|
[instructions](Pressure_Advance.md#tuning-pressure-advance) to find
|
||||||
new value, if it differs from the previous one. Make sure to restore the
|
the new value, if it differs from the previous one. Make sure to
|
||||||
original values of `max_accel` and `max_accel_to_decel` parameters in the
|
restart Klipper before tuning Pressure Advance.
|
||||||
`printer.cfg` and restart Klipper before tuning Pressure Advance.
|
|
||||||
|
|
||||||
### Unreliable measurements of ringing frequencies
|
### Unreliable measurements of ringing frequencies
|
||||||
|
|
||||||
|
@ -335,26 +325,26 @@ accelerometer and measure the resonances with it (refer to the
|
||||||
process) - but this option requires some crimping and soldering.
|
process) - but this option requires some crimping and soldering.
|
||||||
|
|
||||||
|
|
||||||
For tuning, add empty `[input_shaper]` section to your `printer.cfg`. Then,
|
For tuning, add empty `[input_shaper]` section to your
|
||||||
assuming that you have sliced the ringing model with suggested parameters and
|
`printer.cfg`. Then, assuming that you have sliced the ringing model
|
||||||
increased `max_accel` and `max_accel_to_decel` parameters in the `printer.cfg`
|
with suggested parameters, print the test model 3 times as
|
||||||
to 7000 already, print the test model 3 times as follows. First time, prior to
|
follows. First time, prior to printing, run
|
||||||
printing, run
|
|
||||||
|
|
||||||
1. `RESTART`
|
1. `RESTART`
|
||||||
2. `SET_PRESSURE_ADVANCE ADVANCE=0`.
|
2. `SET_VELOCITY_LIMIT ACCEL_TO_DECEL=7000`
|
||||||
3. `SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60`.
|
3. `SET_PRESSURE_ADVANCE ADVANCE=0`
|
||||||
4. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5`.
|
4. `SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=60 SHAPER_FREQ_Y=60`
|
||||||
|
5. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`
|
||||||
|
|
||||||
and print the model. Then print the model again, but before printing run instead
|
and print the model. Then print the model again, but before printing run instead
|
||||||
|
|
||||||
1. `SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50`.
|
1. `SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=50 SHAPER_FREQ_Y=50`
|
||||||
2. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5`.
|
2. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`
|
||||||
|
|
||||||
Then print the model for the 3rd time, but now run
|
Then print the model for the 3rd time, but now run
|
||||||
|
|
||||||
1. `SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40`.
|
1. `SET_INPUT_SHAPER SHAPER_TYPE=2HUMP_EI SHAPER_FREQ_X=40 SHAPER_FREQ_Y=40`
|
||||||
2. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5`.
|
2. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`
|
||||||
|
|
||||||
Essentially, we are printing the ringing test model with TUNING_TOWER using
|
Essentially, we are printing the ringing test model with TUNING_TOWER using
|
||||||
2HUMP_EI shaper with shaper_freq = 60 Hz, 50 Hz, and 40 Hz.
|
2HUMP_EI shaper with shaper_freq = 60 Hz, 50 Hz, and 40 Hz.
|
||||||
|
@ -377,8 +367,8 @@ frequency based on the frequency of 2HUMP_EI shaper you chose:
|
||||||
|
|
||||||
Now print the test model one more time, running
|
Now print the test model one more time, running
|
||||||
|
|
||||||
1. `SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=...`.
|
1. `SET_INPUT_SHAPER SHAPER_TYPE=EI SHAPER_FREQ_X=... SHAPER_FREQ_Y=...`
|
||||||
2. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1250 FACTOR=100 BAND=5`.
|
2. `TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5`
|
||||||
|
|
||||||
providing the shaper_freq_x=... and shaper_freq_y=... as determined previously.
|
providing the shaper_freq_x=... and shaper_freq_y=... as determined previously.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue