Merge branch 'develop' into cross-belts

This commit is contained in:
Félix Boisselier
2024-05-19 12:10:26 +02:00
43 changed files with 1554 additions and 1177 deletions

View File

@@ -1,12 +1,70 @@
# Klippain Shake&Tune module documentation
# Klipper Shake&Tune plugin documentation
![](./banner_long.png)
When perfecting 3D prints and tuning your printer, there is all that resonance testing stuff that Shake&Tune will try to help you with. But keep in mind that it's part of a complete process, and Shake&Tune alone won't magically make your printer print at lightning speed. Also, when using the tools, **it's important to get back to the original need: good prints**.
While there are some ideal goals described in this documentation, you need to understand that it's not always possible to achieve the ideal resonance graphs due to a variety of factors unique to each printer, such as precision of the assembly, quality and brand of components, components wear, etc. Even a different accelerometer can give different results. But that's not a problem; the primary goal is to produce clean and satisfactory prints. If your test prints look good and meet your standards, even if the response curves aren't perfect, you're on the right track. **Trust your printer and your print results more than chasing ideal graphs!** If it's satisfactory, there's no need for further adjustments.
First, you might want to check out the **[input shaping and tuning generalities](./is_tuning_generalities.md)** documentation to understand how it all works and what to look for when taking these measurements.
## Resonance testing
First, check out the **[input shaping and tuning generalities](./is_tuning_generalities.md)** documentation to understand how it all works and what to look for when taking these measurements.
A standard tuning workflow might look something like this:
Then look at the documentation for each type of graph by clicking on them below tu run the tests and better understand your results to tune your machine!
```mermaid
%%{
init: {
'theme': 'base',
'themeVariables': {
'lineColor': '#232323',
'primaryTextColor': '#F2055C',
'secondaryColor': '#D3D3D3',
'tertiaryColor': '#FFFFFF'
}
}
}%%
flowchart TB
subgraph Tuning Workflow
direction LR
start([Start]) --> tensionBelts[Tension your\nbelts as best\n as possible]
checkmotion --> tensionBelts
tensionBelts --> SnT_Belts[Run Shake&Tune\nbelts comparison tool]
SnT_Belts --> goodbelts{Check the documentation\nDoes belts comparison profiles\nlook decent?}
goodbelts --> |YES| SnT_IS[Run Shake&Tune\naxis input shaper tool]
goodbelts --> |NO| checkmotion[Fix your mechanical assembly\nand your motion system]
SnT_IS --> goodIS{Check the documentation\nDoes axis profiles and\n input shapers look decent?}
goodIS --> |YES| SnT_Vibrations[Run Shake&Tune\nvibration profile tool]
goodIS--> |NO| checkmotion
SnT_Vibrations --> goodvibs{Check the documentation\nAre the graphs OK?\nSet the speeds in\nyour slicer profile}
goodvibs --> |YES| pressureAdvance[Tune your\npressure advance]
goodvibs --> |NO| checkTMC[Dig into TMC drivers\ntuning if you want to]
goodvibs --> |NO| checkmotion
checkTMC --> SnT_Vibrations
pressureAdvance --> extrusionMultiplier[Tune your\nextrusion multiplier]
extrusionMultiplier --> testPrint[Do a test print]
testPrint --> printGood{Is the print good?}
printGood --> |YES| unicorn{want to chase unicorns}
printGood --> |NO -> Underextrusion / Overextrusion| extrusionMultiplier
printGood --> |NO -> Corner humps and no ghosting| pressureAdvance
printGood --> |NO -> Visible VFAs| SnT_Vibrations
printGood --> |NO -> Ghosting, ringing, resonance| SnT_IS
unicorn --> |NO| done
unicorn --> |YES| SnT_Belts
end
classDef standard fill:#70088C,stroke:#150140,stroke-width:4px,color:#ffffff;
classDef questions fill:#FF8D32,stroke:#F24130,stroke-width:4px,color:#ffffff;
classDef startstop fill:#F2055C,stroke:#150140,stroke-width:3px,color:#ffffff;
class start,done startstop;
class goodbelts,goodIS,goodvibs,printGood,unicorn questions;
class tensionBelts,checkmotion,SnT_Belts,SnT_IS,SnT_Vibrations,pressureAdvance,extrusionMultiplier,testPrint,checkTMC standard;
```
You can access the documentation for each graph type by clicking on it in the table below.
| [Belt response comparison](./macros/belts_tuning.md) | [Axis input shaper graphs](./macros/axis_tuning.md) | [Vibrations profile](./macros/vibrations_profile.md) |
|:----------------:|:------------:|:---------------------:|
@@ -31,7 +89,7 @@ Here are the parameters available when calling this macro:
|SPEED|80|speed of the toolhead in mm/s for the movements|
|ACCEL|1500 (or max printer accel)|accel in mm/s^2 used for all the moves|
|TRAVEL_SPEED|120|speed in mm/s used for all the travels moves|
|ACCEL_CHIP|"adxl345"|accelerometer chip name in the config|
|ACCEL_CHIP|None|accelerometer to use for the test. If unset, it will automatically select the proper accelerometer based on what is configured in your `[resonance_tester]` config section|
The machine will move slightly in +X, +Y, and +Z, and output in the console: `Detected axes_map: -z,y,x`.
@@ -50,8 +108,11 @@ Here are the parameters available when calling this macro:
| parameters | default value | description |
|-----------:|---------------|-------------|
|FREQUENCY|25|excitation frequency (in Hz) that you want to maintain. Usually, it's the frequency of a peak on one of the graphs|
|TIME|10|time in second to maintain this excitation|
|DURATION|10|duration in second to maintain this excitation|
|ACCEL_PER_HZ|None|accel per Hz value used for the test. If unset, it will use the value from your `[resonance_tester]` config section (75 is the default)|
|AXIS|x|axis you want to excitate. Can be set to either "x", "y", "a", "b"|
|TRAVEL_SPEED|120|speed in mm/s used for all the travel movements (to go to the start position prior to the test)|
|Z_HEIGHT|None|Z height wanted for the test. This value can be used if needed to override the Z value of the probe_point set in your `[resonance_tester]` config section|
## Complementary ressources

