Input Shaper without effect?!

Basic Information:

Printer Model: Kingroon KP3S
MCU / Printerboard: Kingroon KP3 V1.2
klippy.log (20.1 KB)

Describe your issue:

Hi folks,

although it says “Never change a running system” or something similar I changed the print head of this little fellow and swapped the RasPi 3 with an OrangePi Zero that was used on my CoreXY before.
Before all this I think I found a good config in terms of input shaping.
Due to changed mass of the print head I rerun resonance measurement with the ADXL345 for both X and Y and put the recommended shaper settings into the printer.cfg.
Then I printed a smaller resonance tower to save filament (Accel Ringing Test Remixed by _Frezap - Thingiverse) and noticed ringing.
Even without input shaping or different shapers and respective frequencies in my opinion the quality did not change…
Although without input shaping it looks the same I rerun the measurements with the RasPi3 but it was quite identical.

If you check the pictures there are two heavy resonance peaks on the X axis and I do not know whether the shaping can mask those properly.
I mean the print quality is not that bad but as it does not seem to change I’m asking for any ideas.

As it is quite hard to photograph I did not yet attach any photos of the actual prints. Just want to clarify whether there might be a bug or something or it is already the best due to those resonance twins or I missed something due to dirty glasses… :face_with_monocle:

Have you tried different shaper types?

Yes, as I wrote I tried with different shaper types and frequencies and disabled shapers to verify.
Can’t explain this as I’m used to see quite big changes with enabled input shapers.

(incorrect comment deleted)

  • Your “Power Spectral Density” (see left y-axis) is very low: ~0.8e4
  • The Frequency range (x-axis) is very broad, basically going from 0 to ~130 Hz

According to my experience this points to an issue in your motion system, e.g. the axis is binding and / or not running smoothly. This leads to highly damped vibration (low PSD) and a broad spectrum.


That sounds reasonable. When moving the axes X is easier to move than Y but if I understand you correct the issue is worse on X?!
I’ll clean the rails and maybe loosen the belts a bit and see how it behaves.

It really was a pain to get Numpy installed on the OrangePi Zero but now it is worth it.

Do you guys maybe have an idea why both diagrams show Z as main driver for resonances?
Same with another ADXL345…
When mounted on the hotend the ADXL345 Z axis aligns with X but when mounted on the bed its Z axis aligns with the printers Z axis so the main movement should not occur on Z…

When measuring resonances on my other printer those axes respond accordingly.

Maybe a bit of definition will help: What is a mechanic resonance:

  1. You apply a periodic force on a system, the excitation frequency
  2. You measure the “answer” of your system with the accelerometer
  3. Depending on the excitation frequency the system will only answer weakly (low amplitude / low Power Spectral Density) or stronger (high amplitude).
  4. A local maximum is called resonant frequency (the peaks in you graph)
  5. Every single part in your system may react differently to the given excitation frequency. This means every part has its own “natural frequency” at which it answers with a high amplitude
  6. What you measure is the complex summary answer of your entire system at the location of the IMU mount

Generally the system’s answer is not bound to a certain direction. This means an excitation in X or Y direction can lead to a resonance in Z.

You will barely find an answer, as to why you have a certain resonance in one or another direction. This depends on so many factors:

  • Excited mass, e.g. typically Y axes are heavier than X axes
  • Stiffness differences in the different directions
  • Loose / moving parts that have a certain degree of freedom in one or the other direction
  • etc.

If you really want to find the answer you most likely will have to bisect your system, for example:

  • Remove hot-end, then measure
  • Change belt tensions, then measure

In the end even this might be futile if your entire frame is giving this particular answer.


Do you guys maybe have an idea why both diagrams show Z as main driver for resonances?

Hmm… some of the PCB are wrongly labeled or the label is OK, but the mounted the part the wrong way. But basically there should be no acceleartion in Z. Doi you use “funny” printer stands like squash balls or anything like this? Please try the following: Put something really heavy (weight of the printer itself or half of it) on your table during the measurement of at least one axis (x Axis). Does the part “vibration” reduce dramatically?

To make one clear: The large peek just points aou, that the damping of your system is low that means, that the stiffnes is good. Lower Peek does not mean, better ringing result…

