aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/bed_mesh.py
Commit message (Collapse)AuthorAgeFilesLines
* bed_mesh: Added PROFILE name option (#4522)Randell Hodges2021-08-171-1/+3
| | | | | | | Added optional PROFILE parameter to allow bed_mesh_calibrate to save the mesh directly into the provided profile name instead of default. If omitted, it will be stored in default. Signed-off-by: Randell L Hodges <rhodges@taxfodder.com>
* bed_mesh: Fix off-by-one error in faulty region error reportKevin O'Connor2021-08-171-2/+4
| | | | | | Reported by @craiglink. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: implement BED_MESH_OFFSETEric Callahan2021-06-081-3/+24
| | | | | | The BED_MESH_OFFSET gcode can be used to apply X and/or Y offsets the the mesh lookup. This allows printers with independent extruders to correct the Z adjustment when changing a tool. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: move the "fade offset" out of the ZMeshEric Callahan2021-06-081-15/+9
| | | | | | This is a temporary offset applied to the mesh used to fade toward a "target". For clarity, apply the fade offset when the final z calculation is made. SIgned-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: introduce "faulty_regions" optionArksine2021-04-101-5/+167
| | | | | | Users may define "faulty regions", locations within the mesh where a probed value is unreliable. When bed mesh generates points it will substitute points in faulty regions with up to 4 points nearest to the region. After calibration is complete the Z values at these points will be averaged and assigned to the original value inside the faulty region. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Allow user to clear the relative_reference_index via gcodeArksine2021-04-101-0/+2
| | | | | | If a negative number is specified for the RELATIVE_REFERENCE_INDEX parameter clear the internal relative_reference_index. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Perform initialization from klippy:connect instead of klippy:readyKevin O'Connor2021-04-021-3/+0
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: lookup the toolhead object in "handle_connect"Arksine2021-04-011-1/+4
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* webhooks: Fix use of deprecated Exception.message attribute (#3781)Maël Kerbiriou2021-01-171-2/+2
| | | | | | | | Since Python 2.6, the BaseException.message attribute is deprecated (PEP-352[1]) in favor of e.args[0] or str(e). This commit replaces e.message with str(e). [1] https://www.python.org/dev/peps/pep-0352/ Signed-off-by: Maël Kerbiriou <m431.kerbiriou@gmail.com>
* bed_mesh: add mesh parameters to BED_MESH_CALIBRATEArksine2020-09-151-12/+84
| | | | | | This allows the generated points to be modified prior to probing the bed. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: move algorithm verification to its own methodArksine2020-09-151-6/+11
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: move mesh area configuration to _init_mesh_configArksine2020-09-151-29/+36
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* gcode_move: Move GCodeMove class from gcode.py to new extras moduleKevin O'Connor2020-08-201-1/+1
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* gcode: Split G0/G1 command handling to new gcode_move classKevin O'Connor2020-08-201-2/+5
| | | | | | | | Split up the main GCodeParser class into GCodeDispatch and GCodeMove classes. The GCodeMove class is now available using the "gcode_move" printer object name. This split simplifies the gcode.py code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: Move profile management to its own classArksine2020-07-251-136/+149
| | | | | | This streamlines the BedMeshCalibrate class, making it only resposible for configuring and executing the calibration procedure. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: track the probed_matrix and mesh_params exclusively in the ZMesh ↵Arksine2020-07-251-42/+51
| | | | | | | | class Rather than have multiple classes keep a reference to these items, keep them in the z_mesh. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: differentiate between "mesh_config" and "mesh_params"Arksine2020-07-251-15/+15
| | | | | | This fixes an issue where a new profile is not properly saved after a restart. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: round x and y positions received via the finalize callbackArksine2020-07-251-0/+2
| | | | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com> Update bed_mesh.py
* bed_mesh: add get_status() methodArksine2020-07-251-3/+33
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* extras: Use "from . import module" for relative importsKevin O'Connor2020-06-151-5/+2
| | | | | | Use alternate import syntax to improve Python3 compatibility. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: Improve Python3 compatibilityKevin O'Connor2020-06-151-6/+6
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: Fix typo (#2849)Nathan Plamondon2020-05-111-1/+1
| | | Signed-off-by: Nate Plamondon <nplamondon@gmail.com>
* bed_mesh: Use new GCodeCommand wrappersKevin O'Connor2020-05-051-18/+16
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* gcode: Rename respond() to respond_raw()Kevin O'Connor2020-04-241-3/+3
| | | | | | | | | | | Rename the method to make it more clear that it is a low-level call that should be rarely used. Also, change gcode_button.py, hall_filament_width_sensor.py, and tsl1401cl_filament_width_sensor.py to use respond_info() instead of respond_raw(). Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: Fix typo (#2692)Piotr Usewicz2020-04-141-1/+1
| | | Signed-off-by: Piotr Usewicz <piotr@layer22.com>
* bed_mesh: detect incompatible mesh profilesArksine2020-01-091-5/+28
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: refactor print_generated_points()Arksine2020-01-091-9/+6
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: fix LOAD_PROFILEArksine2020-01-091-4/+10
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Allow the default profile to be removedArksine2020-01-091-1/+1
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: improve interpolation checksArksine2020-01-091-20/+42
| | | | | | Move interpolation checks to _init_mesh_params() so they can be done whle the config is being parsed. Do not allow a probe_count higher than 6 for lagrange interpolation, as this typically leads to oscillation. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Move BED_MESH_MAP to Bedmesh classArksine2020-01-091-27/+23
| | | | | | Don't force probing when BED_MESH_MAP is executed, output the existing mesh. If the user wants to probe each time before a map they can do so with a gcode_macro. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Add x,y offsets to min/max points in probe_finalizeArksine2020-01-091-18/+13
| | | | | | This eliminates the need for the "mesh_params" dict to have references to the x and y offsets. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: refactoringArksine2020-01-091-99/+99
| | | | | | | | Renamed some variables in set_mesh() previous called "mesh_min" and "mesh_max" to alleviate confusion with the config options. Renamed several attributes for clarity. The "calibrate" attribute is now bmc, "probe_params" is now "mesh_params", "probed_z_table" is now "probed_matrix", "mesh_z_table" is now "mesh_matrix". Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: improve logging of generated pointsArksine2020-01-091-20/+33
| | | | | | | | Points are now logged after the printer is ready. The formatting is improved, printing out the point index, and its corresponding automatic and manual points. BED_MESH_OUTPUT now includes a PGP parameter, if PGP=1 the generated points are printed to the terminal. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: add xy offsets to generated pointsArksine2020-01-091-10/+14
| | | | | | Rename min_point, max_point, and bed_radius to mesh_min, mesh_max, and mesh_radius respectively. Add "mesh_origin" option, that allows round beds to specificy the center of the mesh. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: fix error reportingArksine2019-10-221-2/+2
| | | | | | Fix invalid string formatting in the parse_pair() helper. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* probe: ProbePointsHelper adjustable minimum pointsfess2019-05-211-0/+1
| | | | | | | | Factor out minimum required points check for ProbePointsHelper in prep for setting different values for quad_gantry_level and z_tilt_adjust Signed-off-by: John "Fess" Fessenden <fess@fess.org>
* bed_mesh: enable relative offset bed meshes (#1323)Matt Baker2019-03-211-2/+17
| | | | | | | | | Adds parameter for bed meshes to be adjusted relative to a probed point during calibration. This allows the probe z offset to be ignored for probes that are not stable over time (for example, the thermal drift of inductive probes). An endstop other than the probe is then necessary to determine the bed-nozzle offset. Signed-off-by: Matt Baker <baker.matt.j@gmail.com>
* bed_mesh: simplify configurationArksine2019-02-251-6/+3
| | | | | | The 'bed_shape' option has been removed. The user will enter a 'bed_radius' if they have a round be, otherwise they should enter 'min_point' and 'max_point'. When the bed is round the user should supply a 'round_probe_count' option, otherwise just 'probe_count'. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: fix get_position()Arksine2019-02-251-3/+24
| | | | | | Fix a bug where the fade factor is calculated incorrectly when get_position() is called. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: refactor fade_targetArksine2019-02-251-7/+14
| | | | | | Offset the entire mesh by the fade target amount rather than offset each z lookup. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: add support for round bedsArksine2019-02-021-29/+93
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: log when fade completes.Arksine2019-02-021-7/+12
| | | | | | - Also simplify the math for the mesh x and y multipliers. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* klippy: Convert printer_state("connect") to an event handlerKevin O'Connor2019-01-081-4/+5
| | | | | | | Convert all users of the printer_state("connect") handler to register a "klippy:connect" event handler instead. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: Introduce fade_target optionArksine2018-11-301-39/+76
| | | | | | To deal potential z scaling when fade is enabled, a fade_target option has been introduced. This option may either be set to 0.0 or any z position within the range of the mesh. A value of 0.0 will result in previous behavior, where z adjustment phases out until no further adjustment is added. A non-zero value will phase out adjustment until the target has been reached, after which the rest of the print will be offset along the z axis by the fade_target. By default the fade_target will be calculated as an average of the mesh. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Disable z-adjustment fade by default.Arksine2018-11-301-1/+1
| | | | | | Due to various potential issues with fading out z-adjustment, it is better to disable by default and allow users to opt-in. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Fix some fragile identity comparisonsLucas Fink2018-10-311-2/+2
| | | | Signed-off-by: Lucas Fink <software@lfcode.ca>
* bed_mesh: Do not automatically run G28 on BED_MESH_CALIBRATE / BED_MESH_MAPKevin O'Connor2018-10-221-1/+0
| | | | Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
* bed_mesh: save mesh state to 'default' profile after calibrationArksine2018-10-041-2/+12
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>
* bed_mesh: Add ability to save mesh state to persistent memoryArksine2018-10-021-1/+97
| | | | Signed-off-by: Eric Callahan <arksine.code@gmail.com>