| 
									
										
										
										
											2017-12-26 20:16:53 -05:00
										 |  |  | This document provides a list of steps to help confirm the pin | 
					
						
							|  |  |  | settings in the Klipper printer.cfg file.  It is a good idea to run | 
					
						
							|  |  |  | through these steps after following the steps in the | 
					
						
							|  |  |  | [installation document](Installation.md). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | During this guide, it may be necessary to make changes to the Klipper | 
					
						
							|  |  |  | config file. Be sure to issue a RESTART command after every change to | 
					
						
							|  |  |  | the config file to ensure that the change takes effect (type "restart" | 
					
						
							|  |  |  | in the Octoprint terminal tab and then click "Send"). It's also a good | 
					
						
							|  |  |  | idea to issue a STATUS command after every RESTART to verify that the | 
					
						
							|  |  |  | config file is successfully loaded. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Verify temperature
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-01-05 13:25:07 -05:00
										 |  |  | Start by verifying that temperatures are being properly reported. | 
					
						
							|  |  |  | Navigate to the Octoprint temperature tab. | 
					
						
							| 
									
										
										
										
											2017-12-26 20:16:53 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |  | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Verify that the temperature of the nozzle and bed (if applicable) are | 
					
						
							|  |  |  | present and not increasing. If it is increasing, remove power from the | 
					
						
							|  |  |  | printer. If the temperatures are not accurate, review the | 
					
						
							|  |  |  | "sensor_type" and "sensor_pin" settings for the nozzle and/or bed. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Verify M112
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Navigate to the Octoprint terminal tab and issue an M112 command in | 
					
						
							|  |  |  | the terminal box. This command requests Klipper to go into a | 
					
						
							|  |  |  | "shutdown" state. It will cause Octoprint to disconnect from Klipper - | 
					
						
							|  |  |  | navigate to the Connection area and click on "Connect" to cause | 
					
						
							|  |  |  | Octoprint to reconnect. Then navigate to the Octoprint temperature tab | 
					
						
							|  |  |  | and verify that temperatures continue to update and the temperatures | 
					
						
							|  |  |  | are not increasing. If temperatures are increasing, remove power from | 
					
						
							|  |  |  | the printer. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The M112 command causes Klipper to go into a "shutdown" state. To | 
					
						
							|  |  |  | clear this state, issue a FIRMWARE_RESTART command in the Octoprint | 
					
						
							|  |  |  | terminal tab. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Verify heaters
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-06 22:43:52 -05:00
										 |  |  | Navigate to the Octoprint temperature tab and type in 50 followed by | 
					
						
							| 
									
										
										
										
											2017-12-26 20:16:53 -05:00
										 |  |  | enter in the "Tool" temperature box. The extruder temperature in the | 
					
						
							|  |  |  | graph should start to increase (within about 30 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 then | 
					
						
							|  |  |  | verify the "heater_pin" setting in the config. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If the printer has a heated bed then perform the above test again with | 
					
						
							|  |  |  | the bed. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Verify stepper motor enable pin
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Verify that all of the printer axes can manually move freely (the | 
					
						
							|  |  |  | stepper motors are disabled). If not, issue an M84 command to disable | 
					
						
							|  |  |  | the motors. If any of the axes still can not move freely, then verify | 
					
						
							|  |  |  | the stepper "enable_pin" configuration for the given axis. On most | 
					
						
							|  |  |  | commodity stepper motor drivers, the motor enable pin is "active low" | 
					
						
							|  |  |  | and therefore the enable pin should have a "!" before the pin (for | 
					
						
							|  |  |  | example, "enable_pin: !ar38"). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Verify endstops
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Manually move all the printer axes so that none of them are in contact | 
					
						
							|  |  |  | with an endstop. Send a QUERY_ENDSTOPS command via the Octoprint | 
					
						
							|  |  |  | terminal tab. It should respond with the current state of all of the | 
					
						
							|  |  |  | configured endstops and they should all report a state of "open". For | 
					
						
							|  |  |  | each of the endstops, rerun the QUERY_ENDSTOPS command while manually | 
					
						
							|  |  |  | triggering the endstop. The QUERY_ENDSTOPS command should report the | 
					
						
							|  |  |  | endstop as "TRIGGERED". | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If the endstop appears inverted (it reports "open" when triggered and | 
					
						
							|  |  |  | vice-versa) then add a "!" to the pin definition (for example, | 
					
						
							|  |  |  | "endstop_pin: ^!ar3"), or remove the "!" if there is already one | 
					
						
							|  |  |  | present. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If the endstop does not change at all then it generally indicates that | 
					
						
							|  |  |  | the endstop is connected to a different pin. However, it may also | 
					
						
							|  |  |  | require a change to the pullup setting of the pin (the '^' at the | 
					
						
							|  |  |  | start of the endstop_pin name - most printers will use a pullup | 
					
						
							|  |  |  | resistor and the '^' should be present). | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-08-09 13:41:17 -04:00
										 |  |  | ### Verify stepper motors
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Use the STEPPER_BUZZ command to verify the connectivity of each | 
					
						
							|  |  |  | stepper motor. Start by manually positioning the given axis to a | 
					
						
							| 
									
										
										
										
											2020-01-05 13:25:07 -05:00
										 |  |  | midway point and then run `STEPPER_BUZZ STEPPER=stepper_x`. The | 
					
						
							| 
									
										
										
										
											2018-08-09 13:41:17 -04:00
										 |  |  | 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. (If the endstop is defined at position_endstop=0 | 
					
						
							|  |  |  | then at the start of each movement the stepper will move away from the | 
					
						
							|  |  |  | endstop.) It will perform this oscillation ten times. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | If the stepper does not move at all, then verify the "enable_pin" and | 
					
						
							|  |  |  | "step_pin" settings for the stepper. If the stepper motor moves but | 
					
						
							|  |  |  | does not return to its original position then verify the "dir_pin" | 
					
						
							|  |  |  | setting. If the stepper motor oscillates in an incorrect direction, | 
					
						
							|  |  |  | then it generally indicates that the "dir_pin" for the axis needs to | 
					
						
							| 
									
										
										
										
											2017-12-26 20:16:53 -05:00
										 |  |  | be inverted. This is done by adding a '!' to the "dir_pin" in the | 
					
						
							| 
									
										
										
										
											2018-08-09 13:41:17 -04:00
										 |  |  | printer config file (or removing it if one is already there). If the | 
					
						
							|  |  |  | motor moves significantly more or significantly less than one | 
					
						
							| 
									
										
										
										
											2020-01-05 20:19:43 -05:00
										 |  |  | millimeter then verify the "rotation_distance" setting. | 
					
						
							| 
									
										
										
										
											2018-08-09 13:41:17 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | Run the above test for each stepper motor defined in the config | 
					
						
							|  |  |  | file. (Set the STEPPER parameter of the STEPPER_BUZZ command to the | 
					
						
							|  |  |  | name of the config section that is to be tested.) If there is no | 
					
						
							|  |  |  | filament in the extruder then one can use STEPPER_BUZZ to verify the | 
					
						
							|  |  |  | extruder motor connectivity (use STEPPER=extruder). Otherwise, it's | 
					
						
							|  |  |  | best to test the extruder motor separately (see the next section). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | After verifying all endstops and verifying all stepper motors the | 
					
						
							|  |  |  | homing mechanism should be tested. Issue a G28 command to home all | 
					
						
							|  |  |  | axes.  Remove power from the printer if it does not home properly. | 
					
						
							|  |  |  | Rerun the endstop and stepper motor verification steps if necessary. | 
					
						
							| 
									
										
										
										
											2017-12-26 20:16:53 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | ### Verify extruder motor
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To test the extruder motor it will be necessary to heat the extruder | 
					
						
							|  |  |  | to a printing temperature. Navigate to the Octoprint temperature tab | 
					
						
							|  |  |  | and select a target temperature from the temperature drop-down box (or | 
					
						
							|  |  |  | manually enter an appropriate temperature). Wait for the printer to | 
					
						
							|  |  |  | reach the desired temperature. Then navigate to the Octoprint control | 
					
						
							|  |  |  | tab and click the "Extrude" button. Verify that the extruder motor | 
					
						
							|  |  |  | turns in the correct direction. If it does not, see the | 
					
						
							|  |  |  | troubleshooting tips in the previous section to confirm the | 
					
						
							|  |  |  | "enable_pin", "step_pin", and "dir_pin" settings for the extruder. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-18 12:43:41 -04:00
										 |  |  | ### Calibrate PID settings
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Klipper supports | 
					
						
							|  |  |  | [PID control](https://en.wikipedia.org/wiki/PID_controller) for the | 
					
						
							|  |  |  | extruder and bed heaters. In order to use this control mechanism it is | 
					
						
							|  |  |  | necessary to calibrate the PID settings on each printer. (PID settings | 
					
						
							|  |  |  | found in other firmwares or in the example configuration files often | 
					
						
							|  |  |  | work poorly.) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | To calibrate the extruder, navigate to the OctoPrint terminal tab and | 
					
						
							|  |  |  | run the PID_CALIBRATE command. For example: `PID_CALIBRATE | 
					
						
							|  |  |  | HEATER=extruder TARGET=170` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-17 19:28:07 -04:00
										 |  |  | At the completion of the tuning test run `SAVE_CONFIG` to update the | 
					
						
							|  |  |  | printer.cfg file the new PID settings. | 
					
						
							| 
									
										
										
										
											2018-03-18 12:43:41 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | If the printer has a heated bed and it supports being driven by PWM | 
					
						
							|  |  |  | (Pulse Width Modulation) then it is recommended to use PID control for | 
					
						
							|  |  |  | the bed. (When the bed heater is controlled using the PID algorithm it | 
					
						
							|  |  |  | may turn on and off ten times a second, which may not be suitable for | 
					
						
							|  |  |  | heaters using a mechanical switch.) A typical bed PID calibration | 
					
						
							|  |  |  | command is: `PID_CALIBRATE HEATER=heater_bed TARGET=60` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-26 20:16:53 -05:00
										 |  |  | ### Next steps
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This guide is intended to help with basic verification of pin settings | 
					
						
							| 
									
										
										
										
											2019-02-06 18:49:11 -05:00
										 |  |  | in the Klipper configuration file. Be sure to read the | 
					
						
							|  |  |  | [bed leveling](Bed_Level.md) guide. Also see the [Slicers](Slicers.md) | 
					
						
							|  |  |  | document for information on configuring a slicer with Klipper. | 
					
						
							| 
									
										
										
										
											2018-10-11 00:52:09 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | After one has verified that basic printing works, it is a good idea to | 
					
						
							|  |  |  | consider calibrating [pressure advance](Pressure_Advance.md). | 
					
						
							| 
									
										
										
										
											2019-02-06 18:49:11 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | It may be necessary to perform other types of detailed printer | 
					
						
							|  |  |  | calibration - a number of guides are available online to help with | 
					
						
							|  |  |  | this (for example, do a web search for "3d printer calibration"). | 
					
						
							| 
									
										
										
										
											2020-07-28 01:37:33 +02:00
										 |  |  | As an example, if you experience the effect called ringing, | 
					
						
							|  |  |  | you may try following [resonance compensation](Resonance_Compensation.md) | 
					
						
							| 
									
										
										
										
											2020-07-16 01:08:39 +02:00
										 |  |  | tuning guide. |