Coder Social home page Coder Social logo

Delta Autocalibration about klipper HOT 10 CLOSED

JohannesOtto avatar JohannesOtto commented on May 7, 2024
Delta Autocalibration

from klipper.

Comments (10)

KevinOConnor avatar KevinOConnor commented on May 7, 2024

The code still needs to be written.

There is a test branch with demo code available at work-probe-20170609 (git fetch ; git checkout work-probe-20170609 ). Add a [probe] section to the config (see the updated example.cfg file) and then one should be able to issue a new PROBE g-code command. The new PROBE command will move the head down (from its current XY location) until the configured probe pin triggers. One can then issue an M114 command to read out where the head is. It's demo code, but hopefully shows an outline of what the code would look like should someone wish to tackle it.

from klipper.

johannes-otto avatar johannes-otto commented on May 7, 2024

Thanks,
I ll have a look into that

from klipper.

KevinOConnor avatar KevinOConnor commented on May 7, 2024

FYI, I've done some work on this recently. It's in the work-probe-20170609 branch. The code is in a very raw state, but I've been able to do some basic delta auto calibration with it. The code isn't ready for regular users, but developers may be interested in taking a look.

The branch allows a "probe" section to be defined in the config, and then one can run a DELTA_AUTOCALIBRATE RADIUS=123.4 command to probe a handful of points around the given bed radius. At the conclusion of the test, the code should report (via the klippy.log file) new values for endstop positions and tower angles. It's also possible to run DELTA_MANUAL RADIUS=123.4 to do a manual "paper test" style calibration - it will move the head to various XY points and at each point the user can jog the head to a Z position where a paper between the head and bed moves with a small amount of friction and then issue a NEXT command. It too will reports updated delta params (via the klippy.log file) at the conclusion of the test.

from klipper.

GruffyPuffy avatar GruffyPuffy commented on May 7, 2024

@KevinOConnor:
Thanks for the hard work with this project! I downloaded and tested on my small delta (kossel mini clone). I do miss the calibration from Marlin and I saw your branch on this. I switched to that and started to use that as a base for learning this a little. Hence I took the liberty to improve/change it a little so that I could test it. I currently keep it in a branch (based on your) here: https://github.com/GruffyPuffy/klipper/tree/autocalibration_feature

One thought I had. Do you see the workflow as to do a "DELTA_CALIBRATION", wait for results, update in printer.cfg and restart to take effect? This is at least how I tested my branch. I do think it would be nice to have a way to trigger a calibration, have the results saved and then you can start using it. Maybe you see this, or do you think it must be edited into the printer.cfg manually?`

Best of luck with the code! I will follow it closely!

from klipper.

KevinOConnor avatar KevinOConnor commented on May 7, 2024

from klipper.

megablue avatar megablue commented on May 7, 2024

One interesting thing I noticed on your branch is that you seem to do
the calibration points at the sensor XY location instead of the nozzle
location. I'm not sure what the best approach is.

For a delta XY/nozzle location is the best way... given that the user is also using some kind of nozzle triggered probe, I believe there is no way to reliably calibrate with the non-centred probe during a calibration.

from klipper.

GruffyPuffy avatar GruffyPuffy commented on May 7, 2024

@KevinOConnor @megablue
You might be right...the more I learn about this, the more I understand that I do not know that much. :) I need to dig into the maths again and think this through. I did do a calibration&test-print with what I have and it seemed pretty good. I did however not benchmark against not using the offsets of my probe.
Well, see my branch of this as my experiments only. Just wanted to inform and thank you for the hard work on this project!
When I was thinking of this, I wanted to get the Z-height for where the probe actually hits as the error function only uses the Z-height for error. But, as this is actually offset from the nozzle, it might not be correct when minimizing the error. (Sometimes one tend to think too much...) I will do some tests where I remove the XY-offsets from my printer.cfg and see what happens...one good thing is that it is easy to test... :)
Happy new year!

from klipper.

ricochet1k avatar ricochet1k commented on May 7, 2024

@KevinOConnor Has something changed in master that breaks the probe branch? I rebased the probe branch onto master. When I do DELTA_CALIBRATE, it probes all the points and then right after the last point it prints MCU 'mcu' shutdown: Command request and never prints any results from calibration.

Edit: Sorry, digging more into things, it's giving a Timeout with MCU 'mcu' (eventtime=...) dump. So, my guess is that my printer takes just a little too long to run the delta_calibrate command because it's big and slow. Bumping the speed up might be enough to fix this problem.

But there should be a better way to do the calibration so that the timeout won't happen, right?

from klipper.

KevinOConnor avatar KevinOConnor commented on May 7, 2024

from klipper.

KevinOConnor avatar KevinOConnor commented on May 7, 2024

I've merged the work-probe-20170609 into the master branch.

from klipper.

Related Issues (20)

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.