====== How to run a Bed Mesh ======
{{tag>faq}}
==== Defining the Bed Mesh ====
We have to have the bed mesh parameter's defined before running a bed mesh. They are stored in [[printer.cfg]]
Example for [[Neptune 4]] and [[Neptune 4 Pro]]:
[bed_mesh]
mesh_min:10,21
mesh_max:210,211
probe_count: 9,9
algorithm:bicubic
bicubic_tension:0.2
mesh_pps: 4, 4
split_delta_z: 0.020
fade_start: 4
fade_end: 12
See the [[Klipper]] docs for more detailed explanations of the parameters.
| probe_count | The number of points in the probed mesh |
| mesh_pps: 4, 4 | Sets the interpolated mesh points between the probed mesh points |
=== Fade ===
In the above example observe we have enabled bed mesh fade. This trims the amount of compensation the bed mesh is applying over a height range. Here the fade starts at Z=4mm and has been completely tapered off and eliminated by Z=12mm.
==== Full Bed Meshes ====
Full bed meshes aren't useful for production printing because they are stale almost immediately, yet they are useful to evaluate the shape of the bed. Having a large probe matrix, such as the Elegoo "Professional" size bed mesh, isn't going to tell us significantly more about the overall bed shape than a 6x6 or 9x9 mesh in less time. We'll want to be using Adaptive Bed Meshes run at print time for production prints and they'll have a denser mesh for just the object size.
==== G29 ====
Note: the G29 gocode is a marlin gcode and not an actual gcode in [[Klipper]], and in Elegoo's distribution of [[printer.cfg]] it may, or may not otherwise, be implemented as a [[macros]]. Klipper instead natively implements the ''BED_MESH_CALIBRATE'' command which features a richer set of parameters and can accomodate [[adaptive_bed_mesh]]. As such consider that using G29 instead of the Klipper command is unreliable and unpredictable as its behavior may change. There's no reason not to use the Klipper correct ''BED_MESH_CALIBRATE''.
==== Full Bed Mesh ====
Run the following in the [[console]] to generate a full bed mesh that you can use to evaluate how flat the bed is compared to the bed level.
G28; Home (optional)
BED_MESH_CLEAR
BED_MESH_CALIBRATE
''BED_MESH_CLEAR'' is realistically optional as the ''BED_MESH_CALIBRATE'' will overwrite the ''default'' or named mesh.
==== Adaptive Bed Meshes ====
Use the following in Orca's Printer Machine Start gcode:
BED_MESH_CLEAR
BED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0
Read the Orca docs on [[https://github.com/SoftFever/OrcaSlicer/wiki/adaptive-bed-mesh|Direct Adaptive Bed Mesh Compensation]]