Ringing and ghosting in 3D prints: causes and how to fix them

3d_printing_ringing-1757112395123

Ringing, also called ghosting or echoing, is the ripple pattern that repeats a sharp edge, hole or embossed letter a few millimetres further along a wall. It comes from the printer vibrating after fast changes of direction. Fix it in this order: tighten loose belts, pulleys and frame screws; lower the acceleration for outer walls; then tune input shaping, which Klipper, Marlin 2.1.2 and later, current Prusa firmware and Bambu Lab printers all support.

Mechanical fixes come first because input shaping only cancels vibration at a frequency it has measured. A loose belt shifts that frequency, and Klipper’s own documentation warns that ringing usually has mechanical origins. This guide covers how to confirm the defect really is ringing, which checks to do before tuning, and the exact tuning procedure for each firmware, with sources linked at the end.

Affiliate · Featured hardware Snapmaker U1 5X More Speed. 5X Less Waste.

The consumer toolchanger 3D printer: the SnapSwap 4-toolhead system swaps heads in 5 seconds for true multi-color and multi-material printing, with smart calibration and auto filament loading.

  • 4 toolheads · 5 s swap
  • Up to 500 mm/s · 20,000 mm/s²
  • 270 mm cube build volume
  • Multi-color & multi-material
See the Snapmaker U1 →
Snapmaker U1

Ringing fix in 60 seconds

  1. Check which walls show the ripples: walls along X, along Y, or both.
  2. Check belt tension, motor pulleys and frame screws on that axis. Put the printer on a firm surface.
  3. Reprint with lower acceleration for outer walls. If the ripples fade, the cause is vibration.
  4. Tune input shaping: a ringing test tower, an accelerometer, or your printer’s built-in calibration.
  5. Re-run the calibration after any belt, toolhead or frame change.

How to recognise ringing

Ringing shows up on vertical walls right after a corner or a sharp feature. The edge “echoes” as a series of fading waves in the direction the nozzle was travelling. Klipper calls this ringing; Prusa’s documentation describes the same waves after a sharp edge as ghosting, and its input shaper targets it the same way. Guides that treat them as two separate problems describe one cause with two names.

The mechanism is simple: the toolhead (or the bed on a bed-slinger) has mass, the belts and frame act as springs, and every sudden stop sets the system oscillating at its natural frequency. The faster the direction change, the stronger the echo. That is why lowering acceleration helps, and why stiffer belts or a lighter toolhead change the result.

Not every ripple is ringing. Klipper’s test tower has curved notches, and real ringing follows their pattern. If the ripples on your test print don’t follow the notches, Klipper says the defect has a different origin, mechanical or in the extruder, and should be fixed before you enable input shaping. Lines that repeat across the whole wall with no link to corners or features are also worth treating as an extrusion or mechanical problem first.

Ringing diagnosis table

What you seeLikely causeWhat to do
Fading waves after corners, holes and embossed textResonance excited by fast direction changesLower acceleration, then tune input shaping
Ripples only on walls parallel to one axisA problem on that axis: belt, pulley, loose carriage or bedCheck that axis mechanically; tune that axis’s shaper frequency separately
Ringing came back after tightening belts or changing the hotend or fanThe resonant frequency changedRe-measure or re-run the calibration
Ripples that don’t follow the notches on the Klipper test towerNot ringing: mechanical or extruder faultFix the mechanics or extrusion before tuning
Rounded corners and a wall gap that widens at high accelerationToo much smoothing from the input shaperLower max_accel, or use MZV instead of EI
Measured ringing frequency below about 20–25 HzFlexible frame or heavy moving massStiffen the printer or lighten the toolhead first
Bulges at corners but no gap, even at high accelerationPressure advance disabled, or flow set too highRe-test with pressure advance on and check flow
Ripples on outer walls don’t change when you lower acceleration in the slicerThe outer wall has its own acceleration value, or the firmware ignores the slicer’s commandCheck the per-feature value and the M204 lines in the G-code (see below)
Fine, evenly spaced vertical lines on straight walls, worse at some speeds, with no link to cornersVertical fine artifacts (VFA), often stepper motor resonance rather than ringingRun OrcaSlicer’s VFA speed test and move the outer wall speed out of the bad range

