|
|
@ -281,26 +281,22 @@ |
|
|
|
* You MUST do M502, M500 to initialize the storage. Failure to do this will cause all |
|
|
|
* kinds of problems. Enabling EEPROM Storage is required. |
|
|
|
* |
|
|
|
* When you do a G28 and then a G29 P1 to automatically build your first mesh, you are going to notice |
|
|
|
* the Unified Bed Leveling probes points further and further away from the starting location. (The |
|
|
|
* starting location defaults to the center of the bed.) The original Grid and Mesh leveling used |
|
|
|
* a Zig Zag pattern. The new pattern is better, especially for people with Delta printers. This |
|
|
|
* allows you to get the center area of the Mesh populated (and edited) quicker. This allows you to |
|
|
|
* perform a small print and check out your settings quicker. You do not need to populate the |
|
|
|
* entire mesh to use it. (You don't want to spend a lot of time generating a mesh only to realize |
|
|
|
* you don't have the resolution or zprobe_zoffset set correctly. The Mesh generation |
|
|
|
* gathers points closest to where the nozzle is located unless you specify an (X,Y) coordinate pair. |
|
|
|
* When you do a G28 and G29 P1 to automatically build your first mesh, you are going to notice that |
|
|
|
* UBL probes points increasingly further from the starting location. (The starting location defaults |
|
|
|
* to the center of the bed.) In contrast, ABL and MBL follow a zigzag pattern. The spiral pattern is |
|
|
|
* especially better for Delta printers, since it populates the center of the mesh first, allowing for |
|
|
|
* a quicker test print to verify settings. You don't need to populate the entire mesh to use it. |
|
|
|
* After all, you don't want to spend a lot of time generating a mesh only to realize the resolution |
|
|
|
* or zprobe_zoffset are incorrect. Mesh-generation gathers points starting closest to the nozzle unless |
|
|
|
* an (X,Y) coordinate pair is given. |
|
|
|
* |
|
|
|
* The Unified Bed Leveling uses a lot of EEPROM storage to hold its data. And it takes some effort |
|
|
|
* to get this Mesh data correct for a user's printer. We do not want this data destroyed as |
|
|
|
* new versions of Marlin add or subtract to the items stored in EEPROM. So, for the benefit of |
|
|
|
* the users, we store the Mesh data at the end of the EEPROM and do not keep it contiguous with the |
|
|
|
* other data stored in the EEPROM. (For sure the developers are going to complain about this, but |
|
|
|
* this is going to be helpful to the users!) |
|
|
|
* Unified Bed Leveling uses a lot of EEPROM storage to hold its data, and it takes some effort to get |
|
|
|
* the mesh just right. To prevent this valuable data from being destroyed as the EEPROM structure |
|
|
|
* evolves, UBL stores all mesh data at the end of EEPROM. |
|
|
|
* |
|
|
|
* The foundation of this Bed Leveling System is built on Epatel's Mesh Bed Leveling code. A big |
|
|
|
* 'Thanks!' to him and the creators of 3-Point and Grid Based leveling. Combining their contributions |
|
|
|
* we now have the functionality and features of all three systems combined. |
|
|
|
* UBL is founded on Edward Patel's Mesh Bed Leveling code. A big 'Thanks!' to him and the creators of |
|
|
|
* 3-Point and Grid Based leveling. Combining their contributions we now have the functionality and |
|
|
|
* features of all three systems combined. |
|
|
|
*/ |
|
|
|
|
|
|
|
void unified_bed_leveling::G29() { |
|
|
|