Skip to content

Commit

Permalink
add small changes
Browse files Browse the repository at this point in the history
  • Loading branch information
TitusLabs committed May 10, 2021
1 parent 8e9c8d1 commit d121415
Showing 1 changed file with 35 additions and 33 deletions.
68 changes: 35 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,18 @@ Voron V1/V2. There is no need for a manual z offset or first layer calibration a
It is possible to change any variable in the printer from the temperature, the nozzle,
the flex plate, any modding on the print head or bed or even changing the z endstop
position value of the klipper configuration. Any of these changes or even all of them
together do **not** influence the first layer at all.
together do **not** affect the first layer at all.

## Why this

- With the Voron V1/V2 z-endstop (the one where the tip of the nozzle clicks on a switch),
you can exchange nozzles without changing the offset:
you can exchange nozzles without adapting the offset:
![endstop offset](pictures/endstop-offset.png)
- Or, by using a mag-probe (or SuperPinda, but this is not probing the surface directly)
as a z-endstop, you can exchange the flex plates without changing the offset:
- Or, by using a mag-probe (or SuperPinda, but this is not probing the surface directly
and thus needs an other offset which is not as constant as the one of a switch)
as a z-endstop, you can exchange the flex plates without adapting the offset:
![probe offset](pictures/probe-offset.png)
- But you cannot get both or even more..
- But, why can't you get both of it? Or even more.. ?