Rows four to seven come straight from Klipper’s resonance compensation guide. They apply to any printer, because the physics does not depend on the firmware.

Mechanical checks before any tuning

Klipper lists the usual mechanical causes: a frame that isn’t rigid enough, belts that are loose or too springy, misaligned parts and heavy moving mass. Prusa’s input shaper guide also asks you to make sure the X and Y belts are not loose, the nozzle is in good shape and the smooth rods are free of debris before relying on it. Work through this list:

  • Belts. A loose belt lets the toolhead bounce and lowers the resonant frequency. See the warning signs of loose belts and the belt tension calibration guide. Match tension on paired belts of CoreXY printers.
  • Motor pulleys. Grub screws must be tight, with one seated on the flat of the motor shaft.
  • Frame and gantry. Tighten frame bolts and check for play in V-slot wheels or linear bearings. Tall, open-frame printers often benefit from frame bracing.
  • Toolhead and bed. A loose hotend, fan duct or bed carriage adds its own wobble on top of the frame’s.
  • Surface. A wobbly table moves with the printer. Use a solid, level surface.

Slicer settings that reduce ringing

Without input shaping, the only software fix is to move more gently:

  • Acceleration. This matters most. Bambu Lab’s troubleshooting page, for example, suggests lowering it under Speed → Acceleration → Normal printing when walls ring. There is no universal value; a practical starting point is to cut outer-wall acceleration by roughly a quarter and compare prints, then keep going until the echo stops improving.
  • Jerk or junction deviation. These limit how abruptly the printer takes a corner. In Marlin they are set with M205 (X/Y jerk, or J for junction deviation, depending on how the firmware was built). Lowering them softens corners but costs time.
  • Outer wall speed. Slower perimeters give smaller oscillations. It is the least efficient fix, because it slows down every print.

Change one setting at a time and print the same small test model each time, or you won’t know which change helped.

Per-feature acceleration in OrcaSlicer and Cura

Ringing only matters on surfaces you can see, so you don’t have to slow the whole print. Current slicers set acceleration separately for each feature and send it to the printer before that feature starts. Lower it for the outer wall and top surface, and leave infill, inner walls and travel faster. Most of the print time is saved, and the visible walls still get gentle moves.

SlicerWhere to find itLower for ringingCan stay higherNotes from the docs
OrcaSlicerSpeed tab, Acceleration groupOuter wall, top surfaceInner wall, sparse infill, travelNormal printing set to 0 uses the printer’s default. Orca caps every value at the printer’s Motion Ability limit and suggests matching top surface acceleration to the outer wall.
UltiMaker CuraSpeed section: Enable Acceleration Control, Enable Jerk ControlOuter Wall Acceleration, Top/Bottom Acceleration, Outer Wall JerkInfill, Inner Wall and Travel AccelerationBoth controls are off by default, so until you switch them on Cura leaves acceleration and jerk to the printer profile and firmware.

When the slicer’s value doesn’t reach the printer

If lowering outer wall acceleration changes nothing, open the sliced G-code and look at the acceleration commands in front of each wall.

  • Marlin takes the slicer’s acceleration through M204: P for printing moves, T for travel and R for retraction. The legacy S parameter sets printing and travel together.
  • Klipper reads M204 differently. Without S, it needs both P and T and then uses the lower of the two. A command with only P or only T has no effect, and the printer keeps its current acceleration, which by default is max_accel from printer.cfg.
  • Jerk in slicers is not the physics term (the rate of change of acceleration). Cura defines it as the maximum instantaneous velocity change of the print head, in mm/s, so it controls how fast a corner is taken without slowing down. A slicer jerk value may do nothing on Klipper, which uses square_corner_velocity instead, or on Marlin builds that use junction deviation.

