documentation draft
This commit is contained in:
76
docs/macros/axis_tuning.md
Normal file
76
docs/macros/axis_tuning.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Axis measurements
|
||||
|
||||
The `AXES_SHAPER_CALIBRATION` macro is used to measure and plot the axis behavior in order to tune Klipper's input shaper system.
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
**Before starting, ensure that the belts are properly tensioned** and that you already have good and clear belt graphs (see the previous section).
|
||||
|
||||
Then, call the `AXES_SHAPER_CALIBRATION` macro and look for the graphs in the results folder. Here are the parameters available:
|
||||
|
||||
| parameters | default value | description |
|
||||
|-----------:|---------------|-------------|
|
||||
|VERBOSE|1|Wether to log things in the console|
|
||||
|FREQ_START|5|Starting excitation frequency|
|
||||
|FREQ_END|133|Maximum excitation frequency|
|
||||
|HZ_PER_SEC|1|Number of Hz per seconds for the test|
|
||||
|AXIS|"all"|Axis you want to test in the list of "all", "X" or "Y"|
|
||||
|
||||
|
||||
## Graphs description
|
||||
|
||||
## Analysis of the results
|
||||
|
||||
#### Generalities
|
||||
|
||||
To effectively analyze input shaper graphs, there is no one-size-fits-all approach due to the variety of factors that can impact the 3D printer's performance or input shaper measurements. However, here are some hints on reading the graphs:
|
||||
- A graph with a **single and thin peak** well detached from the background noise is ideal, as it can be easily filtered by input shaping. But depending on the machine and its mechanical configuration, it's not always possible to obtain this shape. The key to getting better graphs is a clean mechanical assembly with a special focus on the rigidity and stiffness of everything, from the table through the frame of the printer to the toolhead.
|
||||
- As for the belt graphs, **focus on the shape of the graphs, not the exact frequency and energy value**. Indeed, the energy value doesn't provide much useful information. Use it only to compare two of your own graphs and to measure the impact of your mechanical changes between two consecutive tests, but never use it to compare against graphs from other people or other machines.
|
||||
|
||||
When you are satisfied with your graphs, you will need to use the auto-computed values at the top to set the Input Shaping filters in your Klipper configuration.
|
||||
|
||||

