====== How to run a Bed Mesh ======
{{tag>faq articles setup}}
==== 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 ====
Read the Orca docs on [[https://github.com/SoftFever/OrcaSlicer/wiki/adaptive-bed-mesh|Direct Adaptive Bed Mesh Compensation]]
Use the following in Orca's Printer Machine Start gcode:
BED_MESH_CLEAR
G28
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
While the defaults (-99999,-99999 & 99999,99999) will specify the whole plate is probe-able, this isn't actually the case. If you find the printer tries to probe beyond the plate borders you just need to copy in your bed mesh boundaries to Orca's Printer settings, yet the defaults will work unless you're printing close to the ends of the bed.
== Example for N4 and N4Pro: ==
printer.cfg file
[bed_mesh]
mesh_min:10,21
mesh_max:210,211
Orca Printer Configuration:\\
{{:orca_adaptive_bed_mesh_settings.jpg?465|}}