How to Calibrate Your 3D Printer - dummies

By Richard Horne, Kalani Kirk Hausman

When your 3D printer’s firmware is set up and the RepRap printer’s mechanical movement is mostly calibrated, final preparation for 3D printing encompasses these procedures:

  • Making final calibrations of the extruder and hot-end
  • Entering these details into the firmware
  • Compiling and downloading the firmware again

Correct calibration of the extruder and hot-end makes all the difference between an awful-looking print and a stunningly good one.

The procedures here use Pronterface (see the following figure). Pronterface is used for this initial setup because it’s easy to use. Pronterface was designed and programmed by Kliment Yanev as an open-source control interface for RepRap 3D printers. Obtain the full package (called Printrun).

3d-printing-pronterface
Pronterface running and connected to a RepRap printer with G-code loaded and ready to print.

Unlike 2D paper printers that appear in all applications as printers, most 3D printers require a host program to prepare, control, and send the specific G-code file. Thus, at this point, you can’t just turn on the machine and press Print. You need to do a little more with a 3D printer. Here are the steps you follow in Pronterface:

  1. Connect the 3D printer to your computer via USB cable and turn on the printer.
  2. Select the communication port from the list.
  3. Make sure that the correct speed is selected.
    For Marlin firmware, this speed is normally 250,000.
  4. Click Connect.
    If the communication port and speed are set, you see a sign-on message in the right-side window in Pronterface that indicates connection and communication is active. This message signals that you have control of the printer and that it’s ready to accept commands.

Leveling your 3D printer’s print bed

The first order of business is making sure that your hot-end nozzle is a set distance from the print surface and that your printing surface is flat and level.

The procedure varies from one 3D printer to the next. Usually, it involves tightening or slackening three or four points on your build bed, which usually is made of PCB material and fixed or held by spring bolts that allow you to level the bed.

Before you level the bed, make sure that the other major assemblies of your 3D printer — especially the moving X carriage and the vertical Z movement — are also level and at equal distance on each side.

The main sensor that positions the hot-end correctly away from the build bed is the Z-axis end-stop. Usually, this sensor is a mechanical switch that can be moved up and down or a magnetic sensor that can be tuned to a set distance by turning a small rotary knob known as a potentiometer. Commonly, a small LED on the end-stop-sensor lights when the end-stop position is reached. If your axis doesn’t stop, or if the LED doesn’t light when the axis is sent to the home position, you may have an incorrect orientation set in your firmware. In such a case, change the X_ENDSTOP_INVERTING = true setting to false in the configuration.h file of the Marlin firmware.

If you use a heated bed, make sure that it’s powered on and at full temperature for a few minutes (to allow everything to expand to where it will be when printing) before you set the mechanical distance of the hot-end nozzle from the bed.

Check the operation of the end-stop switches by commanding each axis in turn to move to the home position. (The following figure shows the pertinent controls in Pronterface.) Then set the Z-axis distance so that the hot-end nozzle is spaced appropriately far from the bed. The best way to do so is to move the print head to the center of the bed. For a standard RepRap printer, you set this space by moving X by 100mm and Y by 100mm.

3d-printing-leveling
You can use Pronterface controls to position the print head for leveling the bed, setting the correct distance for the hot-end nozzle, and preheating before printing.

Often, the 3D printer assists you with this process via the LCD screen or user interface. You may have to rotate a screw wheel to adjust the bed position. Then the sensor checks the leveling and informs you if any further adjustment is required. When everything is level, you can continue with printing, knowing that the first layer should go down smoothly and evenly.

The distance you need to achieve depends somewhat on the nozzle size and on how well you leveled the build bed. Partly for this reason, a sheet of glass (which tends to be reasonably flat) is a good choice for the build surface. As a starting point, make sure that you can slide a single sheet of office paper under the nozzle when it’s at the Z home position. Check this gap for uniformity in all four corners and in the center. Use the Z-movement buttons in Pronterface to lift and lower the nozzle. Then you can move the position of your Z end-stop on the Z axis to activate at the correct distance from the print bed. (Use a sheet of office paper as a spacer.) When you home the Z axis in Pronterface by clicking the Z Home button (refer to Figure 15-18), the nozzle should raise then lower until the Z end-stop is triggered. If the spacing is still incorrect, move the Z end-stop slightly and click the Z Home button again.

Tuning your hot-end temperature control

The next stage of setup is calibrating the temperature-control requirements of your hot-end. For this procedure, you enter the command m303 in the bottom-right corner of the Pronterface screen and then click Send (see the following image). This command has the printer perform several heating and cooling cycles; at the end of these cycles, it gives you the settings you need to enter in the firmware for DEFAULT_Kp, DEFAULT_Ki, and DEFAULT_Kd in the configuration.h file.

3d-printing-autotune
The G-code command m303 runs an autotune routine that calculates the ideal control loop settings for your firmware.

Write down the values displayed for DEFAULT_Kp, DEFAULT_Ki, and DEFAULT_Kd. You enter these values in the firmware when you complete the final stage of calibration.

Next, you need to calibrate the extruder distance.