Initial Startup Checks

※Verify Temperature

Start by verifying that temperatures are being properly reported. Navigate to the Mainsail temperature graph.

Verify that the nozzle and bed temperatures are displaying correctly and are not increasing. If the temperatures continue to rise, disconnect the printer from power. If the temperatures are inaccurate, the issue may be due to wiring or hardware faults.

※Verify heaters

Navigate to the temperature graph and type in 50 followed by enter in the “Tool” temperature target field. The extruder temperature in the graph should start to increase (within about 10 seconds or so). Then go to the “Tool” temperature drop-down box and select “Off”. After several minutes the temperature should start to return to its initial room temperature value. If the temperature does not increase, Please check the wiring.

Perform the above steps again with the bed.

※Check Motor Operation

To verify that each stepper motor is operating correctly, send the following command in the terminal:

STEPPER_BUZZ STEPPER=stepper_x

The STEPPER_BUZZ command will cause the given stepper to move one millimeter in a positive direction and then it will return to its starting position. It will perform this oscillation ten times. we will verify direction again later, ideally all motors will be running correctly at the end of this test. See the list below for the expected motion for each command.

Note, if you have trouble seeing what direction a motor is rotating, try adding a small sharpy mark on the pulley. clockwise and counterclockwise are from the top down view looking at the X and Y motors.

Run this command for each of the motors:

stepper_x

The motor will rotate clockwise first, then back counterclockwise

stepper_y

The motor will rotate clockwise first, then back counterclockwise

stepper_z

The front left corner of the gantry moves up, then back down

stepper_z1

The front left corner of the gantry moves up, then back down

stepper_z2

The front left corner of the gantry moves up, then back down

stepper_z3

The front left corner of the gantry moves up, then back down

extruder

Movement: Direction will be tested later.

If the specified motor is not turning, please check the wiring and ensure that it is connected to the correct port.

※XY Endstop Check

Make sure that none of the X, Y endstops are being pressed. Then send a QUERY_ENDSTOPS command. The terminal window should respond with the following:

Send: QUERY_ENDSTOPS
Recv: x:open y:open z:triggered

If any of them say “triggered” instead of “open”, double-check to make sure none of them are pressed. Next, manually press the X endstop switch, send the QUERY_ENDSTOPS command again, and make sure that the X endstop says “triggered and the Y s stay open. Repeat with the Y endstops.

If it is found that one of the endstops has inverted logic (i.e. it reads as “open” when it is pressed and “triggered” when not pressed), Check if the Endstop is properly installed, the cables are secure and not damaged, and if they are connected to the correct port.

※XY Homing Check

At this point everything is ready to home X and Y.

Important: You need to be able to quickly stop the printer in case something goes wrong (e.g. the tool head goes the wrong direction). There are a few ways of doing this:

  1. There is a red emergency stop icon in the lower left corner of the display. Click on it to see what happens—Klipper should shut down, but the Raspberry Pi and Mainsail should remain running, although disconnected from Klipper. Press "Connect" in the upper left corner of Mainsail, then send a FIRMWARE_RESTART command in the Mainsail terminal window to reboot the printer and get it running again.

  2. Have a computer right next to the printer with the RESTART or M112 command already in the terminal command line in Mainsail. When you start homing the printer, if it goes in the wrong direction, quickly send the restart command and it will stop the printer.

  3. As a “nuclear” option, power off the printer with the power switch if something goes wrong. This is not ideal because it may corrupt the files on the SD card and to recover would require reinstalling everything from scratch.

Once there is a tested process for stopping the printer in case of something going wrong, you can test X and Y movement. note: you will need to test X AND Y before you can correctly determine what adjustments are needed. First, send a G28 X command. This will only home X: The tool head should move up slightly and then move to the right until it hits the X endstop. If it moves any other direction, abort, take note, but still move on to testing Y. Next, test Y: run G28 Y. The toolhead should move to the back of the printer until it hits the Y endstop. In a CoreXY configuration, both motors have to move in order to get the toolhead to go in only an X or Y direction (think Etch A Sketch). If the gantry moves downward first before moving to the right, you must reverse your z stepper directions in the config.

If either axis does not move the toolhead in the expected or correct direction, refer to the table below to figure out how to correct it. If you need to invert the direction of one of the motors, invert the direction pin definition by adding a ! to the pin name. For example, dir_pin: PB2 would become dir_pin: !PB2. (if the entry already has a !, remove it instead). If the motors are going in directions that match the lower row of the chart, physically swap your X and Y (A and B) motor connectors on the MCU.

  • [stepper x] = Motor B

  • [stepper y] = Motor A

Not only is it not moving in the expected direction, but it is also making a strong noise and shaking?

Repeat the Check Motor Operation procedure to ensure that all motors are turning in the direction shown in the documentation.

※Check Fan

Identify all the fans inside the machine and check if the configured pins match the actual ones.

NameSpecificationsPINStartup method

Hotend_fan

4010 FAN

EbbCan:gpio14

Hotend>50℃

Part cooling fan

5015 Blower fan

EbbCan:gpio13

Manually or in slicing software

Controller_fan1

6020 FAN

PE5

Heatbed>50℃

Controller_fan2

6020 FAN

PD12

Heatbed>50℃

Nevermore V5

5015 Blower fan ×2

PA8

Horend>200℃

Check Hotend_fan

Heat the hotend to above 50°C and check if the Hotend_fan is rotating correctly. When you stop heating and the temperature drops below 50°C, the fan will automatically turn off.

Check Controller_fan

Heat the heated bed to above 50°C and check if the Controller_fan starts rotating. When you stop heating and the temperature drops below 50°C, the fan will automatically turn off.

Check Part cooling fan