Vertical fine artifacts are not ringing

Some wall patterns look like ringing but ignore corners completely: fine, regular vertical lines along straight walls, stronger at some speeds than at others. OrcaSlicer calls these vertical fine artifacts (VFA). Its documentation names motor resonance rippling, stepper motors vibrating at resonant frequencies, as a common type, and also lists belts, pulleys and jerk or junction deviation settings as factors. Because the pattern depends on speed rather than on direction changes, lower acceleration is not the main lever. The OrcaSlicer VFA speed test prints a tower while raising the speed step by step, so you can see which outer wall speeds to avoid. Set the test range to cover every outer wall speed you use.

Input shaping on Klipper, Marlin, Prusa and Bambu Lab

Input shaping reshapes the motion commands so the move cancels its own vibration. It needs the resonant frequency of each axis, which you get from a test print or an accelerometer.

Firmware / printerHow you tune itAccelerometer needed?
KlipperRinging test tower and manual calculation, or SHAPER_CALIBRATE with a sensor. Shapers: ZV, MZV, EI, 2HUMP_EI, 3HUMP_EIOptional (ADXL345, MPU-9250 family, LIS2DW, LIS3DH supported)
Marlin 2.1.2+M593 ZV shaper; frequency sweep pattern or ringing tower, saved with M500No; Marlin does not provide accelerometer-based tuning
Prusa CORE One, MK4/S, MK3.9/S, MK3.5/S, XL, MINI/+Built into firmware with factory values; adjustable with M593CORE One L and XL have one built in; others can use an external sensor after hardware changes
Bambu Lab X1 and P1Vibration compensation calibration from the printer or Bambu StudioHandled by the printer

Klipper: measure ringing with the test tower

This method needs no extra hardware. Slice Klipper’s ringing_tower.stl (in docs/prints) with 0.2–0.25 mm layers, zero infill, 1–2 perimeters or vase mode, external perimeters at 80–100 mm/s, a minimum layer time of 3 seconds or less, and any dynamic acceleration control switched off. Don’t rotate the model.

  1. Make sure square_corner_velocity is at its default of 5.0, then run SET_VELOCITY_LIMIT MINIMUM_CRUISE_RATIO=0 and SET_PRESSURE_ADVANCE ADVANCE=0.
  2. Run TUNING_TOWER COMMAND=SET_VELOCITY_LIMIT PARAMETER=ACCEL START=1500 STEP_DELTA=500 STEP_HEIGHT=5. Acceleration rises by 500 mm/s² every 5 mm, up to 7000 mm/s². Stop early if the printer shakes hard or skips steps.
  3. On the side with the X mark, measure the distance D (mm) across several oscillations near the notches, skipping the first one or two. Count the oscillations N.
  4. Frequency = V × N / D, where V is the outer perimeter speed. Klipper’s example: 100 × 6 / 12.14 ≈ 49.4 Hz.
  5. Repeat for the Y mark, and enter both values as shaper_freq_x and shaper_freq_y in the [input_shaper] section.
  6. Print the tower again with SET_INPUT_SHAPER SHAPER_TYPE=MZV, then with EI. Use EI only if it looks noticeably better, because it smooths more.
  7. Choose max_accel. The tower has a 0.15 mm gap in its wall that widens as smoothing grows. Note the highest acceleration where ringing is acceptable and where the gap is still small, and use the lower of the two.

If the spacing between oscillations isn’t consistent, the axis may have several resonances. Klipper’s fallback is to print the tower three times with a 2HUMP_EI shaper at 60, 50 and 40 Hz and keep the highest frequency that still clearly improves ringing.

Klipper: automatic calibration with an accelerometer

