Giter Site home page Giter Site logo

gadgetangel / voron2_settling_probe Goto Github PK

View Code? Open in Web Editor NEW
7.0 1.0 0.0 54 KB

A Klipper Extension for the Probe Obj that allows the first probe sample to be discarded from the following command: PROBE,PROBE_ACCURACY,PROBE_CALIBRATE,QUAD_GANTRY_LEVEL,BED_MESH_CALIBRATE,SCREWS_TILT_CALCULATE,Z_TILT_ADJUST,PROBE_Z_ACCURACY, and CALIBRATE_Z

License: GNU General Public License v3.0

Shell 15.95% Python 84.05%
bltouch ender3 klipper klipper3d voron vorondesign z-probe

voron2_settling_probe's Introduction

Voron 2 Settling Probe which I plan to use on my Ender 3 printer and Voron 2.4 printers

This work was mostly done by @voidtrance, He has a GitHub Repo and calls his version settling_probe. I recommend you check his out his Repo. His GitHub Repo can be found at @voidtrance GitHub Repo

A Klipper Extension for the Probe Obj that allows the first probe sample to be discarded from the following commands:

PROBE
PROBE SETTLING_SAMPLE=0
PROBE SETTLING_SAMPLE=1

PROBE_ACCURACY
PROBE_ACCURACY SETTLING_SAMPLE=0
PROBE_ACCURACY SETTLING_SAMPLE=1

PROBE_CALIBRATE
PROBE_CALIBRATE SETTLING_SAMPLE=0
PROBE_CALIBRATE SETTLING_SAMPLE=1

QUAD_GANTRY_LEVEL
QUAD_GANTRY_LEVEL SETTLING_SAMPLE=0
QUAD_GANTRY_LEVEL SETTLING_SAMPLE=1

BED_MESH_CALIBRATE
BED_MESH_CALIBRATE SETTLING_SAMPLE=0
BED_MESH_CALIBRATE SETTLING_SAMPLE=1

PROBE_Z_ACCURACY
PROBE_Z_ACCURACY SETTLING_SAMPLE=0
PROBE_Z_ACCURACY SETTLING_SAMPLE=1

CALIBRATE_Z
CALIBRATE_Z SETTLING_SAMPLE=0
CALIBRATE_Z SETTLING_SAMPLE=1

I developed my own version of @voidtrance code because I own and Ender 3 and Voron 2.4 printer. I especially did it for my Ender 3 which uses a BLTouch. Furthermore, I see a lot of first samples that are outliers from the rest of the sample set.

Besides, I am looking forward to adding this to my Klipperized Ender 3 printer!


Settling Probe, GadgetAngel's version; This version of the settling probe is called z_v2settling_probe

I quote from @voidtrance GitHub page:

For some currently unknown reason, Voron printers seem to suffer from an issue
where the first probing sample is off by some margin. Subsequent samples are
much closer (or the same) to each other. The current theory is that there is
some toolhead/axis settling on the first sample.

In order to avoid polluting the probe samples, the first sample should be
thrown away.

This extension adds support for performing a single, throw-away, settling
probe sample that is not part of the sample set used for calculating Z
positions.

The extension replaces the default `probe` Klipper object with the modified
one in order to allow all commands/operations that perform Z probing to
benefit from this.

I would add that the Ender 3 and other printers that use a BLTouch also experience this issue with the first probe sample.

Especially when it comes to performing BED_MESH_CALIBRATE!


BEFORE you install z_v2settling_probe on your Klipper 3D printer, do the following:

๐Ÿ’ก NOTE: Do not install both my version and @voidtrance version! Use only ONE!

๐Ÿ’ก NOTE: Use either my version called [z_v2settling_probe] with the file z_v2settling_probe.py

or use @voidtrance version which is called settling_probe with the file settling_probe.py

This extension does not add the ability to attach your Klicky probe/ Euclid probe to your tool head. It also is not responsible for docking your Klicky probe/ Euclid probe. You need to ensure that your probe is working, I mean you can do a BED_MESH_CALIBRATE, your homing procedure G28 and your leveling procedure (QGL or BED_TILT_ADJUST).

This extension adds a sample to the very beginning of the probing sequence. If you need to have the probe attached then you are responsible for writing the Macros that will allow the probe to attach automatically and docked automatically for each of the following commands.

This extension does not do any checking to ensure that when you probe the bed you are over the bed surface. So ensure you place the tool head in the appropriate location.

The PROBE_Z_ACCURACY and CALIBRATE_Z will move the tool head to the correct locations because the Auto-Z-calibate plugin does that as part of its Klipper extension.


How to enable z_v2settling_probe on your Klipper 3D printer:

To enable the module, add the following to your printer.cfg file:

[z_v2settling_probe]
#settling_sample:
#   Globally enable the throw-away settling sample. Default is 'False'.
#   Setting this to 'True' will enable the throw-away sample for all
#   commands/operations that perform Z probing (QUAD_GANTRY_LEVEL, Z_TILT_ADJUST,
#   BED_MESH_CALIBRATE, PROBE, PROBE_ACCURACY, etc.)

โ˜๏ธ NOTE: The default for the option settling_sample is False. So if you forget to assign True or False for the option settling_sample then the extension will load False automatically. But this only applies if you have a z_v2settling_probe] section defined in your printer.cfg file.

