🚀 New content added!
🔧 Troubleshooting February 5, 2026 4 min read

Ghosting and Ringing in 3D Printing: A Solution Guide

Seeing wavy patterns at corners? 6 main causes of ghosting/ringing and their solutions. From belt tension to Input Shaping, speed settings to frame reinforcement, a complete guide.

Quick Solution (TL;DR)

Ghosting/ringing is usually caused by excessive speed/acceleration, loose belts, or vibrations. First step: reduce print speed to 40mm/s. If it fixes it, the problem is mechanical. If you use Klipper, enable Input Shaping.


What is Ghosting/Ringing?

Ghosting or Ringing refers to wave-like repeating patterns that appear around corners and edges on the print surface. It's a reflection of vibrations generated when the printer makes sudden direction changes.

Symptoms

  • Ripples on the surface after corners
  • A "shadow" pattern around sharp edges
  • Echo image around text and logos
  • Usually more pronounced on the X or Y axis
  • Increases at high speeds, decreases at low speeds

6 Main Causes and Their Solutions

1. ⚡ Excessive Print Speed and Acceleration

The most common cause. High speed + high acceleration = more vibrations.

Solution Steps:

  1. Reduce print speed to 40-50mm/s (for testing)
  2. Lower Acceleration values:
    • Start: 500 mm/s²
    • Medium: 1000 mm/s²
    • Aggressive: 2000+ mm/s² (high ghosting risk)
  3. Lower Jerk value (Marlin): 7-10 mm/s
  4. Junction Deviation (Klipper): 0.01-0.02

Slicer Settings:

  • Cura: Speed → Print Speed: 50, Acceleration: 500
  • PrusaSlicer: Print Settings → Speed → Perimeters: 40
  • OrcaSlicer: Quality → Outer wall speed: 40, Acceleration: 500

2. 🔩 Loose Belts

Loose belts cannot absorb vibrations; instead, they amplify them.

Solution Steps:

  1. Check the belts — they should be taut like a guitar string
  2. They should produce a clear "twang" sound when plucked
  3. Adjust X and Y belts to equal tension
  4. Check GT2 belt teeth for wear
  5. Upgrade to aluminum belt tensioners (for Ender 3)

3. 🏗️ Weak Frame/Structure

If the printer frame vibrates, it will reflect on the print.

Solution Steps:

  1. Place the printer on a sturdy and level surface
  2. Install vibration-damping feet (silicone/rubber)
  3. Place it on a heavy concrete slab or tile
  4. Tighten frame screws (especially corner connections)
  5. Check V-slot wheels — adjust eccentric nuts

Pro Tip: Place the printer close to the floor. Table vibrations affect prints.


4. 🎯 Input Shaping (Klipper Users)

The Input Shaping feature of Klipper firmware virtually eliminates ghosting.

Setup Steps:

  1. Obtain an ADXL345 accelerometer sensor
  2. Connect it to your Raspberry Pi
  3. Add the ADXL345 definition to your Klipper config
  4. Run the SHAPER_CALIBRATE command
  5. The system automatically determines the best shaper type and frequency
  6. Save the results to printer.cfg

Shaper Types:

Type Effect Speed Loss
ZV Low Least
MZV Medium Low
EI High Medium
2HUMP_EI Highest Most

5. ⚖️ Heavy Print Head

Direct drive extruders or heavy hotends generate more vibrations.

Solution Steps:

  1. Remove unnecessary weight from the print head
  2. Consider switching to a Bowden system (reduces weight)
  3. If using direct drive, keep speed and acceleration low
  4. Use a lightweight nozzle (brass instead of steel — but it wears out)

6. 📐 Pressure Advance / Linear Advance

Pressure compensation corrects extrusion delay and improves quality at corners.

Klipper - Pressure Advance:

  1. Start a test with SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500
  2. Run the command TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005
  3. Print the test cube and find the cleanest corner
  4. Calculation: pressure_advance = START + (best_height × FACTOR)
  5. Save to printer.cfg: pressure_advance: 0.05 (example value)

Marlin - Linear Advance:

  1. Use the Linear Advance calibration page
  2. Print the K-factor test
  3. After finding the smoothest line: M900 K0.05
Back to Troubleshooting