From 31987c7bcd10eff80b3e2bde66eb4f6a2393be5e Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sat, 16 Feb 2019 22:19:34 -0500 Subject: [PATCH] docs: Add a Manual_Probe.md document Add information on calibrating the bed on traditional printers with a Z endstop and bed screws. Signed-off-by: Kevin O'Connor --- docs/Bed_Level.md | 4 +- docs/Manual_Level.md | 135 ++++++++++++++++++++++++ docs/Overview.md | 15 ++- docs/img/bed_screws.svg | 202 ++++++++++++++++++++++++++++++++++++ docs/img/bed_screws.svg.png | Bin 0 -> 3843 bytes 5 files changed, 346 insertions(+), 10 deletions(-) create mode 100644 docs/Manual_Level.md create mode 100644 docs/img/bed_screws.svg create mode 100644 docs/img/bed_screws.svg.png diff --git a/docs/Bed_Level.md b/docs/Bed_Level.md index 4fd28f23..47d4f8ad 100644 --- a/docs/Bed_Level.md +++ b/docs/Bed_Level.md @@ -35,7 +35,9 @@ leveling. For printers with an "automatic Z probe" be sure to calibrate the probe following the directions in the [Probe Calibrate](Probe_Calibrate.md) document. For delta printers, -see the [Delta Calibrate](Delta_Calibrate.md) document. +see the [Delta Calibrate](Delta_Calibrate.md) document. For printers +with bed screws and traditional Z endstops, see the +[Manual Level](Manual_Level.md) document. During calibration it may be necessary to set the printer's Z `position_min` to a negative number (eg, `position_min = -2`). The diff --git a/docs/Manual_Level.md b/docs/Manual_Level.md new file mode 100644 index 00000000..f9636932 --- /dev/null +++ b/docs/Manual_Level.md @@ -0,0 +1,135 @@ +This document describes tools for calibrating a Z endstop and for +performing adjustments to bed leveling screws. + +# Calibrating a Z endstop + +An accurate Z endstop position is critical to obtaining high quality +prints. + +Note, though, the accuracy of the Z endstop switch itself can be a +limiting factor. If one is using Trinamic stepper motor drivers then +consider enabling [endstop phase](Endstop_Phase.md) detection to +improve the accuracy of the switch. + +To perform a Z endstop calibration, home the printer, move the head to +a position near the center of the bed, navigate to the OctoPrint +terminal tab, and run: +``` +Z_ENDSTOP_CALIBRATE +``` +Then perform the ["paper test"](Bed_Level.md#the-paper-test) steps to +determine the actual height at the given position. One can then +`ACCEPT` the position and save the results to the config file with: +``` +SAVE_CONFIG +``` + +It's preferable to use a Z endstop switch on the opposite end of the Z +axis from the bed. (Homing away from the bed is more robust as then it +is generally always safely to home the Z.) However, if one must home +towards the bed it is recommended to adjust the endstop so that it +triggers a small distance (eg, .5mm) above the bed. Almost all endstop +switches can safely be depressed a small distance beyond their trigger +point. When this is done, one should find that the +`Z_ENDSTOP_CALIBRATE` command reports a small positive value (eg, +.5mm) for the Z position_endstop. Triggering the endstop while it is +still some distance from the bed reduces the risk of inadvertent bed +crashes. + +Some printers have the ability to manually adjust the location of the +physical endstop switch. However, it's recommended to perform Z +endstop positioning in software with Klipper - once the physical +location of the endstop is in a convenient location, one can make any +further adjustments by running Z_ENDSTOP_CALIBRATE or by manually +updating the Z position_endstop in the configuration file. + +# Adjusting bed leveling screws + +The secret to getting good bed leveling with bed leveling screws is to +utilize the printer's high precision motion system during the bed +leveling process itself. This is done by commanding the nozzle to a +position nearest each bed screw and then adjusting that screw until +the bed is a set distance from the nozzle. Klipper has a tool to +assist with this. In order to use the tool it is necessary to specify +each screw XY location. + +This is done by creating a `[bed_screws]` config section. For example, +it might look something similar to: +``` +[bed_screws] +screw1: 100,50 +screw2: 100,150 +screw3: 150,100 +``` + +If a bed screw is under the bed, then specify the XY position directly +above the screw. If the screw is outside the bed then specify an XY +position closest to the screw that is still within the range of the +bed. + +Once the config file is ready, run `RESTART` to load that config, and +then one can start the tool by running: +``` +BED_SCREWS_ADJUST +``` + +This tool will move the printer's nozzle to each screw XY location and +then move the nozzle to a Z=0 height. At this point one can use the +"paper test" to adjust the bed screw directly under the nozzle. See +the information described in +["the paper test"](Bed_Level.md#the-paper-test), but adjust the bed +screw instead of commanding the nozzle to different heights. Adjust +the bed screw until there is a small amount of friction when pushing +the paper back and forth. + +Once the screw is adjusted so that a small amount of friction is felt, +run either the `ACCEPT` or `ADJUSTED` command. Use the `ADJUSTED` +command if the bed screw needed an adjustment (typically anything more +than about 1/8th of a turn of the screw). Use the `ACCEPT` command if +no significant adjustment is necessary. Both commands will cause the +tool to proceed to the next screw. (When an `ADJUSTED` command is +used, the tool will schedule an additional cycle of bed screw +adjustments; the tool completes successfully when all bed screws are +verified to not require any significant adjustments.) One can use the +`ABORT` command to exit the tool early. + +This system works best when the printer has a flat printing surface +(such as glass) and has straight rails. Upon successful completion of +the bed leveling tool the bed should be ready for printing. + +## Fine grained bed screw adjustments + +If the printer uses three bed screws and all three screws are under +the bed, then it may be possible to perform a second "high precision" +bed leveling step. This is done by commanding the nozzle to locations +where the bed moves a larger distance with each bed screw adjustment. + +For example, consider a bed with screws at locations A, B, and C: + +![bed_screws](img/bed_screws.svg.png) + +For each adjustment made to the bed screw at location C, the bed will +swing along a pendulum defined by the remaining two bed screws (shown +here as a green line). In this situation, each adjustment to the bed +screw at C will move the bed at position D a further amount than +directly at C. It is thus possible to make an improved C screw +adjustment when the nozzle is at position D. + +To enable this feature, one would determine the additional nozzle +coordinates and add them to the config file. For example, it might +look like: +``` +[bed_screws] +screw1: 100,50 +screw1_fine_adjust: 0,0 +screw2: 100,150 +screw2_fine_adjust: 300,300 +screw3: 150,100 +screw3_fine_adjust: 0,100 +``` + +When this feature is enabled, the `BED_SCREWS_ADJUST` tool will first +prompt for coarse adjustments directly above each screw position, and +once those are accepted, it will prompt for fine adjustments at the +additional locations. Continue to use `ACCEPT` and `ADJUSTED` at each +position. diff --git a/docs/Overview.md b/docs/Overview.md index 30b3c768..5d1e4136 100644 --- a/docs/Overview.md +++ b/docs/Overview.md @@ -12,15 +12,12 @@ The Klipper configuration is stored in a simple text file on the host machine. The [config/example.cfg](../config/example.cfg) file serves as a reference for the config file. See the [Slicers](Slicers.md) document for information on configuring a slicer with Klipper. See the -[Endstop Phase](Endstop_Phase.md) document for information on -Klipper's "stepper phase adjusted endstop" system. See the -[Bed Level](Bed_Level.md) document for information on bed leveling -with Klipper. See the [Probe Calibrate](Probe_Calibrate.md) document -for information on calibrating automatic Z probes. See the -[Delta Calibrate](Delta_Calibrate.md) document for information on -calibrating delta printers. The -[Pressure Advance](Pressure_Advance.md) document contains information -on tuning the pressure advance config. +[Bed Level](Bed_Level.md), [Endstop Phase](Endstop_Phase.md), +[Probe Calibrate](Probe_Calibrate.md), +[Delta Calibrate](Delta_Calibrate.md), and +[Manual Level](Manual_Level.md) documents for information on bed +leveling with Klipper. The [Pressure Advance](Pressure_Advance.md) +document contains information on tuning the pressure advance config. The [kinematics](Kinematics.md) document provides some technical details on how Klipper implements motion. The [FAQ](FAQ.md) answers diff --git a/docs/img/bed_screws.svg b/docs/img/bed_screws.svg new file mode 100644 index 00000000..631af81e --- /dev/null +++ b/docs/img/bed_screws.svg @@ -0,0 +1,202 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + A + B + + + C + + + + + D + + + diff --git a/docs/img/bed_screws.svg.png b/docs/img/bed_screws.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..d2dda545142a4de79ac38b47a808f83a7626014d GIT binary patch literal 3843 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 N05!LTRGQwz{|(Z{tswva literal 0 HcmV?d00001