
3D Printer Setup and Tuning
Overview
Wow there's a lot of content out there on how to tune a 3D printer! Most of it is really good stuff. After a new build, I'm usually forgetting steps, gcode commands or fumbling around looking for links to documentation I like. So, how about a checklist?
Below are the standard steps I usually follow. Most of the steps have come from other sites. A few invaluable sources are:
https://docs.vorondesign.com/build/startup/
https://www.klipper3d.org/Config_checks.html
https://ellis3dp.com/Print-Tuning-Guide/
Note: The following is only a checklist. It does not go into detail on the whys, describe steps for troubleshooting or diagnosing problems. The links above already have all of that type of information.
Another Note: Proceed at your own peril! Building a 3D printer is no small undertaking. Please, before following any specific step, ensure you have taken the required precautions to ensure you do not harm yourself or your printer.
New build
These steps are performed once after a new build. They could also apply to a new purchase, or, reused during maintenance.
OS Installation
- Create Pi image
- Imager: https://www.raspberrypi.com/software/
- Use advanced settings to setup Wi-Fi, user, hostname, SSH
- Boot Pi
- SSH using Windows terminal
- Update the Pi
sudo apt update sudo apt full-upgrade sudo apt clean sudo apt reboot
Klipper & The MCU
- Using Klipper Installation and Update Helper (KIAUH)
- Install Git
sudo apt-get install git -y
- Install KIAUH
cd ~ && git clone https://github.com/th33xitus/kiauh.git
- Run KIAUH to install Klipper, Moonraker, Fluidd, etc.
./kiauh/kiauh.sh
- Flash the MCU
- Get the MCU device id
ls /dev/serial/by-id
- This will return some like:
usb-Klipper_stm32f446xx_130025000350534E4E313020-if00
Configuration
- Open Fluidd in a browser
- Add/update printer.cfg
- Main stuff
[mcu] serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_130025000350534E4E313020-if00 restart_method: command
- Update remaining config settings
Configuration Checks
- Ensure the temperatures are showing correctly in the graph in the UI (Screenshot)
- Ensure emergency shutdown works
M112 # Followed by FIRMWARE_RESTART
- Validate temperatures go up and heaters shut off
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=50 SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=50 TURN_OFF_HEATERS
- Disable steppers and ensure all axes move freely
M84
- Check each end stop shows open or triggered correctly by manually pressing the end stop and querying
QUERY_ENDSTOPS
- Temporarily turn off the extruder minimum temperature allowing the extruder stepper to function
# printer.cfg [extruder] ... min_extrude_temp: 170 min_extrude_temp: 0
- Ensure steppers move in the correct direction. The first move will be one millimeter in a positive direction. Repeat for y, z, z1, z2, z3 and extruder.
STEPPER_BUZZ STEPPER=stepper_x
- Reset the extruder minimum temperature
# printer.cfg [extruder] ... min_extrude_temp: 0 min_extrude_temp: 170
- Calibrate PID for the extruder and bed
PID_CALIBRATE HEATER=extruder TARGET=240 PID_CALIBRATE HEATER=heater_bed TARGET=110 SAVE_CONFIG
- Home X and Y, not Z or All. Keep one finger on the reset button... in case anything bad happens
G28 X Y
- Z End Stop Location
- Using the UI, move along X until the nozzle is over the Z pin
- Adjust the pin forward or back if needed and tighten
- Update the Z pin location
# printer.cfg [safe_z_home] home_xy_position:-10,-10 home_xy_position:[new X],[new Y]
- Bed Location
- Adjust the bed to be 2-3mm from the Z pin
- Center bed
- Tighten one, two screws firm, last one loose (done while hot)
- Run Full Homing
G28
Probe Configuration
- Move toolhead to the center of the bed about 10mm up
- Ensure the probe returns "open"
QUERY_PROBE
- With something metal under the probe, the query should return "triggered"
- Slowly reduce Z and continue querying. Make sure the probe shows "triggered" before touching the bed.
- Move the toolhead to center of the bed about 10mm up
- Check probe accuracy
PROBE_ACCURACY
- Distance should not be trending either up or down
- Stand deviation should be less than 0.003mm
- Level the Gantry
QUAD_GANTRY_LEVEL
- During the first run, the gantry may be so far out of alignment, safe distance errors occur. If this happens:
# Disable the steppers M84 # Adjust gantry by hand # Home the printer G28 # Retry QUAD_GANTRY_LEVEL
- Preheat the bed for fifteen minutes, run QGL again
Z Calibration
- Place a piece of paper under the nozzle. Raise and lower the toolhead with the commands below. If "out of bunds" occurs, accept, save config and rerun.
# Start the calibration Z_ENDSTOP_CALIBRATE # Lower the toolhead TESTZ Z=-0.1 # Raise the toolhead TESTZ Z=0.1 # Save and restart printer ACCEPT SAVE_CONFIG
Miscellaneous
- Run Bed Mesh
- Input Shaper
- Configuring Multiple Cameras
New Filament
These steps are usually performed on a new filament. They should apply to any new Brand/Material. If you really want to get critical, perform them on any new Brand/Material/Color/Spool. Most of the links below are to Andrew Ellis' Print Tuning Guide.
- Temp Tower
- First Layer Squish
- Pressure Advance
- Extrusion Multiplier
- Thread Test