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:
- Reduce print speed to 40-50mm/s (for testing)
- Lower Acceleration values:
- Start: 500 mm/s²
- Medium: 1000 mm/s²
- Aggressive: 2000+ mm/s² (high ghosting risk)
- Lower Jerk value (Marlin): 7-10 mm/s
- 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:
- Check the belts — they should be taut like a guitar string
- They should produce a clear "twang" sound when plucked
- Adjust X and Y belts to equal tension
- Check GT2 belt teeth for wear
- 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:
- Place the printer on a sturdy and level surface
- Install vibration-damping feet (silicone/rubber)
- Place it on a heavy concrete slab or tile
- Tighten frame screws (especially corner connections)
- 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:
- Obtain an ADXL345 accelerometer sensor
- Connect it to your Raspberry Pi
- Add the ADXL345 definition to your Klipper config
- Run the
SHAPER_CALIBRATEcommand - The system automatically determines the best shaper type and frequency
- 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:
- Remove unnecessary weight from the print head
- Consider switching to a Bowden system (reduces weight)
- If using direct drive, keep speed and acceleration low
- 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:
- Start a test with
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=1 ACCEL=500 - Run the command
TUNING_TOWER COMMAND=SET_PRESSURE_ADVANCE PARAMETER=ADVANCE START=0 FACTOR=.005 - Print the test cube and find the cleanest corner
- Calculation:
pressure_advance = START + (best_height × FACTOR) - Save to printer.cfg:
pressure_advance: 0.05(example value)
Marlin - Linear Advance:
- Use the Linear Advance calibration page
- Print the K-factor test
- After finding the smoothest line:
M900 K0.05