Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Region MBL fixes #4765

Merged
merged 10 commits into from
Sep 4, 2024
91 changes: 49 additions & 42 deletions Firmware/Marlin_main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2583,7 +2583,8 @@ static void gcode_G80()
{
constexpr float XY_AXIS_FEEDRATE = (homing_feedrate[X_AXIS] * 3) / 60;
constexpr float Z_LIFT_FEEDRATE = homing_feedrate[Z_AXIS] / 60;
constexpr float Z_CALIBRATION_THRESHOLD = 0.35f;
constexpr float Z_CALIBRATION_THRESHOLD_TIGHT = 0.35f; // used for 7x7 MBL
constexpr float Z_CALIBRATION_THRESHOLD_RELAXED = 1.f; // used for 3x3 MBL
gudnimg marked this conversation as resolved.
Show resolved Hide resolved
constexpr float MESH_HOME_Z_SEARCH_FAST = 0.35f;
st_synchronize();
if (planner_aborted)
Expand Down Expand Up @@ -2618,6 +2619,10 @@ static void gcode_G80()
if (uint8_t codeSeen = code_seen('N'), value = code_value_uint8(); codeSeen && (value == 7 || value == 3))
nMeasPoints = value;

// 7x7 region MBL needs tighter thresholds for triggering a Z realignment. This is because you want to have as little of a misalignment as possible between
// the "inner" MBL region and "outer" MBL region which is interpolated from Z calibration values.
const float Z_CALIBRATION_THRESHOLD = (nMeasPoints == 3) ? Z_CALIBRATION_THRESHOLD_RELAXED : Z_CALIBRATION_THRESHOLD_TIGHT;

uint8_t nProbeRetryCount = eeprom_read_byte((uint8_t*)EEPROM_MBL_PROBE_NR);
if (uint8_t codeSeen = code_seen('C'), value = code_value_uint8(); codeSeen && value >= 1 && value <= 10)
nProbeRetryCount = value;
Expand Down Expand Up @@ -2766,8 +2771,11 @@ static void gcode_G80()
st_synchronize();
static uint8_t g80_fail_cnt = 0;
if (mesh_point != MESH_NUM_X_POINTS * MESH_NUM_Y_POINTS) {
if (g80_fail_cnt++ >= 2) {
kill(_T(MSG_MBL_FAILED_Z_CAL));
if (g80_fail_cnt++ >= 1) {
print_stop();
lcd_show_fullscreen_message_and_wait_P(_T(MSG_MBL_FAILED));
lcd_z_calibration_prompt(false);
goto exit;
}
Sound_MakeSound(e_SOUND_TYPE_StandardAlert);
bool bState;
Expand Down Expand Up @@ -2812,44 +2820,47 @@ static void gcode_G80()
#endif
babystep_apply(); // Apply Z height correction aka baby stepping before mesh bed leveing gets activated.

// Apply the bed level correction to the mesh
bool eeprom_bed_correction_valid = eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1;
auto bedCorrectHelper = [eeprom_bed_correction_valid] (char code, uint8_t *eep_address) -> int8_t {
if (code_seen(code)) {
// Verify value is within allowed range
int16_t temp = code_value_short();
if (abs(temp) > BED_ADJUSTMENT_UM_MAX) {
printf_P(PSTR("%SExcessive bed leveling correction: %i microns\n"), errormagic, temp);
} else {
return (int8_t)temp; // Value is valid, use it
{ // Apply the bed level correction to the mesh
gudnimg marked this conversation as resolved.
Show resolved Hide resolved
bool eeprom_bed_correction_valid = eeprom_read_byte((unsigned char*)EEPROM_BED_CORRECTION_VALID) == 1;
auto bedCorrectHelper = [eeprom_bed_correction_valid] (char code, uint8_t *eep_address) -> int8_t {
if (code_seen(code)) {
// Verify value is within allowed range
int16_t temp = code_value_short();
if (abs(temp) > BED_ADJUSTMENT_UM_MAX) {
printf_P(PSTR("%SExcessive bed leveling correction: %i microns\n"), errormagic, temp);
} else {
return (int8_t)temp; // Value is valid, use it
}
} else if (eeprom_bed_correction_valid) {
return (int8_t)eeprom_read_byte(eep_address);
}
return 0;
};
const int8_t correction[4] = {
bedCorrectHelper('L', (uint8_t*)EEPROM_BED_CORRECTION_LEFT),
bedCorrectHelper('R', (uint8_t*)EEPROM_BED_CORRECTION_RIGHT),
bedCorrectHelper('F', (uint8_t*)EEPROM_BED_CORRECTION_FRONT),
bedCorrectHelper('B', (uint8_t*)EEPROM_BED_CORRECTION_REAR),
};
for (uint8_t row = 0; row < MESH_NUM_Y_POINTS; row++) {
for (uint8_t col = 0; col < MESH_NUM_X_POINTS; col++) {
constexpr float scaler = 0.001f / (MESH_NUM_X_POINTS - 1);
mbl.z_values[row][col] += scaler * (
+ correction[0] * (MESH_NUM_X_POINTS - 1 - col)
+ correction[1] * col
+ correction[2] * (MESH_NUM_Y_POINTS - 1 - row)
+ correction[3] * row);
}
} else if (eeprom_bed_correction_valid) {
return (int8_t)eeprom_read_byte(eep_address);
}
return 0;
};
const int8_t correction[4] = {
bedCorrectHelper('L', (uint8_t*)EEPROM_BED_CORRECTION_LEFT),
bedCorrectHelper('R', (uint8_t*)EEPROM_BED_CORRECTION_RIGHT),
bedCorrectHelper('F', (uint8_t*)EEPROM_BED_CORRECTION_FRONT),
bedCorrectHelper('B', (uint8_t*)EEPROM_BED_CORRECTION_REAR),
};
for (uint8_t row = 0; row < MESH_NUM_Y_POINTS; row++) {
for (uint8_t col = 0; col < MESH_NUM_X_POINTS; col++) {
constexpr float scaler = 0.001f / (MESH_NUM_X_POINTS - 1);
mbl.z_values[row][col] += scaler * (
+ correction[0] * (MESH_NUM_X_POINTS - 1 - col)
+ correction[1] * col
+ correction[2] * (MESH_NUM_Y_POINTS - 1 - row)
+ correction[3] * row);
}
}

mbl.upsample_3x3(); //interpolation from 3x3 to 7x7 points using largrangian polynomials while using the same array z_values[iy][ix] for storing (just coppying measured data to new destination and interpolating between them)

uint8_t useMagnetCompensation = code_seen('M') ? code_value_uint8() : eeprom_read_byte((uint8_t*)EEPROM_MBL_MAGNET_ELIMINATION);
if (nMeasPoints == 7 && useMagnetCompensation) {
mbl_magnet_elimination();
{ // apply magnet compensation
gudnimg marked this conversation as resolved.
Show resolved Hide resolved
uint8_t useMagnetCompensation = code_seen('M') ? code_value_uint8() : eeprom_read_byte((uint8_t*)EEPROM_MBL_MAGNET_ELIMINATION);
if (nMeasPoints == 7 && useMagnetCompensation) {
mbl_magnet_elimination();
}
}

mbl.active = 1; //activate mesh bed leveling
Expand All @@ -2869,6 +2880,7 @@ static void gcode_G80()
plan_buffer_line_curposXYZE(400);
}
#endif // !PINDA_THERMISTOR
exit:
KEEPALIVE_STATE(NOT_BUSY);
// Restore custom message state
lcd_setstatuspgm(MSG_WELCOME);
Expand Down Expand Up @@ -2945,9 +2957,9 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
if (lcd_calibrate_z_end_stop_manual(onlyZ))
{
#endif //TMC2130

lcd_show_fullscreen_message_and_wait_P(_T(MSG_CONFIRM_NOZZLE_CLEAN));
if(onlyZ){
prompt_steel_sheet_on_bed(true);
lcd_display_message_fullscreen_P(_T(MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1));
lcd_puts_at_P(0,3,_n("1/9"));
}else{
Expand All @@ -2966,12 +2978,7 @@ bool gcode_M45(bool onlyZ, int8_t verbosity_level)
if(!onlyZ)
{
KEEPALIVE_STATE(PAUSED_FOR_USER);
#ifdef STEEL_SHEET
uint8_t result = lcd_show_multiscreen_message_yes_no_and_wait_P(_T(MSG_STEEL_SHEET_CHECK), false);
if(result == LCD_LEFT_BUTTON_CHOICE) {
lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_STEEL_SHEET));
}
#endif //STEEL_SHEET
prompt_steel_sheet_on_bed(false);
lcd_show_fullscreen_message_and_wait_P(_T(MSG_PAPER));
KEEPALIVE_STATE(IN_HANDLER);
lcd_display_message_fullscreen_P(_T(MSG_FIND_BED_OFFSET_AND_SKEW_LINE1));
Expand Down
3 changes: 2 additions & 1 deletion Firmware/messages.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ const char MSG_SILENT[] PROGMEM_I1 = ISTR("Silent"); ////MSG_SILENT c=7
const char MSG_NORMAL[] PROGMEM_I1 = ISTR("Normal"); ////MSG_NORMAL c=7
const char MSG_STEALTH[] PROGMEM_I1 = ISTR("Stealth"); ////MSG_STEALTH c=7
const char MSG_STEEL_SHEET_CHECK[] PROGMEM_I1 = ISTR("Is steel sheet on heatbed?"); ////MSG_STEEL_SHEET_CHECK c=20 r=3
const char MSG_Z_CALIBRATION_PROMPT[] PROGMEM_I1 = ISTR("Z calibration recommended. Run it now?"); ////MSG_Z_CALIBRATION_PROMPT c=20 r=3
const char MSG_STOP_PRINT[] PROGMEM_I1 = ISTR("Stop print"); ////MSG_STOP_PRINT c=18
const char MSG_STOPPED[] PROGMEM_I1 = ISTR("STOPPED."); ////MSG_STOPPED c=20
const char MSG_PINDA_CALIBRATION[] PROGMEM_I1 = ISTR("PINDA cal."); ////MSG_PINDA_CALIBRATION c=13
Expand Down Expand Up @@ -211,7 +212,7 @@ extern const char MSG_CHANGED_PRINTER [] PROGMEM_I1 = ISTR("Warning: printer typ
extern const char MSG_CHANGED_BOTH [] PROGMEM_I1 = ISTR("Warning: both printer type and motherboard type changed."); ////MSG_CHANGED_BOTH c=20 r=4
extern const char MSG_DEFAULT_SETTINGS_LOADED [] PROGMEM_I1 = ISTR("Old settings found. Default PID, Esteps etc. will be set."); ////MSG_DEFAULT_SETTINGS_LOADED c=20 r=6
extern const char MSG_FORCE_SELFTEST [] PROGMEM_I1 = ISTR("Selftest will be run to calibrate accurate sensorless rehoming."); ////MSG_FORCE_SELFTEST c=20 r=8
extern const char MSG_MBL_FAILED_Z_CAL [] PROGMEM_I1 = ISTR("Mesh bed leveling failed. Please run Z calibration."); ////MSG_MBL_FAILED_Z_CAL c=20 r=4
extern const char MSG_MBL_FAILED [] PROGMEM_I1 = ISTR("Mesh bed leveling failed. Print canceled."); ////MSG_MBL_FAILED c=20 r=4
extern const char MSG_ZLEVELING_ENFORCED [] PROGMEM_I1 = ISTR("Some problem encountered, Z-leveling enforced ..."); ////MSG_ZLEVELING_ENFORCED c=20 r=4
extern const char MSG_UNLOAD_SUCCESSFUL [] PROGMEM_I1 = ISTR("Was filament unload successful?"); ////MSG_UNLOAD_SUCCESSFUL c=20 r=3
extern const char MSG_CHECK_IDLER [] PROGMEM_I1 = ISTR("Please open idler and remove filament manually."); ////MSG_CHECK_IDLER c=20 r=4
Expand Down
3 changes: 2 additions & 1 deletion Firmware/messages.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ extern const char MSG_SILENT[];
extern const char MSG_NORMAL[];
extern const char MSG_STEALTH[];
extern const char MSG_STEEL_SHEET_CHECK[];
extern const char MSG_Z_CALIBRATION_PROMPT[];
extern const char MSG_STOP_PRINT[];
extern const char MSG_STOPPED[];
extern const char MSG_PINDA_CALIBRATION[];
Expand Down Expand Up @@ -210,7 +211,7 @@ extern const char MSG_CHANGED_PRINTER [];
extern const char MSG_CHANGED_BOTH [];
extern const char MSG_DEFAULT_SETTINGS_LOADED [];
extern const char MSG_FORCE_SELFTEST [];
extern const char MSG_MBL_FAILED_Z_CAL [];
extern const char MSG_MBL_FAILED [];
extern const char MSG_ZLEVELING_ENFORCED [];
extern const char MSG_UNLOAD_SUCCESSFUL [];
extern const char MSG_CHECK_IDLER [];
Expand Down
28 changes: 23 additions & 5 deletions Firmware/ultralcd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3748,6 +3748,22 @@ static void wizard_lay1cal_message(bool cold)
_T(MSG_WIZARD_V2_CAL_2));
}

void lcd_z_calibration_prompt(bool allowTimeouting) {
uint8_t result = lcd_show_multiscreen_message_yes_no_and_wait_P(_T(MSG_Z_CALIBRATION_PROMPT), allowTimeouting, 0);
if (result == LCD_LEFT_BUTTON_CHOICE) {
lcd_mesh_calibration_z();
}
}

void prompt_steel_sheet_on_bed(bool wantedState) {
#ifdef STEEL_SHEET
bool sheetIsOnBed = !lcd_show_multiscreen_message_yes_no_and_wait_P(_T(MSG_STEEL_SHEET_CHECK), false, !wantedState);
if (sheetIsOnBed != wantedState) {
lcd_show_fullscreen_message_and_wait_P(_T(wantedState ? MSG_PLACE_STEEL_SHEET : MSG_REMOVE_STEEL_SHEET));
}
#endif //STEEL_SHEET
}

//! @brief Printer first run wizard (Selftest and calibration)
//!
//!
Expand Down Expand Up @@ -3865,10 +3881,6 @@ void lcd_wizard(WizState state)
case S::Z:
lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_SHIPPING_HELPERS));
lcd_show_fullscreen_message_and_wait_P(_T(MSG_REMOVE_TEST_PRINT));
wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(_T(MSG_STEEL_SHEET_CHECK), false);
if (wizard_event == LCD_MIDDLE_BUTTON_CHOICE) {
lcd_show_fullscreen_message_and_wait_P(_T(MSG_PLACE_STEEL_SHEET));
}
lcd_show_fullscreen_message_and_wait_P(_T(MSG_WIZARD_Z_CAL));
wizard_event = gcode_M45(true, 0);
if (!wizard_event) {
Expand Down Expand Up @@ -5533,10 +5545,16 @@ static void lcd_mesh_bed_leveling_settings()

bool magnet_elimination = (eeprom_read_byte((uint8_t*)EEPROM_MBL_MAGNET_ELIMINATION) > 0);
uint8_t points_nr = eeprom_read_byte((uint8_t*)EEPROM_MBL_POINTS_NR);
uint8_t mbl_z_probe_nr = eeprom_read_byte((uint8_t*)EEPROM_MBL_PROBE_NR);
uint8_t mbl_z_probe_nr = eeprom_read_byte((uint8_t*)EEPROM_MBL_PROBE_NR);
char sToggle[4]; //enough for nxn format

MENU_BEGIN();
ON_MENU_LEAVE(
// Prompt user to run Z calibration for best results with region MBL.
if (points_nr == 7) {
lcd_z_calibration_prompt(true);
}
);
MENU_ITEM_BACK_P(_T(MSG_SETTINGS));
sToggle[0] = points_nr + '0';
sToggle[1] = 'x';
Expand Down
3 changes: 3 additions & 0 deletions Firmware/ultralcd.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,9 @@ void lcd_temp_calibration_set();
void lcd_language();
#endif

void lcd_z_calibration_prompt(bool allowTimeouting);
void prompt_steel_sheet_on_bed(bool wantedState);

void lcd_wizard();

//! @brief Wizard state
Expand Down
9 changes: 7 additions & 2 deletions lang/po/Firmware.pot
Original file line number Diff line number Diff line change
Expand Up @@ -1203,9 +1203,9 @@ msgstr ""
msgid "Mesh Bed Leveling"
msgstr ""

#. MSG_MBL_FAILED_Z_CAL c=20 r=4
#. MSG_MBL_FAILED c=20 r=4
#: ../../Firmware/Marlin_main.cpp:3038 ../../Firmware/messages.cpp:203
msgid "Mesh bed leveling failed. Please run Z calibration."
msgid "Mesh bed leveling failed. Print canceled."
msgstr ""

#. MSG_MODE c=6
Expand Down Expand Up @@ -2452,6 +2452,11 @@ msgstr ""
msgid "You can always resume the Wizard from Calibration -> Wizard."
msgstr ""

#. MSG_Z_CALIBRATION_PROMPT c=20 r=3
#: ../../Firmware/messages.cpp:128 ../../Firmware/ultralcd.cpp:3752
msgid "Z calibration recommended. Run it now?"
msgstr ""

#. MSG_Z_CORRECTION c=13
#: ../../Firmware/messages.cpp:306 ../../Firmware/ultralcd.cpp:3988
msgid "Z-correct"
Expand Down
11 changes: 8 additions & 3 deletions lang/po/Firmware_cs.po
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
msgid "Auto"
msgstr "Auto"

#. MSG_AUTO_HOME c=18

Check notice on line 86 in lang/po/Firmware_cs.po

View workflow job for this annotation

GitHub Actions / check-lang

Translation same as original text
#: ../../Firmware/Marlin_main.cpp:3198 ../../Firmware/messages.cpp:12
#: ../../Firmware/ultralcd.cpp:4577 ../../Firmware/ultralcd.cpp:5529
msgid "Auto home"
Expand Down Expand Up @@ -545,7 +545,7 @@
msgid "F. jam detect"
msgstr "Det. záseku"

#. MSG_FSENSOR_RUNOUT c=13

Check notice on line 548 in lang/po/Firmware_cs.po

View workflow job for this annotation

GitHub Actions / check-lang

Translation same as original text
#: ../../Firmware/messages.cpp:48 ../../Firmware/ultralcd.cpp:4043
#: ../../Firmware/ultralcd.cpp:4050
msgid "F. runout"
Expand All @@ -570,7 +570,7 @@
"Při vyjmutí filamentu se nevypnula FINDA. Zkuste ruční vyjmutí. Ujistěte se,"
" že se filament nezasekl a FINDA funguje."

#. MSG_DESC_FINDA_DIDNT_TRIGGER c=20 r=8

Check notice on line 573 in lang/po/Firmware_cs.po

View workflow job for this annotation

GitHub Actions / check-lang

Differing last punctuation character: (. => ?)
#: ../../Firmware/mmu2/errors_list.h:242 ../../Firmware/mmu2/errors_list.h:298
msgid ""
"FINDA didn't trigger while loading the filament. Ensure the filament can "
Expand Down Expand Up @@ -1171,7 +1171,7 @@
msgid "Mesh"
msgstr "Mesh"

#. MSG_MESH_BED_LEVELING c=18

Check notice on line 1174 in lang/po/Firmware_cs.po

View workflow job for this annotation

GitHub Actions / check-lang

Translation same as original text
#: ../../Firmware/messages.cpp:167 ../../Firmware/ultralcd.cpp:4488
#: ../../Firmware/ultralcd.cpp:4587
msgid "Mesh Bed Leveling"
Expand Down Expand Up @@ -1700,7 +1700,7 @@
msgid "QUEUE FULL"
msgstr "FRONTA PLNA"

#. MSG_RPI_PORT c=13

Check notice on line 1703 in lang/po/Firmware_cs.po

View workflow job for this annotation

GitHub Actions / check-lang

Translation same as original text
#: ../../Firmware/messages.cpp:161 ../../Firmware/ultralcd.cpp:4498
msgid "RPi port"
msgstr "RPi port"
Expand Down Expand Up @@ -1855,7 +1855,7 @@
msgid "Selecting fil. slot"
msgstr "Výběr fil. slot"

#. MSG_SELFTEST_OK c=20

Check notice on line 1858 in lang/po/Firmware_cs.po

View workflow job for this annotation

GitHub Actions / check-lang

Translation same as original text
#: ../../Firmware/messages.cpp:341 ../../Firmware/ultralcd.cpp:6274
msgid "Selftest OK"
msgstr "Selftest OK"
Expand Down Expand Up @@ -2223,7 +2223,7 @@
msgid "Voltages"
msgstr "Napětí"

#. MSG_TITLE_TMC_WARNING_TMC_TOO_HOT c=20

Check notice on line 2226 in lang/po/Firmware_cs.po

View workflow job for this annotation

GitHub Actions / check-lang

Differing last punctuation character: (T => !)
#: ../../Firmware/mmu2/errors_list.h:151 ../../Firmware/mmu2/errors_list.h:205
#: ../../Firmware/mmu2/errors_list.h:206 ../../Firmware/mmu2/errors_list.h:207
msgid "WARNING TMC TOO HOT"
Expand Down Expand Up @@ -2551,10 +2551,10 @@
msgid "Sensitivity"
msgstr "Citlivost"

#. MSG_MBL_FAILED_Z_CAL c=20 r=4
#. MSG_MBL_FAILED c=20 r=4
#: ../../Firmware/Marlin_main.cpp:3038 ../../Firmware/messages.cpp:203
msgid "Mesh bed leveling failed. Please run Z calibration."
msgstr "Mesh Bed Leveling selhal. Spusťte kalibraci osy Z."
msgid "Mesh bed leveling failed. Print canceled."
msgstr "Mesh Bed Leveling selhal. Tisk zrušen."

#. MSG_SET_READY c=18
#: ../../Firmware/messages.cpp:105 ../../Firmware/ultralcd.cpp:5265
Expand Down Expand Up @@ -2602,6 +2602,11 @@
msgid "There is no filament loaded. Print cancelled."
msgstr "Není vložen filament. Tisk zrušen."

#. MSG_Z_CALIBRATION_PROMPT c=20 r=3
#: ../../Firmware/messages.cpp:128 ../../Firmware/ultralcd.cpp:3752
msgid "Z calibration recommended. Run it now?"
msgstr "Doporučujeme kalibraci osy Z. Spustit nyní?"

#~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Vyjmete stary filament a stisknete tlacitko pro zavedeni noveho."

Expand Down
11 changes: 8 additions & 3 deletions lang/po/Firmware_de.po
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@
msgid "FINDA DIDNT TRIGGER"
msgstr "FINDA N. AUSGELÖST"

#. MSG_DESC_FINDA_FILAMENT_STUCK c=20 r=8

Check notice on line 566 in lang/po/Firmware_de.po

View workflow job for this annotation

GitHub Actions / check-lang

Differing last punctuation character: (. => ?)
#: ../../Firmware/mmu2/errors_list.h:243 ../../Firmware/mmu2/errors_list.h:299
msgid ""
"FINDA didn't switch off while unloading filament. Try unloading manually. "
Expand Down Expand Up @@ -700,7 +700,7 @@
msgid "Filament sensor"
msgstr "Filament-Sensor"

#. MSG_DESC_FSENSOR_FILAMENT_STUCK c=20 r=8

Check notice on line 703 in lang/po/Firmware_de.po

View workflow job for this annotation

GitHub Actions / check-lang

Differing last punctuation character: (. => ?)
#: ../../Firmware/mmu2/errors_list.h:245 ../../Firmware/mmu2/errors_list.h:301
msgid ""
"Filament sensor didn't switch off while unloading filament. Ensure filament "
Expand Down Expand Up @@ -1491,7 +1491,7 @@
"Lesen Sie unser Handbuch und beheben Sie das Problem. Fahren Sie dann mit "
"dem Assistenten fort, indem Sie den Drucker neu starten."

#. MSG_CHECK_IR_CONNECTION c=20 r=4

Check notice on line 1494 in lang/po/Firmware_de.po

View workflow job for this annotation

GitHub Actions / check-lang

Differing last punctuation character: (. => ?)
#: ../../Firmware/messages.cpp:337 ../../Firmware/ultralcd.cpp:6023
msgid "Please check the IR sensor connection, unload filament if present."
msgstr "IR Sensor Verbindungen über- prüfen. Ist Filament entladen?"
Expand Down Expand Up @@ -2579,10 +2579,10 @@
msgid "Sensitivity"
msgstr "Sensitivität"

#. MSG_MBL_FAILED_Z_CAL c=20 r=4
#. MSG_MBL_FAILED c=20 r=4
#: ../../Firmware/Marlin_main.cpp:3038 ../../Firmware/messages.cpp:203
msgid "Mesh bed leveling failed. Please run Z calibration."
msgstr "MeshBett Ausgleich fehlgeschlagen. Z Kalibrierung ausführen."
msgid "Mesh bed leveling failed. Print canceled."
msgstr "MeshBett Ausgleich fehlgeschlagen. Druck abgebrochen."

#. MSG_SET_READY c=18
#: ../../Firmware/messages.cpp:105 ../../Firmware/ultralcd.cpp:5265
Expand Down Expand Up @@ -2630,6 +2630,11 @@
msgid "There is no filament loaded. Print cancelled."
msgstr "Kein Filament geladen. Druck abgebrochen."

#. MSG_Z_CALIBRATION_PROMPT c=20 r=3
#: ../../Firmware/messages.cpp:128 ../../Firmware/ultralcd.cpp:3752
msgid "Z calibration recommended. Run it now?"
msgstr "Z-Kalibrierung empfohlen. Jetzt ausführen?"

#~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Entferne das alte Fil. und drücke den Knopf, um das neue zu laden."

Expand Down
11 changes: 8 additions & 3 deletions lang/po/Firmware_es.po
Original file line number Diff line number Diff line change
Expand Up @@ -2574,10 +2574,10 @@ msgstr ""
msgid "Sensitivity"
msgstr "Sensibilidad"

#. MSG_MBL_FAILED_Z_CAL c=20 r=4
#. MSG_MBL_FAILED c=20 r=4
#: ../../Firmware/Marlin_main.cpp:3038 ../../Firmware/messages.cpp:203
msgid "Mesh bed leveling failed. Please run Z calibration."
msgstr "Nivelación fallida. Ejecute la calibración Z."
msgid "Mesh bed leveling failed. Print canceled."
msgstr "Nivelación fallida. Impresión cancelada."

#. MSG_SET_READY c=18
#: ../../Firmware/messages.cpp:105 ../../Firmware/ultralcd.cpp:5265
Expand Down Expand Up @@ -2625,6 +2625,11 @@ msgstr "No hay ningún filamento cargado. ¿Continuar?"
msgid "There is no filament loaded. Print cancelled."
msgstr "No hay ningún filamento cargado. Impresión cancelada."

#. MSG_Z_CALIBRATION_PROMPT c=20 r=3
#: ../../Firmware/messages.cpp:128 ../../Firmware/ultralcd.cpp:3752
msgid "Z calibration recommended. Run it now?"
msgstr "Se recomienda calibrar Z. ¿Ejecutarlo ahora?"

#~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr ""
#~ "Retira el fil. viejo y presiona el dial para comenzar a cargar el nuevo."
Expand Down
11 changes: 8 additions & 3 deletions lang/po/Firmware_fr.po
Original file line number Diff line number Diff line change
Expand Up @@ -2586,10 +2586,10 @@ msgstr ""
msgid "Sensitivity"
msgstr "Sensibilité"

#. MSG_MBL_FAILED_Z_CAL c=20 r=4
#. MSG_MBL_FAILED c=20 r=4
#: ../../Firmware/Marlin_main.cpp:3038 ../../Firmware/messages.cpp:203
msgid "Mesh bed leveling failed. Please run Z calibration."
msgstr "Mesh bed leveling a échoué. Veuillez procéder à l'étalonnage Z."
msgid "Mesh bed leveling failed. Print canceled."
msgstr "Mesh bed leveling a échoué. Impression annulée."

#. MSG_SET_READY c=18
#: ../../Firmware/messages.cpp:105 ../../Firmware/ultralcd.cpp:5265
Expand Down Expand Up @@ -2637,6 +2637,11 @@ msgstr "Il n'y a pas de filament chargé. Continuer?"
msgid "There is no filament loaded. Print cancelled."
msgstr "Il n'y a pas de filament chargé. Impression annulée."

#. MSG_Z_CALIBRATION_PROMPT c=20 r=3
#: ../../Firmware/messages.cpp:128 ../../Firmware/ultralcd.cpp:3752
msgid "Z calibration recommended. Run it now?"
msgstr "Calibrage Z recommandé. Exécuter maintenant?"

#~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr ""
#~ "Retirez l'ancien fil. puis appuyez sur le bouton pour charger le nouveau."
Expand Down
11 changes: 8 additions & 3 deletions lang/po/Firmware_hr.po
Original file line number Diff line number Diff line change
Expand Up @@ -2568,10 +2568,10 @@ msgstr "Promjena filamenta M600. Stavite novu nit ili izbacite staru."
msgid "Sensitivity"
msgstr "Osjetljivost"

#. MSG_MBL_FAILED_Z_CAL c=20 r=4
#. MSG_MBL_FAILED c=20 r=4
#: ../../Firmware/Marlin_main.cpp:3038 ../../Firmware/messages.cpp:203
msgid "Mesh bed leveling failed. Please run Z calibration."
msgstr "Niveliranje podloge nije uspijelo. Pokrenite Z kalibraciju."
msgid "Mesh bed leveling failed. Print canceled."
msgstr "Niveliranje podloge nije uspijelo. Print je otkazan."

#. MSG_SET_READY c=18
#: ../../Firmware/messages.cpp:105 ../../Firmware/ultralcd.cpp:5265
Expand Down Expand Up @@ -2619,6 +2619,11 @@ msgstr "Nema umetnute niti. Nastavite?"
msgid "There is no filament loaded. Print cancelled."
msgstr "Nema umetnute niti. Print je otkazan."

#. MSG_Z_CALIBRATION_PROMPT c=20 r=3
#: ../../Firmware/messages.cpp:128 ../../Firmware/ultralcd.cpp:3752
msgid "Z calibration recommended. Run it now?"
msgstr "Preporuča se Z kalibracija. Pokrenuti ga sada?"

#~ msgid "Remove old filament and press the knob to start loading new filament."
#~ msgstr "Uklonite stari fil. i pritisnite gumb za pocetak stavljanja novog."

Expand Down
Loading