|
||||
|
||||
Here is some info to help you understand them:
|
||||
- These data are automatically computed by a specific Klipper algorithm. This algorithm works pretty well if the graphs are clean enough. But **if your graphs are junk, it can't do magic and will give you pretty bad recommendations**: they will do nothing or even make the ringing worse, so do not use the values and fix your printer first!
|
||||
- The recommended acceleration values (`accel<=...`) are not meant to be read alone. You need to also look at the `vibr` and `sm` values. They will give you the percentage of remaining vibrations and the smoothing after Input Shaping, if you use the recommended acceleration.
|
||||
- Nothing will prevent you from using higher acceleration values; they are not a limit. However, if you do so, expect more vibrations and smoothing. Also, Input Shaping may find its limits and not be able to suppress all the ringing on your parts.
|
||||
- The remaining vibrations `vibr` value is highly linked to ringing. So try to choose a filter with a very low value or even 0% if possible.
|
||||
- High acceleration values are not useful at all if there is still a high level of remaining vibrations. You should address any mechanical issues before continuing.
|
||||
- Each line represents the name of a different filtering algorithm. Each of them has its pros and cons:
|
||||
* `ZV` is a pretty light filter and usually has some remaining vibrations. My recommendation would be to use it only if you want to do speed benchies and get the highest acceleration values while maintaining a low amount of smoothing on your parts. If you have "perfect" graphs and do not care that much about some remaining ringing, you can try it.
|
||||
* `MZV` is most of the time the best filter on a well-tuned machine. It's a good compromise for low remaining vibrations while still allowing pretty good acceleration values. Keep in mind, `MZV` is only recommended by the algorithm on good graphs.
|
||||
* `EI` works "ok" if you are not able to get better graphs. But first, try to fix your mechanical issues as best as you can before using it: almost every printer should be able to run `MZV` instead.
|
||||
* `2HUMP_EI` and `3HUMP_EI` are not recommended and should be used only as a last resort. Usually, they lead to a high level of smoothing in order to suppress the ringing while also using relatively low acceleration values. If you get these algorithms recommended, you can almost be sure that you have mechanical problems under the hood (that lead to pretty bad or "wide" graphs).
|
||||
|
||||
Then, just add to your configuration:
|
||||
```
|
||||
[input_shaper]
|
||||
shaper_freq_x: ... # center frequency for the X axis filter
|
||||
shaper_type_x: ... # filter type for the X axis
|
||||
shaper_freq_y: ... # center frequency for the Y axis filter
|
||||
shaper_type_y: ... # filter type for the Y axis
|
||||
```
|
||||
|
||||
#### Useful facts and myths debunking
|
||||
|
||||
Sometimes people advise limiting the data to 100 Hz by manually editing the resulting .csv file because excitation does not go that high and these values should be ignored and considered wrong. This is a misconception and a bad idea because the excitation frequency is very different from the response frequency of the system, and they are not correlated at all. Indeed, it's plausible to get higher vibration frequencies, and editing the file manually will just "ignore" them and make them invisible even if they are still there on your printer. While higher frequency vibrations may not have a substantial effect on print quality, they can still indicate other issues within the system, likely noise and wear to the mechanical parts. Instead, focus on addressing the mechanical issues causing these problems.
|
||||
|
||||
Another point is that I do not recommend using an extra-light X-beam (aluminum or carbon) on your machine, as it can negatively impact the printer's performance and Input Shaping results. Indeed, there is more than just mass at play (see the [theory behind it](#theory-behind-it)): lower mass also means more flexibility and more prone to wobble under high accelerations. This will impact negatively the Y axis graphs as the X-beam will flex under high accelerations.
|
||||
|
||||
Finally, keep in mind that each axis has its own properties, such as mass and geometry, which will lead to different behaviors for each of them and will require different filters. Using the same input shaping settings for both axes is only valid if both axes are similar mechanically: this may be true for some machines, mainly Cross gantry configurations such as [CroXY](https://github.com/CroXY3D/CroXY) or [Annex-Engineering](https://github.com/Annex-Engineering) printers, but not for others.
|
||||
|
||||
|
||||
## Examples of graphs
|
||||
|
||||
In the following examples, the graphs are random graphs found online or sent to me for analysis. They are not necessarily to be read in pairs: the two graph columns are here to illustrate the comment with more than one example.
|
||||
|
||||
| Comment | Example 1 | Example 2 |
|
||||
| --- | --- | --- |
|
||||
| **These two graphs are considered good**. As you can see, there is only one thin peak, well separated from the background noise |  |  |
|
||||
| **These two graphs are really bad**: there is a lot of noise all over the spectrum. Something is really wrong and you should check all moving parts and screws. You should also check the belt tension and proper geometry of the gantry (racking) |  |  |
|
||||
| These two graphs have some **low frequency energy**. This usually means that there is some binding or grinding in the kinematics: something isn't moving freely. Check the belt alignment on the idlers, bearings, etc... |  |  |
|
||||
| These two graphs show **the TAP wobble problem**: check that the TAP MGN rail has the correct preload for stiffness and that the magnets are correct N52. Also pay attention to the assembly to make sure that everything is properly tightened |  |  |
|
||||
| Here you can see **the effect of an unbalanced fan**: even if you should let the fan off during the final IS tuning, you can use this test to validate their correct behavior: an unbalanced fan usually add some very thin peak around 100-150Hz that disapear when the fan is off during the measurement |  |  |
|
||||
| The graph on the left shows **a CANbus problem** (problem solved on the right): although the general shape looks good, the graph is not smooth but spiky. There is also usually some low frequency energy. This happens when the bus speed is too low: set it to 1M to solve the problem |  |  |
|
||||
40
docs/macros/belts_tuning.md
Normal file
40
docs/macros/belts_tuning.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# Belt relative difference measurements
|
||||
|
||||
The `BELTS_SHAPER_CALIBRATION` macro is dedicated for CoreXY machines where it can help you to diagnose belt path problems by measuring and plotting the differences between their behavior. It will also help you tension your belts at the same tension.
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
**Before starting, ensure that the belts are properly tensioned**. For example, you can follow the [Voron belt tensioning documentation](https://docs.vorondesign.com/tuning/secondary_printer_tuning.html#belt-tension). This is crucial!
|
||||
|
||||
Then, call the `BELTS_SHAPER_CALIBRATION` macro and look for the graphs in the results folder. Here are the parameters available:
|
||||
|
||||
| parameters | default value | description |
|
||||
|-----------:|---------------|-------------|
|
||||
|VERBOSE|1|Wether to log things in the console|
|
||||
|FREQ_START|5|Starting excitation frequency|
|
||||
|FREQ_END|133|Maximum excitation frequency|
|
||||
|HZ_PER_SEC|1|Number of Hz per seconds for the test|
|
||||
|
||||
|
||||
## Graphs description
|
||||
|
||||
## Analysis of the results
|
||||
|
||||
On these graphs, you want both curves to look similar and overlap to form a single curve. Try to make them fit as closely as possible. It's acceptable to have "noise" around the main peak, but it should be present on both curves with a comparable amplitude. Keep in mind that when you tighten a belt, its main peak should move diagonally toward the upper right corner, changing significantly in amplitude and slightly in frequency. Additionally, the magnitude order of the main peaks *should typically* range from ~100k to ~1M on most machines.
|
||||
|
||||
The resonant frequency/amplitude of the curves depends primarily on three parameters (and the actual tension):
|
||||
- the *mass of the toolhead*, which is identical for both belts and has no effect here
|
||||
- the *belt "elasticity"*, which changes over time as the belt wears. Ensure that you use the **same belt brand and type** for both A and B belts and that they were **installed at the same time**
|
||||
- the *belt path length*, which is why they must have the **exact same number of teeth** so that one belt path is not longer than the other when tightened at the same tension
|
||||
|
||||
**If these three parameters are met, there is no way that the curves could be different** or you can be sure that there is an underlying problem in at least one of the belt paths. Also, if the belt graphs have low amplitude curves (no distinct peaks) and a lot of noise, you will probably also have poor input shaper graphs. So before you continue, ensure that you have good belt graphs or fix your belt paths. Start by checking the belt tension, bearings, gantry screws, alignment of the belts on the idlers, and so on.
|
||||
|
||||
|
||||
## Examples of graphs
|
||||
|
||||
| Comment | Belt graphs examples 1 | Belt graphs examples 2 |
|
||||
| --- | --- | --- |
|
||||
| **Both of these two graphs are considered good**. As you can see, the main peak doesn't have to be perfect if you can get both curves to overlap |  |  |
|
||||
| **These two graphs show incorrect belt tension**: in each case, one of the belts has insufficient tension (first is B belt, second is A belt). Begin by tightening it half a turn and measuring again |  |  |
|
||||
| **These two graphs indicate a belt path problem**: the belt tension could be adequate, but something else is happening in the belt paths. Start by checking the bearings and belt wear, or belt alignment |  |  |
|
||||
31
docs/macros/vibrations_tuning.md
Normal file
31
docs/macros/vibrations_tuning.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# Vibrations measurements
|
||||
|
||||
The `VIBRATIONS_CALIBRATION` macro helps you to identify the speed settings that exacerbate the vibrations of the machine (ie. where the frame and motors resonate badly). This will help you to find the clean speed ranges where the machine is more silent and less prone to vertical fine artifacts on the prints.
|
||||
|
||||
> **Warning**
|
||||
>
|
||||
> You will first need to calibrate the standard input shaper algorith of Klipper using the other macros! This test should not be used before as it would be useless and the results invalid.
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
Call the `VIBRATIONS_CALIBRATION` macro with the direction and speed range you want to measure. Here are the parameters available:
|
||||
|
||||
| parameters | default value | description |
|
||||
|-----------:|---------------|-------------|
|
||||
|SIZE|60|size in mm of the area where the movements are done|
|
||||
|DIRECTION|"XY"|direction vector where you want to do the measurements. Can be set to either "XY", "AB", "ABXY", "A", "B", "X", "Y", "Z", "E"|
|
||||
|Z_HEIGHT|20|z height to put the toolhead before starting the movements. Be careful, if your ADXL is under the nozzle, increase it to avoid a crash of the ADXL on the bed of the machine|
|
||||
|VERBOSE|1|Wether to log the current speed in the console|
|
||||
|MIN_SPEED|20|minimum speed of the toolhead in mm/s for the movements|
|
||||
|MAX_SPEED|200|maximum speed of the toolhead in mm/s for the movements|
|
||||
|SPEED_INCREMENT|2|speed increments of the toolhead in mm/s between every movements|
|
||||
|TRAVEL_SPEED|200|speed in mm/s used for all the travels moves|
|
||||
|ACCEL_CHIP|"adxl345"|accelerometer chip name in the config|
|
||||
|
||||
|
||||
## Graphs description
|
||||
|
||||
## Analysis of the results
|
||||
|
||||
TODO: add the analysis part here
|
||||
Reference in New Issue
Block a user