Variable number of G29 grid points (UBL, Bilinear)#26084
Variable number of G29 grid points (UBL, Bilinear)#26084lukasradek wants to merge 76 commits intoMarlinFirmware:bugfix-2.1.xfrom
Conversation
132a833 to
f350939
Compare
Works for Bilinear G29 LRFB syntax with square beds and without BILINEAR_SUBDIVISION.
f350939 to
c8db766
Compare
00750dc to
c75b8e5
Compare
|
I have added G29 parameters G29 probing points determination logic: By default, it will keep the spacing between points at (actually around) If user specifies If user specifies |
c75b8e5 to
2b34779
Compare
Support G29 N and M parameters to set number of points in X and Y (overriding spacing) and/or G parameter to set spacing overriding number of points up to Config limit.
2b34779 to
aaf1e19
Compare
|
The parameters |
|
I have noticed that |
|
Anyway, we already use I went ahead and added a commit to…
|
|
Other areas where this change will be taking effect include:
|
|
Just to address a few things that I noticed at first glance.
|
You should reuse the logic already implemented for LINEAR but extend it to BILINEAR.
I simply moved some lines around but tried to leave the logic the same. When calculations are made with Anyway, I'm done messing around and I'll get out of your way for a while as you work out the details. I assume you should be able to reuse the XY parameters that currently apply to LINEAR, but maybe you'll need to do it in a separate block. We'll see! |
|
Ok, just fixed my typos, and now I'll be scarce for a while! Hit me up on Discord if you run into any snags in any of the code affected by this option. You can go ahead and add |
bbl.h ubl.h ubl_G29.cpp settings.cpp
Merging on good faith. Haven't checked the code thoroughly. bbl.h Fix
|
@ThomasToka Can you please briefly explain what do your changes acomplish for this PR? As far as I can see most of the files you are modifying were not identified (albeit 2 years ago) as needing changes. |
Fix ui_api check
|
Thanks for merging. Sadly i still cant run all tests locally at once. So i am dependant on the online checks. What it does:
Thank you so far for the merges! |
UBL update ui_api.cpp Merging on good faith without code evaluation.
|
Ok...
|
|
Thanks for merging. We are now fine with the checks. Good idea with the fork. But i think it is a bit more of work needed to use the tests on github. But i will have a look into this. The tests are now fine. I will write a little more tomorrow to your questions as i yesterday felt down the stairs and my right foot is demaged. I will go now to the surgery to make "a pic" of my leg ^^ |
|
I've merged the latest codebase into this again to keep the concept rolling, and if you like I would be happy to rebase and squash it, with categories of changes divided into individual commits. Thank you for your patience while we've been focused on fixing bugs and getting Fixed-Time Motion into good condition. If we had known it would take us years to prepare the next release we might have allowed some more disruptive PRs like this one, but we wanted to avoid introducing sweeping changes that would require more followup patches and further delay the release. I intend to release 2.1.3 today, if possible, and create a new branch for development of 2.2 and beyond, and that's where we can merge this and allow things to be a little bit broken while we find all the things that were missed or broken. |
| #define DGUS_FILENAME_LEN 32 | ||
| #define DGUS_ELAPSED_LEN 15 | ||
| #define DGUS_LEVEL_GRID_SIZE 25 | ||
| #define DGUS_LEVEL_GRID_SIZE GRID_VAL(GRID_USED_POINTS, 25) |
There was a problem hiding this comment.
The grid code for some displays is hard-coded to the manufacturer's specifications. Since not all displays will accomodate all forms of ABL, either, we may need to add sanity checks about which displays can be used with this new feature.
2893c42 to
fa8aed6
Compare
|
Overall this is looking pretty good. I did my best in my initial review to make it a little neater, trying not to break too many things in the process. I will give it a test in the morning and if it doesn't explode then it just might make it into this release just under the wire…. No promises, though! There's still a small pile of things to review. |
fa8aed6 to
facda99
Compare
|
@thinkyhead that would be a great satisfaction for me. If possible, try to merge Tramming Wizard as well. That one is completely ready for almost 2 years. The branch only needs merging with current state of bugfix. 🙏 |
52532da to
06c6c47
Compare
1bc0732 to
72c7874
Compare
Description
Allows for variable number of grid probing points up to the number (per axis) specified in config file.
The logic to determine the number of grid points can be based on many things (menu config, GCODE,...), but for now the aim is to automatically decrease the number of points when probing small area and point spacing is smaller than specified in
Configuration.hbyGRID_MIN_SPACING, which seems to be the issue that most people have with number of probing points.Requirements
Probe, G29 Bilinear Leveling
Benefits
It addresses a lot of user requests and also decreases the probing time on larger machines when printing smaller things.
It goes together well with G29 LRFB syntax.
Configurations
The proposed changes in
Configuration.hare submited in the PR.Related Issues
Work In Progress
Todo Minimums:
subdivide_meshextrapolate_unprobed_bed_levelToDo Possibilities:
Configuration.h(is there any reason why there is a sanity check that requires min 3x3?In its current implementation Variable Grid Points work (math algos need to be checked) unless you want to use features from unchecked files mentioned below.
Extending Support and ToDo Files
Files that needs to be adjusted in order to fully support Variable Grid Points.
Without those adjustments, they should just fail gracefully and display NaN when showing value of grid point beyond the variable grid point limit (most of those changes concern UI printing leveling grid).
MESH_EDIT_MENU Support
G-code support
Utils
e3v2 Support
ExtUI Support
It looks like IA_CREALITY implements its own leveling and thus doesn't bother with
VARIBALE_GRID_POINTS, but just to be sure...Asking for HELP
Verify that mathematical algorithms in
feature/bedlevel/alb/bbl.cppclassLevelingBilinearare correct.extrapolate_unprobed_bed_levelandextrapolate_one_pointline_to_destination.virt_2cmr,virt_cmr,virt_coordVerify that EEPROM data storing and retrieval is implemented correctly
bedlevel.nr_grid_pointsis correctImplement e3v2 and ExtUI support since I don't have the hardware to test it with.