synman/Ender-3-S1-Pro-Firmware

Trying to use UBL?

Closed this issue · 4 comments

If you've never used it before, its syntax is a bit different than ABL. Read all about it in the Marlin docs.

It is fully integrated into the touchscreen if you flash the UBL build and will produce a 10x10 grid, 100 points, spread across every point of the bed that the probe can reach.

Will keep this open to answer any questions that arise and share some experiences I've had with it in follow up comments.

Screenshot 2023-02-03 at 9 29 16 PM

A quick walkthrough of the UBL workflow on the S1 Pro / Plus:

  1. Mesh generation starts with a G29 P1 command. The probe will run through the grid, probing each of the 100 points along the way. Running G29 P1 T V4 will provide an updated topology report per probe as well as some diagnostic data as it progresses.
Recv: Bed Topography Report:
Recv: 
Recv:     (  0,183)                                                              (203,183)
Recv:         0       1       2       3       4       5       6       7       8       9
Recv:  9 | +0.05  -0.01  -0.07  -0.09  -0.09  -0.03  -0.02  +0.01  +0.04  +0.13
Recv:    |
Recv:  8 | +0.05  +0.01  -0.04  -0.07  -0.03  -0.03  -0.01  +0.03  +0.07  +0.14
Recv:    |
Recv:  7 | +0.05  +0.01  -0.04  -0.05  -0.05  -0.05 [-0.02] +0.01  +0.03  +0.11
Recv:    |
Recv:  6 | +0.05  +0.01  -0.04  -0.06  -0.06  -0.06  -0.04  -0.02  +0.02  +0.08
Recv:    |
Recv:  5 | +0.04  -0.01  -0.05  -0.07  -0.07  -0.08  -0.06  -0.02  +0.02  +0.09
Recv:    |
Recv:  4 | +0.05  -0.01  -0.06  -0.08  -0.08  -0.08  -0.06  -0.03  -0.01  +0.06
Recv:    |
Recv:  3 | +0.05  -0.02  -0.07  -0.10  -0.09  -0.09  -0.08  -0.05  -0.02  +0.04
Recv:    |
Recv:  2 | +0.03  -0.05  -0.12  -0.13  -0.11  -0.10  -0.10  -0.08  -0.06  +0.00
Recv:    |
Recv:  1 | -0.01  -0.09  -0.13  -0.16  -0.14  -0.11  -0.09  -0.06  -0.05  +0.03
Recv:    |
Recv:  0 | +0.06  -0.01  -0.06  -0.09  -0.06  -0.05  -0.03  +0.01  +0.05  +0.13
Recv:         0       1       2       3       4       5       6       7       8       9
Recv:     (  0,  0)                                                              (203,  0)
  1. The probe may fail one or more times while running through the 100 points. Let it get to the end and we'll follow up with a Continue command to finish mesh population. Once the initial P1 session is complete, issue a Continue like so: G29 P1 C T V4

  2. Now that we have a full mesh, execute the Fill Gaps command like so: G29 P3

  3. You should save your mesh at this point with the Save command: G29 S1

  4. You can activate your mesh (this should also be in your slicer's startup gcode) with M420 L1 S1 V

If you're using the Touchscreen, all of this is built into it with the exception of step 5 :)

G29 UBL is documented here: https://marlinfw.org/docs/gcode/G029-ubl.html

After you've set your Z-Offset, if you want to do actual printed validation of your work, you can do so by printing a Mesh Validation Grid (https://marlinfw.org/docs/gcode/G026.html)

The following example set an extruder temperature of 205C, nozzle size of .6mm at .2mm layer height. It will generate a 100 point grid that visually matches the mesh you generated above.

G26 S.6 R100 L.2 O0 C 

PXL_20230205_221150635

G26 also works with ABL based meshes. For example, to produce a printed grid if using the ABL version of the firmware, specify 25 as the R parameter value instead of 100.

A really useful command is Mesh point Invalidation. Here are a couple examples of it in use:

G29 I T will delete the mesh point closest to the nozzle's current position.

G29 I9 T will delete the 9 closest mesh points to the nozzle's current position.

Executing Continue (G29 C) after deleting mesh points will have the machine re-probe them.

Here's an example of clearing all 4 corners of your mesh and re-probing them. This is useful if you are working on tramming your bed:

G29 I X235 Y0
G29 I X235 Y225
G29 I X0 Y225
G29 I X0 Y0
G29 T
G29 P1 C T V4
G29 S

There are now two variations of UBL available.

_ubl25 is a 5x5 (25 point) mesh
_ubl100 is a 10x10 (100 point) mesh