This is the result of a week of slicing and testing to get a perfect calibration print for the Prusa MK4's Input Shaper. I had been having trouble terrible ringing and VFAs when using the Input Shaper on my MK4, so I tuned and sliced this tuning G-CODE. After printing this and applying my findings, my printing quality improved drastically. If you are having issues with ringing/ghosting and VFAs, I recommend printing this and tuning your printer. This method of tuning is significantly easier to use because it involves less math and a quicker print time.
To calibrate using this G-CODE, you need to print it and find the Z positions on the X and Y axes where the print quality is the best. Then plug each Z height measurement into this formula where z is the vertical height in millimeters: 15 + 45 * (z / 0.2 - 2) / 297. After plugging in the Z values, you should get the resonance in HZ of each of your axes. You can apply these values by going into PrusaSlicer, make a copy of the input shaper profile, and putting this G-CODE at the end of the starting G-CODE in the custom G-CODE section of the printer settings menu.
M593 X FXVALUE ;replace XVALUE with your measured frequency
M593 Y FYVALUE ;replace YVALUE with your measured frequency
M593 X F46.99
M593 Y F49.86
Essentially, for every layer, the printer increases its input shaper frequency for both axes. It builds layers from 15hz to 60hz, allowing you to observe which frequency is the best. The reason you may need to do this calibration is because of the way Prusa calibrates the MK4 input shaper by default. Prusa takes a “one size fits all” approach with the MK4 input shaper, where they have only one frequency without any tuning. While this may work for some printers, it does not for others. This is where this calibration tower comes in, allowing you to set your own frequencies for your specific printer.
This is the link to the Marlin page for input shaping: https://marlinfw.org/docs/gcode/M593.html
This is the link to a Prusa Forums post that is VERY helpful: https://forum.prusa3d.com/forum/input-shaping/ringingtower-how-to-apply-findings/
I have looked a little more into resonance compensation with the MK4 and I have created a new GCODE file with some minor improvements. It no longer has issues with varying speeds on overhangs, reducing inaccuracy when finding the perfect frequency. This updated GCODE file is in the files section of this model listing.
@JackKolbergE_2097984 simplified the equation I had posted previously, making it much simpler to find the correct frequency. This is the equation: 15 * [ (1 + (5(z) - 2) ) / 99 ] where z is the z height that you measure.
I have found an issue with the MK4 outside of its poorly calibrated input shaping. It is a problem with movement within a certain band of speeds where the print oscillates just enough to cause rippling on the side of the print. The speeds where I found these issues are between 80mm/s and 120mm/s although every printer is different. I have been attempting to compensate for these resonances, however as of now I have been unsuccessful. Both the original and updated input shaping files are not susceptible to this issue as they are outside of the range of resonance. I will continue to work on fixing this issue.
Thread about “belt ripple” resonances: https://forum.prusa3d.com/forum/english-forum-original-prusa-i3-mk4-assembly-and-first-prints-troubleshooting/vibration-artefacts-on-y-axis/paged/2/ (They talk about replacing the pulley; I have and it barely did anything)
Printables listing for an improved Y axis helping with ‘belt ripple’ resonance: https://www.printables.com/model/814369-mk4-y-axis-overhaul-reduce-vertical-artifacts-on-y
The author remixed this model.
This is the G-CODE for the model that has been tuned to perfectly calibrate the Prusa MK4