-
Notifications
You must be signed in to change notification settings - Fork 0
Automatic Bed Leveling Issues
Ender 3 S1 users frequently encounter the following issues when using the Automatic Bed Leveling capabilities of their printer:
- Prints do not stick in the front or back of the bed:
- The mesh is incorrect
- Or the mesh is not correctly applied
- The Z offset changes randomly from print to print
- One print will come out perfect, the next print will have the nozzle too close to the bed
- TODO
The Automatic Bed Leveling (ABL) on the S1 works as follows:
- The printer moves the CRTouch probe across the print bed to pre-defined points (4x4 (?) on the stock firmware)
- At each point, the probe is deployed and the distance to the bed is measured
- The result of this process is a mesh: like a topology map, this describes the valleys and bumps on your printer's bed.
- The printer applies this mesh during the first layers by moving the Z axis (and thus the nozzle) closer to the bed or away from the bed
This is an example of a 5x5 mesh:
-0.09 -0.09 -0.07 0.02 0.05
0.10 0.05 0.00 0.04 0.04
0.04 0.03 -0.03 0.04 0.06
-0.02 -0.06 -0.11 -0.04 -0.02
-0.02 -0.09 -0.18 -0.13 -0.14
When visualized, the mesh looks like this:
![Screenshot 2022-11-21 at 08 01 06](https://user-images.githubusercontent.com/260872/202985554-ab62f3b0-5205-43ba-8dcb-65d44848363c.png)
A different visualization of the same mesh:
![Screenshot 2022-11-21 at 08 06 54](https://user-images.githubusercontent.com/260872/202986545-4c63099a-4dc3-4607-baef-0918f5071d89.png)
The matrix only consists of specific points. To determine how to adjust the Z axis movements between points, the printer firmware is applying an interpolation algorithm. This is a simple linear interpolation: half-way between offsets 0.1 and 0.2, the printer will apply a 0.15 offset. Details of the UBL implementations
Once a mesh for your particular bed exists, you need to ensure that the mesh is applied. Use the M420 S1
gcode to enable the compensation.
To sum up this section, Automatic Bed Leveling is a two-step process:
- Generate the mesh by running the bed probing
- Enable Z axis compensation based on the mesh for your prints
Instead of using the CRTouch probe to generate the mesh, it is possible to generate the mesh manually:
- Generating the mesh from scratch without the CRTouch probe
- Note that the link above points to the Marlin UBL implementation; other implementations may differ
- Editing a previously probed mesh
This document is concerned with making Automatic Bed Leveling work; i.e. using the CRTouch probe.
TODO: relationship with Z offset.
Depending on your firmware, different ABL implementations are used.
- Creality stock uses TODO
- MRiscoC uses TODO by default
- MRiscoC UBL variants use Unified Bed Leveling
- Document the various issues observed with ABL on the Ender 3 S1 and its variants
- Document (possible) solutions that may help inexperienced and experienced users alike
- Collect data to understand patterns and root causes
In particular, the data collected here is intended as input for the experts to understand the problem and come up with a fix.
If your printer is out of true
Loose wheels, etc
If your probe is broken and does not give repeatable results, the resulting mesh will not be useful.
- Use the Marlin Probe Repeatability test (M48) or invoke the test from your printer's LCD (on MRiscoC firmware)
- For the CRTouch, the results should be better than TODO
- Check mechanics of your printer
- Check that CRTouch probe is mounted correctly and that the screws are not tight
- CRTouch uses an optical sensor: try turning off light sources around the printer and see if results improve
- Some reports on the net (not necessarily for the S1) indicate that using wires with better shielding (e.g. CAT5) has improved results
- Replace the sensor - possibly under warranty
The Y axis comes bent from the factory on many printers. This is due to overtightening of the four bolts that fix the Y axis extrusion to the chassis during factory assembly.
First approach:
- Turn off printer
- Ensure Y axis wheels are tightened correctly
- Ensure your wheels do not have any flat spots
- TODO: loosen an retighten screws?
- Gently roll the bed from front and back multiple times with your hand
- Feel for any bumps or sticky points when moving the bed
Second approach:
- Remove Y axis extrusion Y 1.1 Remove bed from from Y axis extrusion 1.2 Remove 6 screws holding the Y axis extrusion 1.3. Remove Y axis stepper motor
- Put Y axis on flat surface and check if it is level 3.1. Put a strong light behind the extrusion and check if a bright spot appears where the extrusion meets the flat surface
- Check the grooves for the wheels 4.1 Feel with your fingers (or measure with a set of calipers) if the grooves where the wheels are riding have no bumps
If your Y axis is bent or damaged, you have the following options.
- Get a new Y axis 1.1 Creality currently does not sell these (as of 2022-11) 1.1 However, Creality support will send you a new extrusion (warranty)
See below.
If your X axis is warped in itself, the probe will have a different Z offset as the probe moves along the X axis.
@MauroGil66 has created this diagram to illustrate the problem:
![MauroGil66's illustration of the effects of a warped X axis](https://user-images.githubusercontent.com/32619520/90580766-0863da00-e1a0-11ea-9a2c-b92dd0fbbf06.png)
TODO!
- If you see a systematic pattern that the right or left side of the bed is higher/lower than the other?
- Straightening the X axis to remove the warp 1.1 Shimming (TODO: video?)
- Apply software compensation via Marlin's M423 gcode 2.1 Recent Marlin versions add support for X_AXIS_TWIST_COMPENSATION 2.1.1 This needs to be enabled in your firmware build. Currently NOT enabled in MRiscoC firmware. 2.1.2 Once enabled, the Marlin [M423 gcode|https://marlinfw.org/docs/gcode/M423.html] or the LCD can be used to adjust the compensation 2.1.3 See feature PR and feature request for additional information 2.1.4 TODO: this fix is not verified.
- Use a Y=0 offset probe mount (see below)
Your bed may be out of true so much that the ABL cannot compensate for it.
- TODO
- Shimming
- Get replacement bed
- Increase mesh density
- TODO
The CRTouch probe is offset from the nozzle. While the nozzle can reach the entire bed, the probe cannot!
TODO: find out default mesh inset
- Are your first layer problems located in an area of the bed where the probe does not reach?
- TODO: document the mesh inset and describe where this problem could be expected
The general approach to fixing is to increase the size of the mesh. This involves the following:
- Telling the printer how far it can move the X/Y axis without hitting something
- Adjusting the bed size to the maximum (TODO: required)
- Adjusting the mesh inset to the maximum
X axis:
- The X axis can move sufficiently far to the right to ensure good probe coverage on the right side of the bed
- This needs to be enabled:
- Setting the maximum X axis movement to XXX (TODO - 245 for mhaas)
- Setting the maximum bed size to 235 (Valdus - is it necessary?)
- Adjust the mesh inset size (requires MRiscoC firmware or similar)
Y Axis:
-
The probe cannot reach the back portion of the bed:
- The probe sits in front of the nozzle
- The bed cannot move back far enough to get the probe to the edge of the bed
- To address this:
- Get a Y=0 offset probe mount
- Subsequently adjusting the mesh inset (requires MRiscoC firmware or similar)
-
The probe cannot reach the front portion of the bed:
- TODO: is this an issue with the stock mount? Is this an issue with Y=0 offset mount?
- If this is an issue: can be addressed by:
- Adjusting bed size and/or max Y axis reach
- Subsequently adjusting the mesh inset