View File

@@ -11,14 +11,15 @@ Then, call the `AXES_SHAPER_CALIBRATION` macro and look for the graphs in the re
| parameters | default value | description |
|-----------:|---------------|-------------|
|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"|
|SCV|printer square corner velocity|Square corner velocity you want to use to calculate shaper recommendations. Using higher SCV values usually results in more smoothing and lower maximum accelerations|
|MAX_SMOOTHING|None|Max smoothing allowed when calculating shaper recommendations|
|KEEP_N_RESULTS|3|Total number of results to keep in the result folder after running the test. The older results are automatically cleaned up|
|KEEP_CSV|0|Weither or not to keep the CSV data file alonside the PNG graphs|
|FREQ_START|5|starting excitation frequency|
|FREQ_END|133|maximum excitation frequency|
|HZ_PER_SEC|1|number of Hz per seconds for the test|
|ACCEL_PER_HZ|None|accel per Hz value used for the test. If unset, it will use the value from your `[resonance_tester]` config section (75 is the default)|
|AXIS|"all"|axis you want to test in the list of "all", "X" or "Y"|
|SCV|printer square corner velocity|square corner velocity you want to use to calculate shaper recommendations. Using higher SCV values usually results in more smoothing and lower maximum accelerations|
|MAX_SMOOTHING|None|max smoothing allowed when calculating shaper recommendations|
|TRAVEL_SPEED|120|speed in mm/s used for all the travel movements (to go to the start position prior to the test)|
|Z_HEIGHT|None|Z height wanted for the test. This value can be used if needed to override the Z value of the probe_point set in your `[resonance_tester]` config section|
## Graphs description

View File

@@ -1,6 +1,6 @@
# Belt relative difference measurements
The `COMPARE_BELTS_RESPONSES` 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.
The `COMPARE_BELTS_RESPONSES` 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. Using it on Cartesian printers doesn't really make sense, as it's normal to have different responses in that case.
## Usage
@@ -11,11 +11,12 @@ Then, call the `COMPARE_BELTS_RESPONSES` macro and look for the graphs in the re
| parameters | default value | description |
|-----------:|---------------|-------------|
|FREQ_START|5|Starting excitation frequency|
|FREQ_END|133|Maximum excitation frequency|
|HZ_PER_SEC|1|Number of Hz per seconds for the test|
|KEEP_N_RESULTS|3|Total number of results to keep in the result folder after running the test. The older results are automatically cleaned up|
|KEEP_CSV|0|Weither or not to keep the CSV data files alonside the PNG graphs|
|FREQ_START|5|starting excitation frequency|
|FREQ_END|133|maximum excitation frequency|
|HZ_PER_SEC|1|number of Hz per seconds for the test|
|ACCEL_PER_HZ|None|accel per Hz value used for the test. If unset, it will use the value from your `[resonance_tester]` config section (75 is the default)|
|TRAVEL_SPEED|120|speed in mm/s used for all the travel movements (to go to the start position prior to the test)|
|Z_HEIGHT|None|Z height wanted for the test. This value can be used if needed to override the Z value of the probe_point set in your `[resonance_tester]` config section|
## Graphs description
@@ -46,6 +47,10 @@ Paired peaks of exactly the same frequency will be on the same point (labeled A1
1. **The estimated similarity** measure provides a quantitative view of how closely the frequency profiles of the two belts match across their entire range. A similarity value close to 100% means that the belts are well matched, indicating equal tension and uniform mechanical behavior.
2. **The mechanical health indicator** provides another assessment of the printer's operating condition based on the estimated similarity and influenced by the number of paired and unpaired peaks. A noisy signal generally lowers the value of this indicator, indicating potential problems. However, this measure can sometimes be misleading, so it's important not to rely on it alone and to consider it in conjunction with the other information displayed.
> **Note**:
>
> If you are using this tool to check or adjust the tension after installing new belts, you will need to measure again after a few hours of printing, as the tension can change slightly as the belts stretch and settle to their final tension. Usually 24 hours should be sufficient.
## Advanced explanation on why 1 or 2 peaks