3D Printing Troubleshooting: A Sovereign Diagnostics Guide
~10 min readWhen a print fails, it's tempting to change the first setting that comes to mind — increase retraction, lower the temperature, slow down the speed. But guessing at fixes without a diagnostic process leads to thrashing: you change five things, the print improves slightly, and you don't know which change actually helped.
A better approach treats troubleshooting as a diagnostic discipline. The key insight is that your calibration data is your baseline. If you know your filament prints well at 210°C with 0.8mm retraction when it's dry, then wet filament or a partial clog become the likely suspects, not your profile settings.
Philosophy: Baseline-First Diagnosis
Before troubleshooting any issue, establish your baseline:
- Known-good profile: A filament profile you've calibrated and tested. This is your reference — if it prints perfectly one day and fails the next, the problem is almost certainly not the profile itself.
- Calibration data: Temperature tower, retraction tower, and flow calibration results for each filament. Without these, you're working blind.
- Print log: Klipper keeps logs at
/tmp/klippy.log. When something fails, the log usually contains the root cause — missed steps, thermal runaway, serial errors.
The diagnostic process is: compare the current failure to your baseline. If the baseline profile gives bad results, the issue is mechanical or environmental. If a new filament gives bad results, the issue is material-specific and needs calibration.
Failure Mode Catalog
Each failure mode below follows the same structure: symptom → likely causes (ordered by probability) → diagnostic step → fix.
Stringing and Oozing
Thin wisps or blobs of plastic between separate parts of the print. Common on articulated models, retraction towers, and any print with travel moves between islands.
| Likely Causes (highest first) | Diagnostic Step | Fix |
|---|---|---|
| Wet filament | Listen for popping/steam at nozzle. Print temp tower | Dry filament at 50-65°C for 6 hours |
| Temperature too high | Compare tower segments — stringing decreases at lower temps | Lower nozzle temp by 5-10°C |
| Retraction too low | Run retraction tower | Increase retraction distance or speed |
| Travel speed too low | Check travel speed in slicer | Increase to 150-200mm/s |
| Nozzle too close to print | Inspect first layer for over-squish | Re-level bed, adjust Z offset |
The most common cause is wet filament. PETG and TPU are especially hygroscopic. If you haven't dried your filament in a while, start there before touching your calibrated retraction settings.
Warping and Delamination
Corners lifting from the bed, or layers separating during the print. Worse with large flat surfaces and high-temperature materials.
| Likely Causes (highest first) | Diagnostic Step | Fix |
|---|---|---|
| Bed temperature too low | Print a 5-tower temp test with 5°C increments | Increase bed temp 5-10°C |
| No enclosure | Drafts cause uneven cooling. Check ambient temp | Move printer to enclosed space or build enclosure |
| Part cooling too high | ASA/PETG: reduce fan to 20-40% | Lower cooling fan in filament profile |
| Bed adhesion weak | Clean bed with isopropyl alcohol. Check Z offset | Add brim or raft. Re-level bed |
| Filament requires enclosure | ASA, PC, Nylon need stable ambient temp | Enclosure required for these materials |
For PETG and ASA, a brim is almost always worth the extra cleanup time. One missing corner on a 6-hour print is far more painful than 2 minutes of brim removal.
Tip: First layer is everything
The vast majority of warping problems trace back to the first layer. If your first layer is slightly too high (poor adhesion) or slightly too low (over-squish causing stress), warping is more likely. Spend time tuning your Z offset on every printer, not just once. Bed mesh helps, but a good Z offset matters more.
Layer Shift
The print shifts horizontally at a specific layer height. Everything above that layer is offset. In severe cases, the print detaches from the bed.
| Likely Causes (highest first) | Diagnostic Step | Fix |
|---|---|---|
| Belt tension too loose | Push belts — they should feel like a bass guitar string, not a rubber band | Tension belts evenly on both sides |
| Motor current too low | Motors get hot during long prints. Stepper drivers may throttle current | Check run_current in printer.cfg for X/Y motors |
| Acceleration too high | High acceleration causes skipped steps | Lower acceleration by 500-1000mm/s² |
| Z-hop disabled | Nozzle collides with print during travel | Enable Z-hop (0.2mm is usually sufficient) |
| Mechanical binding | Check if axis moves freely when motors are off | Clean and lubricate linear rails/rods |
Layer shift is almost always mechanical — it's rarely a slicer setting issue. If it starts happening suddenly, check belt tension first. I keep a small Allen key for belt tension adjustments near the printer at all times.
Under-Extrusion
Gaps between perimeter lines, missing top layers, weak parts, or sections where the print stops extruding entirely.
| Likely Causes (highest first) | Diagnostic Step | Fix |
|---|---|---|
| Clogged nozzle | Extrude filament in air — check if it curls or comes out inconsistently | Cold pull to clear, or replace nozzle |
| Partial clog (heat creep) | Filament gets soft above the heat break. Check heat sink fan operation | Clean heat sink fan. Lower retraction distance |
| Extruder calibration off | Measure 100mm of filament feed vs command | Calibrate extruder steps (E-steps) |
| Max volumetric speed too low | Check if the hotend can melt filament at requested speed | Run max volumetric speed test in OrcaSlicer |
| Worn extruder gear | Gear teeth may be filled with filament dust | Clean gear with a brass brush or replace |
Partial clogs are insidious because the printer extrudes, just inconsistently. If you see random under-extrusion that doesn't follow a pattern, cold pull your nozzle before diving into complex calibrations.
Over-Extrusion
Rough top surfaces, dimensional inaccuracy, elephant's foot, or excess filament oozing past intended boundaries.
| Likely Causes (highest first) | Diagnostic Step | Fix |
|---|---|---|
| Flow rate too high | Measure wall thickness of calibration cube | Run flow rate calibration (hollow cube) |
| Filament diameter variance | Check filament with calipers in multiple spots | Measure average diameter, update filament profile |
| Wrong nozzle size in slicer | Verify nozzle size in Printer Settings | Match to actual printer nozzle |
| Z offset too low | First layer looks squished | Re-level and adjust Z offset |
Over-extrusion is less common than under-extrusion, especially with modern slicer profiles. If you haven't changed any settings and suddenly get over-extrusion, check if you changed the filament brand or batch — diameter variance across brands is real.
Z-Banding and Z-Wobble
Horizontal lines or bands at regular intervals along the Z axis. The print surface feels textured in the Z direction rather than smooth.
| Likely Causes (highest first) | Diagnostic Step | Fix |
|---|---|---|
| Z-axis binding | Disable steppers, move Z by hand — check for uneven resistance | Clean and lubricate Z lead screws |
| Lead screw debris | Inspect lead screw for filament scraps or dust | Clean with isopropyl alcohol and relube |
| Bent lead screw | Roll lead screw on a flat surface to check for wobble | Replace lead screw |
| Gantry not level | Measure both sides of gantry to frame | Level gantry by adjusting Z stepper synchronization |
Z-banding is often misdiagnosed as a slicer or temperature issue. The tell is the regularity: if the banding occurs at the same Z interval every time, it's mechanical. I keep a known-good calibration cube file nearby specifically for diagnosing Z-band issues — if the cube shows banding, I know it's hardware before touching a single profile setting.
Diagnostic Tools
OrcaSlicer Calibration Menu
OrcaSlicer has the best built-in calibration tools of any open-source slicer. Before troubleshooting any print quality issue, run the relevant test:
- Stringing → Retraction tower
- Surface quality → Temperature tower
- Under-extrusion → Flow rate calibration
- Corner bulging → Pressure Advance calibration
- Ghosting/ringing → Input shaping calibration (Klipper-specific)
These are in Calibration → [test type]. Each generates the G-code automatically with the test pattern at varying parameter values.
Klipper Log Files
Klipper's logs are invaluable for diagnosing hardware and firmware issues:
| Log File | What It Contains |
|---|---|
/tmp/klippy.log | Full system log — errors, warnings, step statistics |
/tmp/klippy.log (grep for M112) | Emergency stop reasons |
STATUS command | Current printer state, MCU connection status |
When a print fails unexpectedly, I SSH into the printer and run:
tail -n 200 /tmp/klippy.log
If the last line shows a step compression error or serial disconnect, the issue is electrical or interference. If it shows a thermal error, it's heating or sensor related. The log rarely lies.
Filament Change (M600)
The M600 command triggers a filament change mid-print. Useful for:
- Switching to a different color for a multi-color effect
- Purging a clog mid-print without restarting
- Checking if under-extrusion clears after a new filament insertion
M600 ; Execute filament change
Klipper handles this through its [pause_resume] module. Make sure it's enabled in your printer.cfg.
PID Tuning
If you see temperature oscillation (the hotend temp swinging 2-3°C from the setpoint), the PID (Proportional-Integral-Derivative) controller needs tuning. Temperature stability is critical for consistent extrusion.
For the hotend:
PID_CALIBRATE HEATER=extruder TARGET=220
For the bed:
PID_CALIBRATE HEATER=heater_bed TARGET=60
After completion, SAVE_CONFIG writes the new PID values to your printer.cfg. This takes about 15 minutes per calibration and is worth doing after any hardware change (new nozzle, new heater cartridge, different thermistor).
Prevention
A little regular maintenance prevents most common issues:
| Component | Every 100 Print Hours | Every 200 Print Hours | Every 500 Print Hours |
|---|---|---|---|
| Belts | Check tension | Retension if loose | Replace |
| Z lead screws | Visual check | Clean and lubricate | Inspect for wear |
| Nozzle | Visual check (wipe clean) | Cold pull to clear debris | Replace |
| Filament path | Check for dust/debris | Clean extruder gear | Replace PTFE tube |
| Fans | Listen for bearing noise | Clean fan blades | Replace if noisy |
Filament Storage
Moisture is the #1 cause of printing problems with hygroscopic materials. My storage setup:
- Dry box: An airtight container with silica gel desiccant and a hygrometer
- Active drying: A food dehydrator or filament dryer running at 50-65°C for wet spools
- Moisture monitoring: Check the hygrometer before each print — if it reads above 20% humidity inside the box, regenerate the silica gel
PETG and TPU show stringing and surface defects within hours of absorbing ambient moisture. PLA tolerates more but still benefits from dry storage.
Firmware Update Hygiene
Before updating Klipper or Rinkhals:
- Back up your current
printer.cfg - Check the changelog for breaking changes
- Update during a maintenance window, not before an important print
I keep the last three working config versions in a git repository. If an update breaks something, I can revert in seconds.
Cross-Reference
This guide assumes you have calibrated profiles as your diagnostic baseline. If you haven't calibrated yet, start with the OrcaSlicer Calibration Guide for the slicer-side workflow, then check the Rinkhals & The Klipper Ecosystem article for firmware configuration that affects print quality (Pressure Advance, Input Shaping, PID tuning).