Both pictures show a smaller peak on Y and the “main” peak(s) on Z although the mounting is different for both.
When mounted on the hotend the ADXL345 Z axis is identical to the printers X axis. So the main peak should be visible on Z here.
But when mounted on the bed the ADXL345 Y axis is identical to the printers Y axis. So the main peak should be on Y and not Z. Although the tiny bed of the KP3S is not having such a big mass it should dominate I think.

I’m using the original hard rubber feed but inbetween those and the chassis there is a printed base/housing for the PSU and OrangePi.

As discussed above: The direction of the resonance answer cannot be predicted and depends on the system. All graphs I have seen so far (quite a few) have some Z component in one or the other way. @LifeOfBrian’s are quite high

A “concentrated” large peak only means that the system answers only for certain excitation frequencies. I’m quite leery to connect a potential stiffness to the attenuation and the peak form.
With 0 attenuation a resonance’s PSD would go towards infinity until the system is destroyed. Basically a high attenuation is wanted since this means resonances rise slower and decay faster.

What can be stated is that low frequency resonances have a higher effect on ringing than high frequency resonances.
So if you want to define a general goal then it would be:

  • Only one sharp peak → Least invasive filtering, i.e. ZV
  • Sharp peak at high frequency → Less effect on ringing
  • Low PSD → Generally only a weak resonance

The direction of the resonance answer cannot be predicted and depends on the system.

Agreed! But if you imagine a mass wich is floating free in space, the answer should always be in the direction of the stimmulation. If you stimulate in X-direction and get an “answer” in Z direction the following happened: Some mass turns around the Y-axis and generate a component in Z-direction. Think of a pendulum!

I’m quite leery to connect a potential stiffness to the attenuation and the peak form.

be brave! :slight_smile: Below you ses the stimulation answer from my voron in X-direction
blue: Regular Voron frame, without panels and “joined link” connection (which is crab)
red: Same frame, but with “knotenblechen” (I got no sensful translation for this, see pic below) at all joints.

The energy increased and the stiffness increased. My explenation: The reduction in damping by increasing the stiffness results in a higher energy of the natural frequency. If you place a ruler over the table’s edge and snap it,m it only starts to swing, if you press the ruler against the table (=decrease damping). Energy of the swinging is high.

Translation to the real world: The peek “height” can be handled by the active damping of Klipper, but impicit damping of the system is a problem, if it comes from lack of stiffnes (because: in extreme, the “damping” in one direction results in a physical movement in another direction and you don’t want that!)

@LifeOfBrian : For me the graphics make no sense: Resonance_x graph shows almost no reaction in X-Direction (red line) but of course we expect the main “answer” in that direction. Resonance y looks better: the green curve has an expected behaviour.

my conclusion: a) something is wrong in your setup. I expect resonance_x to have a y-stimulation (that is what the graphic says)
b) there is a machanical problem. Is the PCB attached with screws and the screws are tight? If you got a coreXY, did you check the XY-Frame alignmentand stiffness and that all is moving smoothly (without motors attached?) You can get (my opinion) ony a Z-component in the answer, if you have masses that turn around the Y-axis in the first graph and the X-axix in the second graph. strange!

Below you can see my measurement: stimulation was in X-Direction. blue is the X-answer, gray the Y-answer und red the Z-answer all in the same axis dimension. The system is new, all screws are tightened like hell and I used the edge “Knotenbleche” 60x60mm. This is like it should be (ähhh: OK not good enough fo me but that’s a different story!)

Sorry for the mass of text!

Sorry! I just looked now to the printer you use. It makes anything clearer. I read somewhere, you used a coreXY but the Kingroon KP3S is a “Galgen”-printer, most evil kinematic for 3D printing :wink:

The problem is in the link of the X-Axis to the Z-Axis or the X-axis itself. If it is not exactly 90 deg or you have a looseplay between X and Z (you always have in that configuration!) or your bearings are not 100% ok you will get heavy problems. Sorry to say, but you will not get any “decent” prints from this printer if you have some wear in any of these components. :sleepy:

Redo the measuring at different Z-heights (at least: lowest and highest possible Z-Position), and at “leftmost” and “rightmost” position of the X-axis (if possible) only in X-direction and post the 4 (2) results in one graph (upload the CSVs if you are uncertain). Maybe we see a remarkable change of behaviour between lowest and highest Z-postion. The the connection between X/Z or Z/Bed has a problem.

