Comments (10)
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.
Thanks,
I ll have a look into that
from klipper.
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.
@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.
from klipper.
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.
@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.
@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.
from klipper.
I've merged the work-probe-20170609 into the master branch.
from klipper.
Related Issues (20)
- [FR] CANbus for LPC176x boards HOT 1
- issuses with gd32f303 chip on ender3 v2 neo HOT 1
- Unable to connect HOT 1
- Deadlock when using exclude_objects containing umlaut. HOT 4
- Ender 3, Klipper/Mainsail no longer booting HOT 1
- Request for a command to wait for a variable update HOT 1
- X axis movement inverted after TUNING_TOWER command for pressure advance configuration HOT 1
- MCU Problem HOT 4
- Ender 3 S1/Pro min_mesh value too high HOT 2
- ADC out of range issue and improvements HOT 1
- [Enhancement] M300 Support HOT 1
- Mks robin nano v3 provides only 150k steps per second HOT 1
- Wrong information about generating hex because its generating binary file HOT 1
- Apparent regression in variable PA HOT 6
- Hi, is last_stoep_clock a uint64_t value or a uint32_t one? or it's by designed to converted from uint64_t to uint32_t inexplicitly? HOT 1
- Probe pin out in Octopus Pro v1.1 HOT 1
- Manta m5p endstop stuck on HOT 1
- Klipper fails to build with Apple's cpp HOT 19
- Klipper flashing but not responding on the GTM332 Mini S HOT 1
- Hardcoded path in src/linux/main.c for sched.h HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from klipper.