And this is what I did. I just combined these two probing methods to be completely
independent of any offset calibrations.
Expand All @@ -26,6 +27,7 @@ independent of any offset calibrations.
Voron V1/V2 enstop)
- A magnetic switch based probe at the print head - instead of the stock inductive probe
([e.g. this one from Annex](https://github.com/Annex-Engineering/Annex-Engineering_Other_Printer_Mods/tree/master/VORON_Printers/VORON_V2dot4/Afterburner%2BMagnetic_Probe_X_Carriage_Dual_MGN9))
- Both, the z-endstop and mag-probe are configured properly and homing and QGL are working.
- The `z_calibration.py` file needs to be copied to the `klipper/klippy/extras` folder.
Klipper will then load this file if it finds the `z_calibration` configuration section.
- It's good practise to use the probe switch as normaly closed. Then, macros can detect
Expand All @@ -40,6 +42,7 @@ independent of any offset calibrations.
## What it does

1. Normal homing of all axes using the z-endstop for z - now we have a zero point in z.
(this is not part of this plugin)
2. Determine the height in z of the nozzle by probing the tip of it on the z-endstop
(should be mor or less the homed enstop position):
![nozzle position](pictures/nozzle-position.png)
Expand All @@ -53,7 +56,7 @@ independent of any offset calibrations.

![switch offset](pictures/switch-offset.png)
5. Determine the height in z of the print surface by probing one point with the mag-probe.
6. Calculate the final offset:
6. Now, calculate the final offset:

`probe offset = probed z height - calculated nozzle switch offset`

Expand All @@ -63,17 +66,17 @@ independent of any offset calibrations.
### Drawback

The only downside is, that the trigger point of the mag-probe cannot be probed directly.
This is why the body of the switch is clickt on the endstop. This small offset between the
This is why the body of the switch is clicked on the endstop. This small offset between the
body of the switch and the trigger point can be taken from the datasheet of the switch and
is not influenced in any way (at least I thought so).
is hardly ever influenced in any way.

### Interference

Temperature or humindity changes are not a problem since the switch is not influenced much
Temperature or humindity changes are not a big deal since the switch is not affected much
by them and all values are probed in a small time period and only the releations to each
other are used. The nozzle height in step 2 can be determined some time later and even
some celsius higher, compared to the homing in step 1. That is why the nozzle is probed
again and can vary to the first homing position.
many celsius higher in the printer, compared to the homing in step 1. That is why the
nozzle is probed again and can vary a little to the first homing position.

### Example

Expand All @@ -89,14 +92,14 @@ z-endstop position and here even the same as the second nozzle probe.

## How to configure it

The configuration of this plugin looks like this:
The configuration is needed to activate the plugin and to set some needed values.

```
[z_calibration]
switch_offset:
# The trigger point offset of the used switch of the
# mag-probe. This needs to be determined manually.
# More on this later in this section..
# The trigger point offset of the used mag-probe switch.
# This needs to be fined out manually. More on this later
# in this section..
max_deviation: 1.0
# The maximum allowed deviation of the calculated offset.
# If the offset exceeds this value, it will stop!
Expand All @@ -118,35 +121,34 @@ probe_bed_y:
```

The `switch_offset` is the already mentioned offset from the switch body (which is the
probed position) to the actual trigger point. The value can be taken from the datasheet of
the Omron switch (D2F-5: 0.5mm and SSG-5H: 0.7mm). It is good to start with a little less
depending on the squishiness you prefer for the first layer (for me, it's -0.25). This
value is a really fixed one!

For the move up commands after probing, the `z_offset` parameter of the `[probe]` section
is used and also doubled for clearance safety. Further on, from the z configuration, the
`(second_)homing_speed`, `homing_retract_dist` and `position_min` values are taken for
probed position) to the actual trigger point. A starting point can be taken from the
datasheet of the Omron switch (D2F-5: 0.5mm and SSG-5H: 0.7mm). It is good to start with
a little less depending on the squishiness you prefer for the first layer (for me, it's -0.25).

For the move up commands after every probing steps, the `z_offset` parameter of the `[probe]`
section is used and also doubled for clearance safety. Further on, from the z configuration,
the `(second_)homing_speed`, `homing_retract_dist` and `position_min` values are taken for
probing too.

It even doesn't matter what z-endstop position is configured in Klipper. All positions are
relative to this point - only the absolute values are different. But, it is advisable to
configure a safe value here to not crash the nozzle in the build plate by accident. The
plugin only changes the GCode Offset and it is still possible to move the nozzle over this
configure a safe value here to not crash the nozzle into the build plate by accident. The
plugin only changes the GCode offset and it's still possible to move the nozzle beyond this
offset.

> **Note:** ~~With the recent Klipper version I recognized, that the switch is not clicking
> anymore while probing. May be, it is because of the fixed bug regarding the clock speed
> divider and the mcu is reacting faster now? Or there were any other changes in the
> probing routine, which I missed. And this is a change in the whole system, which direcly
> influences this switch offset. As a consequence, I had to increase the switch offset...~~
> My SSG-5H switch got damaged somehow and the repeatability got worse too. I'm not sure if
> this was my fault or if the switch is not the best choice..
> My SSG-5H switch got damaged somehow and the repeatability got more and more worse too.
> I'm not sure if this was my fault or if the switch is not the best choice..
## How to use it

The calibration is started by using the `CALIBRATE_Z` command. If the probe is not
attached to the print head, it will abort the calibration process. So, macros can help
here to unpark and park the probe like this:
The calibration is started by using the `CALIBRATE_Z` command. If the probe is not attached
to the print head, it will abort the calibration process (if configured normaly open). So,
macros can help here to unpark and park the probe like this:

```
[gcode_macro CALIBRATE_Z]
Expand All @@ -163,13 +165,13 @@ gcode:
```

Then the `CALIBRATE_Z` command needs to be added to the `PRINT_START` macro. For this,
just replace the second z homing after QGL with this macro. The sequence could look
like this:
just replace the second z homing after QGL and nozzle cleaning with this macro. The
sequence could look like this:

1. home all axes
2. heat up the bed and nozzle (and chamber)
3. get probe, make QGL, park probe
4. clean the nozzle
4. purge and clean the nozzle
5. get probe, CALIBRATE_Z, park probe
6. print intro line
7. start printing...
Expand Down

0 comments on commit d121415

Please sign in to comment.