That could explain, why you have strong answer in Z-direction: your “Galgen” (gallows) has some play against another component (either X-axis or bed) and is moving like a pendulum in either direction. While printing, the X-axis “hangs down” and does not have any problem (since: no acceleration in either Y and Z direction), so your prints are OK (more or less, edges could be a problem). But doing the test, all comes up.

I have a couple of printers but this here is about the KP3S only.
The printer is printing quite well and I’m always designing own fan ducts and stuff and recently upgraded linear rails to the Z axis and installed my new print head.
It all feels quite stiff but I know the power of resonance frequencies.

At least on this PC here I do not have older resonance graphs to compare them with the new ones. I’m just curious about Z always responding the most to the stimulations although it is not always the triggered axis of the ADXL345.

The accelerometer is properly mounted with screws and nuts.

If I find time to run these tests I’ll upload the results.
Thank you all for your ideas and time you put into this thread! Appreciate it!
But I just saw that there are two csv-files contained in the graphs for some reason. So I’ll have to clear this up as well.

Thinking this over, I can agree.

  • Attenuation means that energy is “drained” in the system, e.g. by dampers or in our case lack of stiffness
  • Higher stiffness of the entire system / frame means that more resonance energy is seen by the IMU
  • PSD thus gets higher

Back to @LifeOfBrian printer:

Printer y-axis:

  • The basic form of the graph looks OK
  • The big Z component looks a bit fishy, although some Z portion is normal
  • Could be an effect of the IMU mounting

On a bed slinger the IMU is mounted on the bed. How did you do this? Did you mind directions as noted on the IMU’s silk screen?

Printer x-axis:

  • This graph looks like a mechanical problem
  • For comparison see the following two graphs. The first one is always the messed-up axis (binding) and the second one the proper:

Modified Ender 5:

Custom corexy easily capable of accels > 20k

  • Take note of:
    • Very low PSD of the messed-up axis
    • Broad frequency spectrum of resonances of the messed up axis

As written already the ADXL345 at least when attached to the print head for measuring X resonances is not aligned with the silk print:

On the bed it is meeting the X and Y axes inverted:

If the correct orientation of the ADXL345 is key here I’ll mount it properly.
I was just assuming that the algorithm either uses the highest peaks of one axis response or the sum of all responses.
If it really only looks for the respective axis it is triggering then my mounting is not the best.

And on my custom CoreXY the ADXL345 sits on the EBB36 and I think there it is not aligned with the physical axes but seems to work.
Would it be helpful using

axes_map: x, y, z

then if proper values?

In fact it is important and there even is a PR to auto-detect it: adxl345: Added automatic accelerometer calibration by dmbutyugin · Pull Request #4931 · Klipper3d/klipper · GitHub

Also note that especially the Z-Axis is treated special and also is more susceptible to noise. In how much this would affect measurement I cannot tell.
Personally I always make sure to mount it according to axes definition.

Thank you @Sineos!
So redefining the axes won’t be enough but correct mounting?

I lack the knowledge about the coding and the inner working of such a sensor to really answer this question. According to the data sheet of the ADXL, the Z-axis is “special”.

Since we are mainly interested in x and y, I simply do not ask for trouble and mount it accordingly.

1 Like

One general thing about how you mount it on the bed: The PEI Sheet is springsteel, so not really strong enough for the test. It will start swinging in Z-Direction. Maybe you can clamp the sensor directely on the bed?
Second tip: Maybe you tape the cable to the X-Axis during Y-Axis test, since the cable looks heavy. I think it is a good idea to have the cable going straight up during the Y-Test… Only my 5 cents…

1 Like

Good points.

When I do testing like this, I used a damaged/scraped PEI and stainless steel sheet for mounting the accelerometer (using Scotch Permanent Outdoor Mounting Tape - it’s two sided) in the right front corner (keeping the middle free for testing Z axis sensors).

Personally, I would be more worried about the stiffness of the cladding of the cable rather than it’s mass. Suspending the cable during tests isn’t a bad idea and I would recommend that you anchor a section of the cable on the build surface/gantry to minimize any flexing of the accelerometer PCB due to force from the wire.

1 Like