Skip to content

Commit

Permalink
Improved Leveling Corner menu (bigtreetech#2517)
Browse files Browse the repository at this point in the history
  • Loading branch information
kisslorand committed May 16, 2022
1 parent b27c934 commit 9ab569b
Show file tree
Hide file tree
Showing 31 changed files with 114 additions and 51 deletions.
14 changes: 8 additions & 6 deletions Copy to SD Card root directory to update/config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -526,36 +526,38 @@ pause_feedrate:XY6000 Z6000 E600
#### Leveling Settings
# These settings are used for leveling.

## Leveling Edge Distance (Manual Leveling)
## Leveling Edge Distance (Manual Leveling, Leveling Corner)
# Inset distance from bed edges. This distance is added to minimum X & Y bed coordinates and
# subtracted from maximum X & Y bed coordinates to calculate manual leveling points.
# For Leveling Corner, the default distance is the maximum between this setting value and
# the rounded probe offset X/Y values configured in Marlin firmware.
# Unit: [distance in mm]
# Value range: [min: 0, max: 2000]
level_edge_distance:20

## Leveling Z Position (Manual Leveling, Mesh Leveling, Probe/Home Offset, Mesh Tuner)
## Leveling Z Position (Manual Leveling, Leveling Corner, Mesh Leveling, Probe/Home Offset, Mesh Tuner)
# For Manual Leveling and MBL, lower Z axis to this absolute position after reaching a leveling point.
# For Probe/Home Offset and ABL in Mesh Tuner, raise Z axis by this relative position after reaching
# a leveling point.
# Unit: [position in mm]
# Value range: [min: 0.0, max: 2000.0]
level_z_pos:0.2

## Leveling Z Raise (Manual Leveling, Mesh Leveling)
## Leveling Z Raise (Manual Leveling, Leveling Corner, Mesh Leveling)
# Raise Z axis by this relative value before moving to another point during leveling/probing procedures.
# Unit: [distance in mm]
# Value range: [min: 0.0, max: 2000.0]
level_z_raise:10.0

## Leveling Feed Rate (Manual Leveling, Mesh Leveling)
## Leveling Feed Rate (Manual Leveling, Leveling Corner, Mesh Leveling)
# Feedrate to use when moving an axis during leveling/probing procedures.
# Format: [level_feedrate: XY<feedrate> Z<feedrate>]
# Unit: [feedrate in mm/min]
# Value range: [min: 10, max: 12000]
level_feedrate:XY6000 Z6000

#### Inverted Axes (Manual Leveling, Move, Probe Offset)
# Used by Manual Leveling, Move and Probe Offset menus in order axis matches the actual axis movement.
#### Inverted Axes (Manual Leveling, Leveling Corner, Move, Probe Offset)
# Used by Manual Leveling, Leveling Corner, Move and Probe Offset menus in order axis matches the actual axis movement.
#
# NOTE: The Y axis of different printer (move hotbed or move nozzle) move in different directions.
# So Y axis leveling inversion can't follow up inverted_axis[Y_AXIS].
Expand Down
14 changes: 8 additions & 6 deletions Copy to SD Card root directory to update/config_rrf.ini
Original file line number Diff line number Diff line change
Expand Up @@ -499,36 +499,38 @@ pause_feedrate:XY6000 Z6000 E600
#### Leveling Settings
# These settings are used for leveling.

## Leveling Edge Distance (Manual Leveling)
## Leveling Edge Distance (Manual Leveling, Leveling Corner)
# Inset distance from bed edges. This distance is added to minimum X & Y bed coordinates and
# subtracted from maximum X & Y bed coordinates to calculate manual leveling points.
# For Leveling Corner, the default distance is the maximum between this setting value and
# the rounded probe offset X/Y values configured in Marlin firmware.
# Unit: [distance in mm]
# Value range: [min: 0, max: 2000]
level_edge_distance:20

## Leveling Z Position (Manual Leveling, Mesh Leveling, Probe/Home Offset, Mesh Tuner)
## Leveling Z Position (Manual Leveling, Leveling Corner, Mesh Leveling, Probe/Home Offset, Mesh Tuner)
# For Manual Leveling and MBL, lower Z axis to this absolute position after reaching a leveling point.
# For Probe/Home Offset and ABL in Mesh Tuner, raise Z axis by this relative position after reaching
# a leveling point.
# Unit: [position in mm]
# Value range: [min: 0.0, max: 2000.0]
level_z_pos:0.2

## Leveling Z Raise (Manual Leveling, Mesh Leveling)
## Leveling Z Raise (Manual Leveling, Leveling Corner, Mesh Leveling)
# Raise Z axis by this relative value before moving to another point during leveling/probing procedures.
# Unit: [distance in mm]
# Value range: [min: 0.0, max: 2000.0]
level_z_raise:10.0

## Leveling Feed Rate (Manual Leveling, Mesh Leveling)
## Leveling Feed Rate (Manual Leveling, Leveling Corner, Mesh Leveling)
# Feedrate to use when moving an axis during leveling/probing procedures.
# Format: [level_feedrate: XY<feedrate> Z<feedrate>]
# Unit: [feedrate in mm/min]
# Value range: [min: 10, max: 12000]
level_feedrate:XY6000 Z6000

#### Inverted Axes (Manual Leveling, Move, Probe Offset)
# Used by Manual Leveling, Move and Probe Offset menus in order axis matches the actual axis movement.
#### Inverted Axes (Manual Leveling, Leveling Corner, Move, Probe Offset)
# Used by Manual Leveling, Leveling Corner, Move and Probe Offset menus in order axis matches the actual axis movement.
#
# NOTE: The Y axis of different printer (move hotbed or move nozzle) move in different directions.
# So Y axis leveling inversion can't follow up inverted_axis[Y_AXIS].
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/Language.inc
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ X_WORD (ABL_SLOT3)
X_WORD (ABL_SLOT_EEPROM)
X_WORD (ABL_Z)
X_WORD (LEVEL_CORNER)
X_WORD (LEVEL_CORNER_INFO)
X_WORD (P_OFFSET)
X_WORD (H_OFFSET)
X_WORD (DISTANCE)
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_am.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_br.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Salva MESH na EEPROM para ler após inicialização?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "Cantos"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distância"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_ca.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Recordar la ranura per al proper reinici? (Guardar EEPROM)"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_cn.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "距离"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_cz.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Uložit síť do EEPROM a načíst po restartu?"
#define STRING_ABL_Z "Z-Slábnutí"
#define STRING_LEVEL_CORNER "L Rohu"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Od okraje"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_de.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Mesh im EEPROM speichern? (laden nach Neustart)"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Versatz"
#define STRING_H_OFFSET "H Versatz"
#define STRING_DISTANCE "Abstand"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_en.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_es.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_fr.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Se souvenir de l'emplacement au prochain redémarrage ?\n(Sauvegarde EEPROM)"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L Corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "Z Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_gr.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "Αντιστάθμιση P"
#define STRING_H_OFFSET "Αντιστάθμιση H"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_hu.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Emlékezzen a következő újraindításnál? (EEPROM Mentése)"
#define STRING_ABL_Z "Z Áttűnés"
#define STRING_LEVEL_CORNER "Sarok szint"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Eltolás"
#define STRING_H_OFFSET "H Eltolás"
#define STRING_DISTANCE "Távolság"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_it.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Ricordare lo slot al prossimo riavvio? (Salva in EEPROM)"
#define STRING_ABL_Z "Z fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P offset"
#define STRING_H_OFFSET "H offset"
#define STRING_DISTANCE "Distanza"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_jp.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_keywords.h
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,7 @@ extern "C" {
#define LANG_KEY_ABL_SLOT_EEPROM "label_abl_slot_eeprom:"
#define LANG_KEY_ABL_Z "label_abl_z:"
#define LANG_KEY_LEVEL_CORNER "label_level_corner:"
#define LANG_KEY_LEVEL_CORNER_INFO "label_level_corner_info:"
#define LANG_KEY_P_OFFSET "label_p_offset:"
#define LANG_KEY_H_OFFSET "label_h_offset:"
#define LANG_KEY_DISTANCE "label_distance:"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_nl.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Onthoud sleuf voor volgende reboot? (sla op in EEPROM)"
#define STRING_ABL_Z "Z vervagen"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Afstand"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_pl.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Zapisać siatkę do EEPROM aby wczytać po restarcie?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Dystans"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_pt.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_ru.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Восстановить из ячейки при перезагрузке?\n(Сохранить в EEPROM)"
#define STRING_ABL_Z "Z затухание"
#define STRING_LEVEL_CORNER "Прямой угол"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "Отступ P"
#define STRING_H_OFFSET "Отступ H"
#define STRING_DISTANCE "Отступы"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_sk.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_sl.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P odmik"
#define STRING_H_OFFSET "H odmik"
#define STRING_DISTANCE "Distance"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_tc.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Save the mesh to EEPROM to load after reboot?"
#define STRING_ABL_Z "Z Fade"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P軸偏移"
#define STRING_H_OFFSET "H軸偏移"
#define STRING_DISTANCE "距離"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_tr.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Yuvayı hafızaya al? (EEPROM a kaydet)"
#define STRING_ABL_Z "Z Etki"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "P Offset"
#define STRING_H_OFFSET "H Offset"
#define STRING_DISTANCE "Mesafe"
Expand Down
1 change: 1 addition & 0 deletions TFT/src/User/API/Language/language_uk.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
#define STRING_ABL_SLOT_EEPROM "Пам'ятати слот при перезавантаженні? (Зберегти в EEPROM)"
#define STRING_ABL_Z "Z загасання"
#define STRING_LEVEL_CORNER "L corner"
#define STRING_LEVEL_CORNER_INFO "Edge distance is below probe offset X/Y and some target points could be not reachable.\nDo you want to use a safe edge distance?"
#define STRING_P_OFFSET "Відступ P"
#define STRING_H_OFFSET "Відступ H"
#define STRING_DISTANCE "Відступи"
Expand Down
6 changes: 3 additions & 3 deletions TFT/src/User/API/LevelingControl.c
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ void levelingProbePoint(LEVELING_POINT point)

levelingGetPointCoords(coords);

if (coordinateIsKnown() == false)
probeHeightHomeAndRaise(); // home and raise nozzle

if (infoSettings.touchmi_sensor != 0)
{
mustStoreCmd("M401\n");
Expand All @@ -87,9 +90,6 @@ void levelingProbePoint(LEVELING_POINT point)
mustStoreCmd("G30 E1 X%d Y%d\n", coords[point][0], coords[point][1]); // move to selected point
}

mustStoreCmd(ENABLE_STEPPER_CMD);
mustStoreCmd(DISABLE_STEPPER_CMD);

probedPoint = LEVEL_NO_POINT; // reset probedPoint before waiting for new probed Z
}

Expand Down
4 changes: 2 additions & 2 deletions TFT/src/User/API/LevelingControl.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ extern "C" {

#include <stdint.h>

#define ENABLE_STEPPER_CMD "M17 X Y Z\n"
#define DISABLE_STEPPER_CMD "M18 S0 X Y Z\n"
#define LOCK_STEPPER_CMD "M18 S0\n" // set stepper inactivity timeout to infinite just to avoid the steppers are disarmed
#define UNLOCK_STEPPER_CMD "M18\n" // disarm all steppers

typedef enum
{
Expand Down
Loading

0 comments on commit 9ab569b

Please sign in to comment.