The Part cooling Blower can be directly controlled in Miscellaneous for on/off and speed settings.

※PID Tune Heated Bed

Move nozzle to the center of the bed and approximately 5-10mm above the bed surface, then run:

PID_CALIBRATE HEATER=heater_bed TARGET=100

It will perform a PID calibration routine that will last about 10 minutes. Once it is finished, type SAVE_CONFIG which will save the parameters into your configuration file.

PID Tune Hotend

Set the part cooling fans to 25% (M106 S64) and then run:

PID_CALIBRATE HEATER=extruder TARGET=245

It will perform a PID calibration routine that will last about 5 minutes. Once it is finished, type SAVE_CONFIG which will save the parameters into your configuration file.

※Cartographer Calibration

Calibration

Home the machine in X and Y:

G28 X Y

Position the nozzle in the center of the bed.In the case of the 350 model, the bed center position is 175,175

G0 X150 Y150

At this point, you might note that your Endstop Z is TRIGGERED, this is normal, and will be resolved once you run the next command.

Start the calibration process:

CARTOGRAPHER_CALIBRATE

You can either use the web interface to adjust the nozzle height from the bed, or TESTZ Z=-0.01 to lower it. Use a piece of paper or a feeler gauge to measure the offset. Once finished remove the paper/gauge and accept the position.

ACCEPT

Save the results to your config file.

SAVE CONFIG

Initial Tests

Home your printer.

G28

You can test the accuracy.

PROBE_ACCURACY

You can also measure the backlash of your Z axis

CARTOGRAPHER_ESTIMATE_BACKLASH

To make use of the backlash estimation that is given. You will get results spit out starting with

Median distance moving up

In this line will be a measurement called "delta" Take note of the value. Locate the configuration section marked:

backlash_comp: 2.01

Update this section with your new estimated backlash compensation.

※Quad Gantry Level (QGL)

Since the V2 uses 4 independent Z motors, the entire gantry system must be specially levelled. The macro to call this process is QUAD_GANTRY_LEVEL (sometimes referred to in conversation as ‘QGL’). It will probe each of 4 points 3 times, average the readings, then make adjustments until the gantry is level.

If the process fails due to an “out of bounds” error, disable your stepper motors and slowly move your gantry or bed by hand until it is approximately flat. Re-home your printer (G28) and then rerun the sequence. You may have to run it more than once. Make sure that the adjustment value for each stepper motor converges to 0. If it diverges, check to make sure you have your stepper motors wired to the correct stepper driver (check documentation).

QGL With Heated Bed and Chamber

Run a G28 command to home the printer since a SAVE_CONFIG restarts the printer.

This will be the first time that a Quad Gantry Level has been run at a high chamber temperature. To ensure that the probe has stabilized with the heated bed at 100C and the hot end at 240C, run PROBE_ACCURACY with the nozzle at the center of the bed. If the values are trending (increasing or decreasing) throughout the 10 probes or the standard deviation is greater than 0.003mm, wait another 5 minutes and try again.

Once the readings are stable, run QUAD_GANTRY_LEVEL. Make a note of how long the probe readings took to stabilize for when starting prints - typically a cold printer takes 10-20 minutes to stabilize at temperature.

Common QGL Problems

  • If the QGL is having issues with too high of a standard deviation and the printer is heated and stable, check Z belt tension. Make sure they are reasonably tight and even.

  • If QGL fails with being unable to reach the probe in time, do a FIRMWARE_RESTART, manually level the bed as closely as possible, then home (G28) and re-attempt.

※BED_MESH

You can now run a Bed Mesh Calibration.

BED_MESH_CALIBRATE

Setting Z Offset

Before modifying your Z Offset, make sure that you have set your Z position to 0, to do this you can run the following command.

G1 Z0 F1500

Once you have done all of the above, it is worth re-calibrating the Z-Offset. This can be done in Mainsail or Fluidd using the graphical interface. OR you can use G-Code in the window to console to do

SET_GCODE_OFFSET Z_ADJUST=+0.01 MOVE=1

SET_GCODE_OFFSET Z_ADJUST=-0.01 MOVE=1

Once the offset has been perfectly calibrated apply that offset using the following command

Z_OFFSET_APPLY_PROBE

And now save your config.

※Extruder Calibration (e-steps)

Before the first print, make sure that the extruder extrudes the correct amount of material.

  • First, make sure the extruder is running the correct direction: heat the hotend, and extrude 10mm or so of filament:

    • If the extruder pulls the filament in, all is well.

    • If the filament gets pushed back out the top, , reverse the extruder in your printer.cfg by finding the [extruder] dir_pin, and adding a ! to the pin name. (if one is already present, remove it instead)

  • With the hotend at temperature, make a mark on the filament between the roll of filament and your extruder, between 120mm and 150mm away from the entrance to the extruder. Measure the distance from the entrance of the extruder to that mark.

  • In Mainsail, set the extrusion speed to 1mm/s, and extrude 50mm 2 times, (for a total of 100mm since Klipper doesn’t allow you to extrude more than 50mm at a time).

  • Measure from the entrance of your extruder to the mark you made previously.

    • In a perfect world, assuming the mark was at 120mm, it would measure 20mm (120mm - 20mm = 100mm), but usually won’t be.

  • Update rotation_distance in the extruder section of the configuration file using this formula:

    • New Config Value = Old Config Value * (Actual Extruded Amount/Target Extruded Amount)

Note: a higher configuration value means that less filament is being extruded.

Paste the new value into the configuration file, restart Klipper, and try again. Once the extrusion amount is within 0.5% of the target value (ie, 99.5-100.5mm for a target 100mm of extruded filament), the extruder is calibrated!

Typical rotation_distance values should be around 22.6789511 for Stealthburner

Last updated