With a supported accelerometer wired to the Pi or MCU (Klipper notes this takes some soldering and crimping), run SHAPER_CALIBRATE. It sweeps both axes and prints a fitted frequency, the remaining vibration, smoothing and a suggested max_accel for each shaper type, plus a recommendation. SAVE_CONFIG stores the shaper but does not update max_accel; set that yourself. On a bed-slinger, mount the sensor on the toolhead for X and on the bed for Y, and run SHAPER_CALIBRATE AXIS=Y separately. Watch the first run: the vibrations are intense. Our ADXL345 input shaping guide covers the wiring.

Marlin: M593 input shaping

Marlin’s ZV input shaper (INPUT_SHAPING_X / _Y in the configuration) is tuned with printed patterns from the calibration tool on marlinfw.org. The frequency sweep pattern speeds up as it prints; find where the pattern changes and divide the distance by two. In Marlin’s example the change is at 62 mm, so the frequency is 31 Hz: M593 X F31, then M500. Two further patterns step the damping factor by 0.05 per pass; the seventh pass being most uniform gives M593 X D0.35. Repeat for Y. The patterns print with Linear Advance off, so you may need to recalibrate the K-factor afterwards.

Prusa and Bambu Lab printers

On supported Prusa printers input shaping is part of the firmware and factory-tuned, so recalibration is usually only worth it after hardware changes. Prusa notes that crash detection doesn’t work with input shaper because of the high accelerations. On Bambu Lab X1 and P1 printers, Bambu’s fix for ringing on outer walls is to re-tension the belts and run the vibration compensation calibration again, or lower acceleration.

Common mistakes when fixing ringing

  • Tuning input shaping on a loose printer. The frequency you measure moves as soon as you tighten the belts, and the tuning is wasted.
  • Raising square corner velocity with input shaping. Klipper advises keeping it at 5 mm/s and raising acceleration instead, as higher values add smoothing.
  • Leaving pressure advance on during the test. It distorts the tower. Turn it back on afterwards and check your pressure advance calibration.
  • Measuring from the wrong side. The X and Y marks on Klipper’s tower don’t sit where you’d expect relative to the axes. That is intentional, so follow the marks.
  • Chasing maximum acceleration. Past a point the shaper rounds corners and opens gaps. A slightly slower print with sharp edges is usually the better trade.

When input shaping doesn’t remove it

  • Very low frequency. Below about 20–25 Hz, Klipper recommends stiffening the printer or reducing moving mass, otherwise smoothing will limit your speed instead of ringing.
  • Ringing at a new frequency after tuning. The fine-tuning procedure won’t help; look for a second source of vibration, such as a part that has worked loose.
  • Bed-slinger printing tall or heavy parts. The bed gets heavier as filament goes down and its frequency drops. Klipper notes that EI may suit these machines better, because it is more robust to frequency changes.
  • Surface defects that aren’t vibration. Over-extrusion and bulging corners can look similar. Check your flow rate before blaming the frame.

Frequently asked questions

Are ringing and ghosting the same thing?

Yes. Both names describe the fading echo of an edge or feature on a vertical wall, caused by the printer vibrating after a quick change of direction. Prusa’s documentation uses the two terms interchangeably. The fixes are the same: mechanical checks, lower acceleration and input shaping.

Do I need an accelerometer to use input shaping?

No. Klipper can be tuned from a printed ringing tower by measuring the ripple spacing, and Marlin’s M593 is tuned only with printed patterns. An accelerometer lets Klipper’s SHAPER_CALIBRATE fit the shaper automatically, but it needs wiring. Supported Prusa printers ship factory-tuned, and Bambu Lab X1 and P1 printers run their own calibration.

Why did ringing come back after I tightened the belts?

Belt tension changes how stiff the motion system is, so the resonant frequency changes too. Klipper lists tightened belts, a new hotend or fan and frame reinforcements as reasons to measure again. Bambu Lab also asks for a new vibration compensation calibration after tensioning belts.

Will lowering print speed alone fix ringing?

It can help, because gentler moves excite smaller vibrations. The echo is triggered by direction changes, so lowering outer wall acceleration targets the cause more directly than cutting speed on every move. If you want both speed and clean walls, input shaping is the proper fix.

Sources