The module also augments the PROBE, PROBE_ACCURACY, and PROBE_CALIBRATE, QUAD_GANTRY_LEVEL, BED_MESH_CALIBRATE,PROBE_Z_ACCURACY, and CALIBRATE_Z commands with an extra parameter - SETTLING_SAMPLE - which can be used to control whether the commands perform a settling sample independently of thesettling_sample setting in the configuration section [z_v2settling_probe]. If your printer does not use QUAD_GANTRY_LEVEL this extension will still work.

The extension will only augment the commands that apply for your type of printer. If you do not use Auto-Z-Calbration plugin for your Voron Printer, the extension will not load that part of the extension that deals with the PROBE_Z_ACCURACYcommand and the CALIBRATE_Z command.

All you will see is a message in your klippy.log file saying that the PROBE_Z_ACCURACYcommand and the CALIBRATE_Z commands will not be available for your printer.


Installation:

You have two ways you can install this z_v2settling_probe extension (manually or via an installation script)

  1. Here is the manual install instruction:

  2. Write down the location of the following directories:

    • Klipper Extras: Usually located at /home/USER/klipper/klippy/extras.
  3. Download z_v2settling_probe.py file.

  4. Download the Z_V2SETTLING_PROBE.cfg and include it into your printer.cfg file.

  5. Move z_v2settling_probe.py to your Klipper Extras folder (home/pi/klipper/klippy/extras).

  6. Restart Klipper service and do a FIRMWARE RESTART command if needed

๐Ÿ’ก INFO: Please restart the Klipper service by using the Mainsail/Fluidd UI (upper right-hand corner Power button Symbol) or perform the following command at your Raspberry Pi command prompt (on the Pi that runs Klipper for your 3D printer):

cd ~
sudo systemctl restart klipper

๐Ÿ‘‡ Run the following command:

cd ~
sudo systemctl restart klipper

Here is the installation script method:

  1. Here is the script method:

๐Ÿ’ก NOTE: If you install the extension before you create the[z_v2settling_probe] section with the option settling_sample: True Klipper will NOT load the extension when you restart Klipper.

Install the z_v2settling_probe extension to Klipper, please run the following commands:

cd /home/pi
git clone https://github.com/GadgetAngel/voron2_settling_probe.git
./voron2_settling_probe/install-v2settling_probe.sh

Example Usage: An Example of using [z_v2settling_probe] section

First you must create the [z_v2settling_probe] section in your printer.cfg file so Klipper knows to load the z_v2settling_probe.py file and include it into the Klipper code running on your Raspberry Pi.

Here are the contents of Z_V2SETTLING_PROBE.cfg file:

#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Z_V2SETTLING_PROBE Setup
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#Z_V2SETTLING_PROBE
[z_v2settling_probe]
# z_v2settling_probe has code and the code can be found in the file 'z_v2settling_probe.py'
# z_v2settling_probe also has one additional option parameter called 'settling_sample'
settling_sample = True

Now restart the Klipper service by going to the upper right-hand side corner of Mainsail UI and click on the Power Button symbol. Take your mouse and click on the curved arrow next to the word Klipper to restart the Klipper service.


Additional Files:

In this GitHub Repo I have added two additional files, so you can see what my setting where for my Euclid Probe (PROBE_EUCLID(GM).cfg) and my Auto-Z-Calibration plugin (Z_CALIBRATION.cfg).

โ˜๏ธ NOTE: These are for reference only. DO NOT load them onto your 3D printer!


Moonraker Update Manager:

It's possible to keep this extension up to date with the Moonraker's update manager by adding this configuration block to the "moonraker.conf" of your printer:

[update_manager z_v2settling_probe]
type: git_repo
path: ~/voron2_settling_probe
origin: https://github.com/GadgetAngel/voron2_settling_probe.git
install_script: install-v2settling_probe.sh
is_system_service: False
managed_services: klipper

After you update moonraker.conf file, I reboot my Raspberry Pi to get it to install.

This requires this repository to be cloned into your home directory (e.g. /home/pi):

git clone https://github.com/GadgetAngel/voron2_settling_probe.git

The URL for Moonraker [update_manager] section can be found here


Now, you are free to try out the following commands:

PROBE
PROBE SETTLING_SAMPLE=0
PROBE SETTLING_SAMPLE=1
PROBE_ACCURACY
PROBE_ACCURACY SETTLING_SAMPLE=0
PROBE_ACCURACY SETTLING_SAMPLE=1
PROBE_CALIBRATE
PROBE_CALIBRATE SETTLING_SAMPLE=0
PROBE_CALIBRATE SETTLING_SAMPLE=1
QUAD_GANTRY_LEVEL
QUAD_GANTRY_LEVEL SETTLING_SAMPLE=0
QUAD_GANTRY_LEVEL SETTLING_SAMPLE=1
BED_MESH_CALIBRATE
BED_MESH_CALIBRATE SETTLING_SAMPLE=0
BED_MESH_CALIBRATE SETTLING_SAMPLE=1
PROBE_Z_ACCURACY
PROBE_Z_ACCURACY SETTLING_SAMPLE=0
PROBE_Z_ACCURACY SETTLING_SAMPLE=1
CALIBRATE_Z
CALIBRATE_Z SETTLING_SAMPLE=0
CALIBRATE_Z SETTLING_SAMPLE=1

Happy 3D printing!!

voron2_settling_probe's People

Contributors

gadgetangel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

voron2_settling_probe's Issues

Uninstall?

Not really an issue but wondering how I uninstall this?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.