Merge branch 'MK3' into MK3_NEW_SD_COMPILATION

This commit is contained in:
Alex Voinea 2021-02-26 09:48:46 +02:00
commit 7faffa539a
No known key found for this signature in database
GPG key ID: F5034E7CFCF2F973
16 changed files with 877 additions and 746 deletions

View file

@ -328,6 +328,11 @@ const unsigned int dropsegments=5; //everything with less than this number of st
// Control heater 0 and heater 1 in parallel. // Control heater 0 and heater 1 in parallel.
//#define HEATERS_PARALLEL //#define HEATERS_PARALLEL
//LCD status clock interval timer to switch between
// remaining print time
// and time to change/pause/interaction
#define CLOCK_INTERVAL_TIME 5
//=========================================================================== //===========================================================================
//=============================Buffers ============================ //=============================Buffers ============================
//=========================================================================== //===========================================================================

View file

@ -366,6 +366,8 @@ extern uint8_t print_percent_done_normal;
extern uint16_t print_time_remaining_normal; extern uint16_t print_time_remaining_normal;
extern uint8_t print_percent_done_silent; extern uint8_t print_percent_done_silent;
extern uint16_t print_time_remaining_silent; extern uint16_t print_time_remaining_silent;
extern uint16_t print_time_to_change_normal;
extern uint16_t print_time_to_change_silent;
#define PRINT_TIME_REMAINING_INIT 0xffff #define PRINT_TIME_REMAINING_INIT 0xffff
@ -437,7 +439,6 @@ extern void cancel_saved_printing();
//estimated time to end of the print //estimated time to end of the print
extern uint16_t print_time_remaining();
extern uint8_t calc_percent_done(); extern uint8_t calc_percent_done();

View file

@ -316,6 +316,8 @@ uint8_t print_percent_done_normal = PRINT_PERCENT_DONE_INIT;
uint16_t print_time_remaining_normal = PRINT_TIME_REMAINING_INIT; //estimated remaining print time in minutes uint16_t print_time_remaining_normal = PRINT_TIME_REMAINING_INIT; //estimated remaining print time in minutes
uint8_t print_percent_done_silent = PRINT_PERCENT_DONE_INIT; uint8_t print_percent_done_silent = PRINT_PERCENT_DONE_INIT;
uint16_t print_time_remaining_silent = PRINT_TIME_REMAINING_INIT; //estimated remaining print time in minutes uint16_t print_time_remaining_silent = PRINT_TIME_REMAINING_INIT; //estimated remaining print time in minutes
uint16_t print_time_to_change_normal = PRINT_TIME_REMAINING_INIT; //estimated remaining time to next change in minutes
uint16_t print_time_to_change_silent = PRINT_TIME_REMAINING_INIT; //estimated remaining time to next change in minutes
uint32_t IP_address = 0; uint32_t IP_address = 0;
@ -707,110 +709,82 @@ void softReset()
#endif #endif
static void factory_reset_stats(){
eeprom_update_dword((uint32_t *)EEPROM_TOTALTIME, 0);
eeprom_update_dword((uint32_t *)EEPROM_FILAMENTUSED, 0);
eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_X, 0);
eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_Y, 0);
eeprom_update_byte((uint8_t *)EEPROM_FERROR_COUNT, 0);
eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0);
eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_X_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_Y_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_FERROR_COUNT_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_POWER_COUNT_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_MMU_FAIL_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_MMU_LOAD_FAIL_TOT, 0);
eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0);
eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
}
// Factory reset function // Factory reset function
// This function is used to erase parts or whole EEPROM memory which is used for storing calibration and and so on. // This function is used to erase parts or whole EEPROM memory which is used for storing calibration and and so on.
// Level input parameter sets depth of reset // Level input parameter sets depth of reset
static void factory_reset(char level) static void factory_reset(char level)
{ {
lcd_clear(); lcd_clear();
switch (level) { Sound_MakeCustom(100,0,false);
switch (level) {
// Level 0: Language reset
case 0:
Sound_MakeCustom(100,0,false);
lang_reset();
break;
//Level 1: Reset statistics
case 1:
Sound_MakeCustom(100,0,false);
eeprom_update_dword((uint32_t *)EEPROM_TOTALTIME, 0);
eeprom_update_dword((uint32_t *)EEPROM_FILAMENTUSED, 0);
eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_X, 0); case 0: // Level 0: Language reset
eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_Y, 0); lang_reset();
eeprom_update_byte((uint8_t *)EEPROM_FERROR_COUNT, 0); break;
eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0);
eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_X_TOT, 0); case 1: //Level 1: Reset statistics
eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_Y_TOT, 0); factory_reset_stats();
eeprom_update_word((uint16_t *)EEPROM_FERROR_COUNT_TOT, 0); lcd_menu_statistics();
eeprom_update_word((uint16_t *)EEPROM_POWER_COUNT_TOT, 0); break;
eeprom_update_word((uint16_t *)EEPROM_MMU_FAIL_TOT, 0); case 2: // Level 2: Prepare for shipping
eeprom_update_word((uint16_t *)EEPROM_MMU_LOAD_FAIL_TOT, 0); factory_reset_stats();
eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0); // [[fallthrough]] // there is no break intentionally
eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0); case 4: // Level 4: Preparation after being serviced
// Force language selection at the next boot up.
lang_reset();
lcd_menu_statistics(); // Force the "Follow calibration flow" message at the next boot up.
calibration_status_store(CALIBRATION_STATUS_Z_CALIBRATION);
break; eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 2); //run wizard
farm_mode = false;
// Level 2: Prepare for shipping eeprom_update_byte((uint8_t*)EEPROM_FARM_MODE, farm_mode);
case 2:
//lcd_puts_P(PSTR("Factory RESET"));
//lcd_puts_at_P(1,2,PSTR("Shipping prep"));
// Force language selection at the next boot up.
lang_reset();
// Force the "Follow calibration flow" message at the next boot up.
calibration_status_store(CALIBRATION_STATUS_Z_CALIBRATION);
eeprom_write_byte((uint8_t*)EEPROM_WIZARD_ACTIVE, 1); //run wizard
farm_mode = false;
eeprom_update_byte((uint8_t*)EEPROM_FARM_MODE, farm_mode);
eeprom_update_dword((uint32_t *)EEPROM_TOTALTIME, 0);
eeprom_update_dword((uint32_t *)EEPROM_FILAMENTUSED, 0);
eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_X, 0);
eeprom_update_byte((uint8_t *)EEPROM_CRASH_COUNT_Y, 0);
eeprom_update_byte((uint8_t *)EEPROM_FERROR_COUNT, 0);
eeprom_update_byte((uint8_t *)EEPROM_POWER_COUNT, 0);
eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_X_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_CRASH_COUNT_Y_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_FERROR_COUNT_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_POWER_COUNT_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_MMU_FAIL_TOT, 0);
eeprom_update_word((uint16_t *)EEPROM_MMU_LOAD_FAIL_TOT, 0);
eeprom_update_byte((uint8_t *)EEPROM_MMU_FAIL, 0);
eeprom_update_byte((uint8_t *)EEPROM_MMU_LOAD_FAIL, 0);
#ifdef FILAMENT_SENSOR #ifdef FILAMENT_SENSOR
fsensor_enable(); fsensor_enable();
fsensor_autoload_set(true); fsensor_autoload_set(true);
#endif //FILAMENT_SENSOR #endif //FILAMENT_SENSOR
Sound_MakeCustom(100,0,false); break;
//_delay_ms(2000); case 3:
break; menu_progressbar_init(EEPROM_TOP, PSTR("ERASING all data"));
Sound_MakeCustom(100,0,false);
// Level 3: erase everything, whole EEPROM will be set to 0xFF
// Erase EEPROM
case 3: for (uint16_t i = 0; i < EEPROM_TOP; i++) {
menu_progressbar_init(EEPROM_TOP, PSTR("ERASING all data")); eeprom_update_byte((uint8_t*)i, 0xFF);
Sound_MakeCustom(100,0,false); menu_progressbar_update(i);
}
// Erase EEPROM menu_progressbar_finish();
for (uint16_t i = 0; i < EEPROM_TOP; i++) { softReset();
eeprom_update_byte((uint8_t*)i, 0xFF); break;
menu_progressbar_update(i);
}
menu_progressbar_finish();
softReset();
break;
case 4:
bowden_menu();
break;
default:
break;
}
#ifdef SNMM
case 5:
bowden_menu();
break;
#endif
default:
break;
}
} }
extern "C" { extern "C" {
@ -841,30 +815,27 @@ void factory_reset()
{ {
lcd_clear(); lcd_clear();
lcd_puts_P(PSTR("Factory RESET")); lcd_puts_P(PSTR("Factory RESET"));
SET_OUTPUT(BEEPER); SET_OUTPUT(BEEPER);
if(eSoundMode!=e_SOUND_MODE_SILENT) if(eSoundMode!=e_SOUND_MODE_SILENT)
WRITE(BEEPER, HIGH); WRITE(BEEPER, HIGH);
while (!READ(BTN_ENC)); while (!READ(BTN_ENC));
WRITE(BEEPER, LOW); WRITE(BEEPER, LOW);
_delay_ms(2000); _delay_ms(2000);
char level = reset_menu(); char level = reset_menu();
factory_reset(level); factory_reset(level);
switch (level) { switch (level) {
case 0: _delay_ms(0); break; case 0:
case 1: _delay_ms(0); break; case 1:
case 2: _delay_ms(0); break; case 2:
case 3: _delay_ms(0); break; case 3:
case 4: _delay_ms(0); break;
} }
} }
@ -1577,7 +1548,7 @@ void setup()
lcd_show_fullscreen_message_and_wait_P(_i("Old settings found. Default PID, Esteps etc. will be set.")); //if EEPROM version or printer type was changed, inform user that default setting were loaded////MSG_DEFAULT_SETTINGS_LOADED c=20 r=5 lcd_show_fullscreen_message_and_wait_P(_i("Old settings found. Default PID, Esteps etc. will be set.")); //if EEPROM version or printer type was changed, inform user that default setting were loaded////MSG_DEFAULT_SETTINGS_LOADED c=20 r=5
Config_StoreSettings(); Config_StoreSettings();
} }
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) { if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) >= 1) {
lcd_wizard(WizState::Run); lcd_wizard(WizState::Run);
} }
if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 0) { //dont show calibration status messages if wizard is currently active if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 0) { //dont show calibration status messages if wizard is currently active
@ -1839,8 +1810,7 @@ void loop()
} }
#ifdef FANCHECK #ifdef FANCHECK
if (fan_check_error && isPrintPaused) if (fan_check_error && isPrintPaused && !IS_SD_PRINTING) {
{
KEEPALIVE_STATE(PAUSED_FOR_USER); KEEPALIVE_STATE(PAUSED_FOR_USER);
host_keepalive(); //prevent timeouts since usb processing is disabled until print is resumed. This is for a crude way of pausing a print on all hosts. host_keepalive(); //prevent timeouts since usb processing is disabled until print is resumed. This is for a crude way of pausing a print on all hosts.
} }
@ -3747,12 +3717,13 @@ There are reasons why some G Codes aren't in numerical order.
void process_commands() void process_commands()
{ {
#ifdef FANCHECK #ifdef FANCHECK
if(fan_check_error == EFCE_DETECTED){ if(fan_check_error == EFCE_DETECTED) {
fan_check_error = EFCE_REPORTED; fan_check_error = EFCE_REPORTED;
// SERIAL_PROTOCOLLNRPGM(MSG_OCTOPRINT_PAUSED); if (is_usb_printing)
lcd_pause_print(); lcd_pause_usb_print();
cmdqueue_serial_disabled = true; else
} lcd_pause_print();
}
#endif #endif
if (!buflen) return; //empty command if (!buflen) return; //empty command
@ -3783,31 +3754,90 @@ void process_commands()
float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD; float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD;
int8_t SilentMode; int8_t SilentMode;
#endif #endif
/*! /*!
---------------------------------------------------------------------------------
### M117 - Display Message <a href="https://reprap.org/wiki/G-code#M117:_Display_Message">M117: Display Message</a>
This causes the given message to be shown in the status line on an attached LCD.
It is processed early as to allow printing messages that contain G, M, N or T.
---------------------------------------------------------------------------------
### Special internal commands
These are used by internal functions to process certain actions in the right order. Some of these are also usable by the user.
They are processed early as the commands are complex (strings).
These are only available on the MK3(S) as these require TMC2130 drivers:
- CRASH DETECTED
- CRASH RECOVER
- CRASH_CANCEL
- TMC_SET_WAVE
- TMC_SET_STEP
- TMC_SET_CHOP
*/
if (code_seen_P(PSTR("M117"))) //moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^"
{
starpos = (strchr(strchr_pointer + 5, '*'));
if (starpos != NULL)
*(starpos) = '\0';
lcd_setstatus(strchr_pointer + 5);
custom_message_type = CustomMsg::MsgUpdate;
}
/*!
### M0, M1 - Stop the printer <a href="https://reprap.org/wiki/G-code#M0:_Stop_or_Unconditional_stop">M0: Stop or Unconditional stop</a>
#### Usage
M0 [P<ms<] [S<sec>] [string]
M1 [P<ms>] [S<sec>] [string]
#### Parameters
--------------------------------------------------------------------------------- - `P<ms>` - Expire time, in milliseconds
### M117 - Display Message <a href="https://reprap.org/wiki/G-code#M117:_Display_Message">M117: Display Message</a> - `S<sec>` - Expire time, in seconds
This causes the given message to be shown in the status line on an attached LCD. - `string` - Must for M1 and optional for M0 message to display on the LCD
It is processed early as to allow printing messages that contain G, M, N or T. */
--------------------------------------------------------------------------------- else if (code_seen_P(PSTR("M0")) || code_seen_P(PSTR("M1 "))) {// M0 and M1 - (Un)conditional stop - Wait for user button press on LCD
### Special internal commands char *src = strchr_pointer + 2;
These are used by internal functions to process certain actions in the right order. Some of these are also usable by the user. codenum = 0;
They are processed early as the commands are complex (strings). bool hasP = false, hasS = false;
These are only available on the MK3(S) as these require TMC2130 drivers: if (code_seen('P')) {
- CRASH DETECTED codenum = code_value(); // milliseconds to wait
- CRASH RECOVER hasP = codenum > 0;
- CRASH_CANCEL }
- TMC_SET_WAVE if (code_seen('S')) {
- TMC_SET_STEP codenum = code_value() * 1000; // seconds to wait
- TMC_SET_CHOP hasS = codenum > 0;
*/ }
if (code_seen_P(PSTR("M117"))) { //moved to highest priority place to be able to to print strings which includes "G", "PRUSA" and "^" starpos = strchr(src, '*');
starpos = (strchr(strchr_pointer + 5, '*')); if (starpos != NULL) *(starpos) = '\0';
if (starpos != NULL) while (*src == ' ') ++src;
*(starpos) = '\0'; custom_message_type = CustomMsg::M0Wait;
lcd_setstatus(strchr_pointer + 5); if (!hasP && !hasS && *src != '\0') {
} lcd_setstatus(src);
} else {
LCD_MESSAGERPGM(_i("Wait for user..."));////MSG_USERWAIT
}
lcd_ignore_click(); //call lcd_ignore_click aslo for else ???
st_synchronize();
previous_millis_cmd = _millis();
if (codenum > 0) {
codenum += _millis(); // keep track of when we started waiting
KEEPALIVE_STATE(PAUSED_FOR_USER);
while(_millis() < codenum && !lcd_clicked()) {
manage_heater();
manage_inactivity(true);
lcd_update(0);
}
KEEPALIVE_STATE(IN_HANDLER);
lcd_ignore_click(false);
} else {
marlin_wait_for_click();
}
if (IS_SD_PRINTING)
custom_message_type = CustomMsg::Status;
else
LCD_MESSAGERPGM(_T(WELCOME_MSG));
}
#ifdef TMC2130 #ifdef TMC2130
else if (strncmp_P(CMDBUFFER_CURRENT_STRING, PSTR("CRASH_"), 6) == 0) else if (strncmp_P(CMDBUFFER_CURRENT_STRING, PSTR("CRASH_"), 6) == 0)
@ -5666,60 +5696,10 @@ if(eSoundMode!=e_SOUND_MODE_SILENT)
switch(mcode_in_progress) switch(mcode_in_progress)
{ {
/*!
### M0, M1 - Stop the printer <a href="https://reprap.org/wiki/G-code#M0:_Stop_or_Unconditional_stop">M0: Stop or Unconditional stop</a>
*/
case 0: // M0 - Unconditional stop - Wait for user button press on LCD
case 1: // M1 - Conditional stop - Wait for user button press on LCD
{
char *src = strchr_pointer + 2;
codenum = 0;
bool hasP = false, hasS = false;
if (code_seen('P')) {
codenum = code_value(); // milliseconds to wait
hasP = codenum > 0;
}
if (code_seen('S')) {
codenum = code_value() * 1000; // seconds to wait
hasS = codenum > 0;
}
starpos = strchr(src, '*');
if (starpos != NULL) *(starpos) = '\0';
while (*src == ' ') ++src;
if (!hasP && !hasS && *src != '\0') {
lcd_setstatus(src);
} else {
LCD_MESSAGERPGM(_i("Wait for user..."));////MSG_USERWAIT
}
lcd_ignore_click(); //call lcd_ignore_click aslo for else ???
st_synchronize();
previous_millis_cmd = _millis();
if (codenum > 0){
codenum += _millis(); // keep track of when we started waiting
KEEPALIVE_STATE(PAUSED_FOR_USER);
while(_millis() < codenum && !lcd_clicked()){
manage_heater();
manage_inactivity(true);
lcd_update(0);
}
KEEPALIVE_STATE(IN_HANDLER);
lcd_ignore_click(false);
}else{
marlin_wait_for_click();
}
if (IS_SD_PRINTING)
LCD_MESSAGERPGM(_T(MSG_RESUMING_PRINT));
else
LCD_MESSAGERPGM(_T(WELCOME_MSG));
}
break;
/*! /*!
### M17 - Enable all axes <a href="https://reprap.org/wiki/G-code#M17:_Enable.2FPower_all_stepper_motors">M17: Enable/Power all stepper motors</a> ### M17 - Enable all axes <a href="https://reprap.org/wiki/G-code#M17:_Enable.2FPower_all_stepper_motors">M17: Enable/Power all stepper motors</a>
*/ */
case 17: case 17:
LCD_MESSAGERPGM(_i("No move."));////MSG_NO_MOVE LCD_MESSAGERPGM(_i("No move."));////MSG_NO_MOVE
enable_x(); enable_x();
@ -6377,31 +6357,37 @@ Sigma_Exit:
#endif // Z_PROBE_REPEATABILITY_TEST #endif // Z_PROBE_REPEATABILITY_TEST
#endif // ENABLE_AUTO_BED_LEVELING #endif // ENABLE_AUTO_BED_LEVELING
/*! /*!
### M73 - Set/get print progress <a href="https://reprap.org/wiki/G-code#M73:_Set.2FGet_build_percentage">M73: Set/Get build percentage</a> ### M73 - Set/get print progress <a href="https://reprap.org/wiki/G-code#M73:_Set.2FGet_build_percentage">M73: Set/Get build percentage</a>
#### Usage #### Usage
M73 [ P | R | Q | S ] M73 [ P | R | Q | S | C | D ]
#### Parameters
- `P` - Percent in normal mode
- `R` - Time remaining in normal mode
- `Q` - Percent in silent mode
- `S` - Time in silent mode
*/
case 73: //M73 show percent done and time remaining
if(code_seen('P')) print_percent_done_normal = code_value();
if(code_seen('R')) print_time_remaining_normal = code_value();
if(code_seen('Q')) print_percent_done_silent = code_value();
if(code_seen('S')) print_time_remaining_silent = code_value();
{ #### Parameters
const char* _msg_mode_done_remain = _N("%S MODE: Percent done: %d; print time remaining in mins: %d\n"); - `P` - Percent in normal mode
printf_P(_msg_mode_done_remain, _N("NORMAL"), int(print_percent_done_normal), print_time_remaining_normal); - `R` - Time remaining in normal mode
printf_P(_msg_mode_done_remain, _N("SILENT"), int(print_percent_done_silent), print_time_remaining_silent); - `Q` - Percent in silent mode
} - `S` - Time in silent mode
break; - `C` - Time to change/pause/user interaction in normal mode
- `D` - Time to change/pause/user interaction in silent mode
*/
//!@todo update RepRap Gcode wiki
case 73: //M73 show percent done, time remaining and time to change/pause
{
if(code_seen('P')) print_percent_done_normal = code_value();
if(code_seen('R')) print_time_remaining_normal = code_value();
if(code_seen('Q')) print_percent_done_silent = code_value();
if(code_seen('S')) print_time_remaining_silent = code_value();
if(code_seen('C')) print_time_to_change_normal = code_value();
if(code_seen('D')) print_time_to_change_silent = code_value();
{
const char* _msg_mode_done_remain = _N("%S MODE: Percent done: %d; print time remaining in mins: %d; Change in mins: %d\n");
printf_P(_msg_mode_done_remain, _N("NORMAL"), int(print_percent_done_normal), print_time_remaining_normal, print_time_to_change_normal);
printf_P(_msg_mode_done_remain, _N("SILENT"), int(print_percent_done_silent), print_time_remaining_silent, print_time_to_change_silent);
}
break;
}
/*! /*!
### M104 - Set hotend temperature <a href="https://reprap.org/wiki/G-code#M104:_Set_Extruder_Temperature">M104: Set Extruder Temperature</a> ### M104 - Set hotend temperature <a href="https://reprap.org/wiki/G-code#M104:_Set_Extruder_Temperature">M104: Set Extruder Temperature</a>
#### Usage #### Usage
@ -8117,35 +8103,34 @@ Sigma_Exit:
/*! /*!
### M25 - Pause SD print <a href="https://reprap.org/wiki/G-code#M25:_Pause_SD_print">M25: Pause SD print</a> ### M25 - Pause SD print <a href="https://reprap.org/wiki/G-code#M25:_Pause_SD_print">M25: Pause SD print</a>
*/ */
case 25: case 25:
case 601: case 601:
{ {
if (!isPrintPaused) if (!isPrintPaused) {
{
st_synchronize(); st_synchronize();
ClearToSend(); //send OK even before the command finishes executing because we want to make sure it is not skipped because of cmdqueue_pop_front(); ClearToSend(); //send OK even before the command finishes executing because we want to make sure it is not skipped because of cmdqueue_pop_front();
cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore cmdqueue_pop_front(); //trick because we want skip this command (M601) after restore
lcd_pause_print(); lcd_pause_print();
} }
} }
break; break;
/*! /*!
### M602 - Resume print <a href="https://reprap.org/wiki/G-code#M602:_Resume_print">M602: Resume print</a> ### M602 - Resume print <a href="https://reprap.org/wiki/G-code#M602:_Resume_print">M602: Resume print</a>
*/ */
case 602: { case 602:
if (isPrintPaused) {
lcd_resume_print(); if (isPrintPaused) lcd_resume_print();
} }
break; break;
/*! /*!
### M603 - Stop print <a href="https://reprap.org/wiki/G-code#M603:_Stop_print">M603: Stop print</a> ### M603 - Stop print <a href="https://reprap.org/wiki/G-code#M603:_Stop_print">M603: Stop print</a>
*/ */
case 603: { case 603: {
lcd_print_stop(); lcd_print_stop();
} }
break; break;
#ifdef PINDA_THERMISTOR #ifdef PINDA_THERMISTOR
/*! /*!
@ -9689,7 +9674,7 @@ void manage_inactivity_IR_ANALOG_Check(uint16_t &nFSCheckCount, ClFsensorPCB isV
void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h void manage_inactivity(bool ignore_stepper_queue/*=false*/) //default argument set in Marlin.h
{ {
#ifdef FILAMENT_SENSOR #ifdef FILAMENT_SENSOR
bool bInhibitFlag; bool bInhibitFlag = false;
#ifdef IR_SENSOR_ANALOG #ifdef IR_SENSOR_ANALOG
static uint16_t nFSCheckCount=0; static uint16_t nFSCheckCount=0;
#endif // IR_SENSOR_ANALOG #endif // IR_SENSOR_ANALOG
@ -9697,16 +9682,11 @@ static uint16_t nFSCheckCount=0;
if (mmu_enabled == false) if (mmu_enabled == false)
{ {
//-// if (mcode_in_progress != 600) //M600 not in progress //-// if (mcode_in_progress != 600) //M600 not in progress
#ifdef PAT9125 if (!PRINTER_ACTIVE) bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); //Block Filament sensor actions if PRINTER is not active and Support::SensorInfo menu active
bInhibitFlag=(menu_menu==lcd_menu_extruder_info); // Support::ExtruderInfo menu active
#endif // PAT9125
#ifdef IR_SENSOR
bInhibitFlag=(menu_menu==lcd_menu_show_sensors_state); // Support::SensorInfo menu active
#ifdef IR_SENSOR_ANALOG #ifdef IR_SENSOR_ANALOG
bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Settings::HWsetup::FSdetect menu active bInhibitFlag=bInhibitFlag||bMenuFSDetect; // Block Filament sensor actions if Settings::HWsetup::FSdetect menu active
#endif // IR_SENSOR_ANALOG #endif // IR_SENSOR_ANALOG
#endif // IR_SENSOR if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag) && (menu_menu != lcd_move_e)) //M600 not in progress, preHeat @ autoLoad menu not active
if ((mcode_in_progress != 600) && (eFilamentAction != FilamentAction::AutoLoad) && (!bInhibitFlag) && (menu_menu != lcd_move_e)) //M600 not in progress, preHeat @ autoLoad menu not active, Support::ExtruderInfo/SensorInfo menu not active
{ {
if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE)) if (!moves_planned() && !IS_SD_PRINTING && !is_usb_printing && (lcd_commands_type != LcdCommands::Layer1Cal) && ! eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE))
{ {
@ -11639,46 +11619,40 @@ void print_mesh_bed_leveling_table()
SERIAL_ECHOLN(); SERIAL_ECHOLN();
} }
uint16_t print_time_remaining() {
uint16_t print_t = PRINT_TIME_REMAINING_INIT;
#ifdef TMC2130
if (SilentModeMenu == SILENT_MODE_OFF) print_t = print_time_remaining_normal;
else print_t = print_time_remaining_silent;
#else
print_t = print_time_remaining_normal;
#endif //TMC2130
if ((print_t != PRINT_TIME_REMAINING_INIT) && (feedmultiply != 0)) print_t = 100ul * print_t / feedmultiply;
return print_t;
}
uint8_t calc_percent_done() uint8_t calc_percent_done()
{ {
//in case that we have information from M73 gcode return percentage counted by slicer, else return percentage counted as byte_printed/filesize //in case that we have information from M73 gcode return percentage counted by slicer, else return percentage counted as byte_printed/filesize
uint8_t percent_done = 0; uint8_t percent_done = 0;
#ifdef TMC2130 #ifdef TMC2130
if (SilentModeMenu == SILENT_MODE_OFF && print_percent_done_normal <= 100) { if (SilentModeMenu == SILENT_MODE_OFF && print_percent_done_normal <= 100)
percent_done = print_percent_done_normal; {
} percent_done = print_percent_done_normal;
else if (print_percent_done_silent <= 100) { }
percent_done = print_percent_done_silent; else if (print_percent_done_silent <= 100)
} {
percent_done = print_percent_done_silent;
}
#else #else
if (print_percent_done_normal <= 100) { if (print_percent_done_normal <= 100)
percent_done = print_percent_done_normal; {
} percent_done = print_percent_done_normal;
}
#endif //TMC2130 #endif //TMC2130
else { else
percent_done = card.percentDone(); {
} percent_done = card.percentDone();
return percent_done; }
return percent_done;
} }
static void print_time_remaining_init() static void print_time_remaining_init()
{ {
print_time_remaining_normal = PRINT_TIME_REMAINING_INIT; print_time_remaining_normal = PRINT_TIME_REMAINING_INIT;
print_time_remaining_silent = PRINT_TIME_REMAINING_INIT; print_percent_done_normal = PRINT_PERCENT_DONE_INIT;
print_percent_done_normal = PRINT_PERCENT_DONE_INIT; print_time_remaining_silent = PRINT_TIME_REMAINING_INIT;
print_percent_done_silent = PRINT_PERCENT_DONE_INIT; print_percent_done_silent = PRINT_PERCENT_DONE_INIT;
print_time_to_change_normal = PRINT_TIME_REMAINING_INIT;
print_time_to_change_silent = PRINT_TIME_REMAINING_INIT;
} }
void load_filament_final_feed() void load_filament_final_feed()

View file

@ -408,7 +408,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP
#define EEPROM_POWER_COUNT (EEPROM_FERROR_COUNT - 1) // uint8 (orig EEPROM_UVLO_MESH_BED_LEVELING-17) #define EEPROM_POWER_COUNT (EEPROM_FERROR_COUNT - 1) // uint8 (orig EEPROM_UVLO_MESH_BED_LEVELING-17)
#define EEPROM_XYZ_CAL_SKEW (EEPROM_POWER_COUNT - 4) // float for skew backup #define EEPROM_XYZ_CAL_SKEW (EEPROM_POWER_COUNT - 4) // float for skew backup
#define EEPROM_WIZARD_ACTIVE (EEPROM_XYZ_CAL_SKEW - 1) #define EEPROM_WIZARD_ACTIVE (EEPROM_XYZ_CAL_SKEW - 1) // 0: wizard not active, 1: wizard active, 2: wizard active without yes/no = forced calibrate Z after shipping/service prep.
#define EEPROM_BELTSTATUS_X (EEPROM_WIZARD_ACTIVE - 2) // uint16 #define EEPROM_BELTSTATUS_X (EEPROM_WIZARD_ACTIVE - 2) // uint16
#define EEPROM_BELTSTATUS_Y (EEPROM_BELTSTATUS_X - 2) // uint16 #define EEPROM_BELTSTATUS_Y (EEPROM_BELTSTATUS_X - 2) // uint16

View file

@ -16,7 +16,7 @@ const char MSG_BED_DONE[] PROGMEM_I1 = ISTR("Bed done"); ////
const char MSG_BED_HEATING[] PROGMEM_I1 = ISTR("Bed Heating"); //// const char MSG_BED_HEATING[] PROGMEM_I1 = ISTR("Bed Heating"); ////
const char MSG_BED_LEVELING_FAILED_POINT_LOW[] PROGMEM_I1 = ISTR("Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."); ////c=20 r=5 const char MSG_BED_LEVELING_FAILED_POINT_LOW[] PROGMEM_I1 = ISTR("Bed leveling failed. Sensor didnt trigger. Debris on nozzle? Waiting for reset."); ////c=20 r=5
const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED[] PROGMEM_I1 = ISTR("XYZ calibration failed. Please consult the manual."); ////c=20 r=8 const char MSG_BED_SKEW_OFFSET_DETECTION_FITTING_FAILED[] PROGMEM_I1 = ISTR("XYZ calibration failed. Please consult the manual."); ////c=20 r=8
const char MSG_BELT_STATUS[] PROGMEM_I1 = ISTR("Belt Status");////c=18 const char MSG_BELT_STATUS[] PROGMEM_I1 = ISTR("Belt status");////c=18
const char MSG_CALIBRATE_Z_AUTO[] PROGMEM_I1 = ISTR("Calibrating Z"); ////c=20 r=2 const char MSG_CALIBRATE_Z_AUTO[] PROGMEM_I1 = ISTR("Calibrating Z"); ////c=20 r=2
const char MSG_CARD_MENU[] PROGMEM_I1 = ISTR("Print from SD"); //// const char MSG_CARD_MENU[] PROGMEM_I1 = ISTR("Print from SD"); ////
const char MSG_CHECKING_X[] PROGMEM_I1 = ISTR("Checking X axis"); ////c=20 const char MSG_CHECKING_X[] PROGMEM_I1 = ISTR("Checking X axis"); ////c=20
@ -29,7 +29,7 @@ const char MSG_CRASHDETECT[] PROGMEM_I1 = ISTR("Crash det."); ////c=13
const char MSG_ERROR[] PROGMEM_I1 = ISTR("ERROR:"); //// const char MSG_ERROR[] PROGMEM_I1 = ISTR("ERROR:"); ////
const char MSG_EXTRUDER[] PROGMEM_I1 = ISTR("Extruder"); ////c=17 const char MSG_EXTRUDER[] PROGMEM_I1 = ISTR("Extruder"); ////c=17
const char MSG_FANS_CHECK[] PROGMEM_I1 = ISTR("Fans check"); ////c=13 const char MSG_FANS_CHECK[] PROGMEM_I1 = ISTR("Fans check"); ////c=13
const char MSG_FIL_RUNOUTS[] PROGMEM_I1 = ISTR("Fil. runouts"); ////c=14 const char MSG_FIL_RUNOUTS[] PROGMEM_I1 = ISTR("Fil. runouts"); ////c=15
const char MSG_FILAMENT[] PROGMEM_I1 = ISTR("Filament"); ////c=17 r=1 const char MSG_FILAMENT[] PROGMEM_I1 = ISTR("Filament"); ////c=17 r=1
const char MSG_FAN_SPEED[] PROGMEM_I1 = ISTR("Fan speed"); ////c=14 const char MSG_FAN_SPEED[] PROGMEM_I1 = ISTR("Fan speed"); ////c=14
const char MSG_FILAMENT_CLEAN[] PROGMEM_I1 = ISTR("Filament extruding & with correct color?"); ////c=20 r=2 const char MSG_FILAMENT_CLEAN[] PROGMEM_I1 = ISTR("Filament extruding & with correct color?"); ////c=20 r=2
@ -65,14 +65,15 @@ const char MSG_STEEL_SHEETS[] PROGMEM_I1 = ISTR("Steel sheets"); ////c=18
const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1[] PROGMEM_I1 = ISTR("Measuring reference height of calibration point"); ////c=60 const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE1[] PROGMEM_I1 = ISTR("Measuring reference height of calibration point"); ////c=60
const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2[] PROGMEM_I1 = ISTR(" of 9"); ////c=14 const char MSG_MEASURE_BED_REFERENCE_HEIGHT_LINE2[] PROGMEM_I1 = ISTR(" of 9"); ////c=14
const char MSG_MENU_CALIBRATION[] PROGMEM_I1 = ISTR("Calibration"); //// const char MSG_MENU_CALIBRATION[] PROGMEM_I1 = ISTR("Calibration"); ////
const char MSG_MMU_FAILS[] PROGMEM_I1 = ISTR("MMU fails"); ////c=14 const char MSG_MMU_FAILS[] PROGMEM_I1 = ISTR("MMU fails"); ////c=15
const char MSG_MMU_LOAD_FAILS[] PROGMEM_I1 = ISTR("MMU load fails"); ////c=14 const char MSG_MMU_LOAD_FAILS[] PROGMEM_I1 = ISTR("MMU load fails"); ////c=15
const char MSG_NO[] PROGMEM_I1 = ISTR("No"); //// const char MSG_NO[] PROGMEM_I1 = ISTR("No"); ////
const char MSG_NOZZLE[] PROGMEM_I1 = ISTR("Nozzle"); //// const char MSG_NOZZLE[] PROGMEM_I1 = ISTR("Nozzle"); ////
const char MSG_PAPER[] PROGMEM_I1 = ISTR("Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."); ////c=20 r=10 const char MSG_PAPER[] PROGMEM_I1 = ISTR("Place a sheet of paper under the nozzle during the calibration of first 4 points. If the nozzle catches the paper, power off the printer immediately."); ////c=20 r=10
const char MSG_PAUSE_PRINT[] PROGMEM_I1 = ISTR("Pause print");////c=18
const char MSG_PLACE_STEEL_SHEET[] PROGMEM_I1 = ISTR("Please place steel sheet on heatbed."); ////c=20 r=4 const char MSG_PLACE_STEEL_SHEET[] PROGMEM_I1 = ISTR("Please place steel sheet on heatbed."); ////c=20 r=4
const char MSG_PLEASE_WAIT[] PROGMEM_I1 = ISTR("Please wait"); ////c=20 const char MSG_PLEASE_WAIT[] PROGMEM_I1 = ISTR("Please wait"); ////c=20
const char MSG_POWER_FAILURES[] PROGMEM_I1 = ISTR("Power failures"); ////c=14 const char MSG_POWER_FAILURES[] PROGMEM_I1 = ISTR("Power failures"); ////c=15
const char MSG_PREHEAT_NOZZLE[] PROGMEM_I1 = ISTR("Preheat the nozzle!"); ////c=20 const char MSG_PREHEAT_NOZZLE[] PROGMEM_I1 = ISTR("Preheat the nozzle!"); ////c=20
const char MSG_PRESS_TO_UNLOAD[] PROGMEM_I1 = ISTR("Please press the knob to unload filament"); ////c=20 r=4 const char MSG_PRESS_TO_UNLOAD[] PROGMEM_I1 = ISTR("Please press the knob to unload filament"); ////c=20 r=4
const char MSG_PRINT_ABORTED[] PROGMEM_I1 = ISTR("Print aborted"); ////c=20 const char MSG_PRINT_ABORTED[] PROGMEM_I1 = ISTR("Print aborted"); ////c=20
@ -116,6 +117,8 @@ const char MSG_WIZARD_CALIBRATION_FAILED[] PROGMEM_I1 = ISTR("Please check our h
const char MSG_WIZARD_DONE[] PROGMEM_I1 = ISTR("All is done. Happy printing!"); ////c=20 r=8 const char MSG_WIZARD_DONE[] PROGMEM_I1 = ISTR("All is done. Happy printing!"); ////c=20 r=8
const char MSG_WIZARD_HEATING[] PROGMEM_I1 = ISTR("Preheating nozzle. Please wait."); ////c=20 r=3 const char MSG_WIZARD_HEATING[] PROGMEM_I1 = ISTR("Preheating nozzle. Please wait."); ////c=20 r=3
const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard from Calibration -> Wizard."); ////c=20 r=8 const char MSG_WIZARD_QUIT[] PROGMEM_I1 = ISTR("You can always resume the Wizard from Calibration -> Wizard."); ////c=20 r=8
const char MSG_WIZARD_WELCOME[] PROGMEM_I1 = ISTR("Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"); //// c=20 r=7
const char MSG_WIZARD_WELCOME_SHIPPING[] PROGMEM_I1 = ISTR("Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."); ////c=20 r=16
const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); //// const char MSG_YES[] PROGMEM_I1 = ISTR("Yes"); ////
const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=18 const char MSG_V2_CALIBRATION[] PROGMEM_I1 = ISTR("First layer cal."); ////c=18
const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20 const char WELCOME_MSG[] PROGMEM_I1 = ISTR(CUSTOM_MENDEL_NAME " OK."); ////c=20
@ -131,7 +134,7 @@ const char MSG_MODEL[] PROGMEM_I1 = ISTR("Model"); ////
const char MSG_FIRMWARE[] PROGMEM_I1 = ISTR("Firmware"); //// const char MSG_FIRMWARE[] PROGMEM_I1 = ISTR("Firmware"); ////
const char MSG_GCODE[] PROGMEM_I1 = ISTR("Gcode"); //// const char MSG_GCODE[] PROGMEM_I1 = ISTR("Gcode"); ////
const char MSG_GCODE_DIFF_PRINTER_CONTINUE[] PROGMEM_I1 = ISTR("G-code sliced for a different printer type. Continue?"); ////c=20 r=5 const char MSG_GCODE_DIFF_PRINTER_CONTINUE[] PROGMEM_I1 = ISTR("G-code sliced for a different printer type. Continue?"); ////c=20 r=5
const char MSG_GCODE_DIFF_PRINTER_CANCELLED[] PROGMEM_I1 =ISTR("G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."); ////c=20 r=6 const char MSG_GCODE_DIFF_PRINTER_CANCELLED[] PROGMEM_I1 =ISTR("G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."); ////c=20 r=7
const char MSG_NOZZLE_DIAMETER[] PROGMEM_I1 = ISTR("Nozzle d."); //// const char MSG_NOZZLE_DIAMETER[] PROGMEM_I1 = ISTR("Nozzle d."); ////
const char MSG_MMU_MODE[] PROGMEM_I1 = ISTR("MMU Mode"); //// const char MSG_MMU_MODE[] PROGMEM_I1 = ISTR("MMU Mode"); ////
const char MSG_SD_CARD[] PROGMEM_I1 = ISTR("SD card"); //// const char MSG_SD_CARD[] PROGMEM_I1 = ISTR("SD card"); ////
@ -188,7 +191,9 @@ const char MSG_ENDSTOP_OPEN[] PROGMEM_N1 = "open"; ////
const char MSG_POWERUP[] PROGMEM_N1 = "PowerUp"; //// const char MSG_POWERUP[] PROGMEM_N1 = "PowerUp"; ////
const char MSG_ERR_STOPPED[] PROGMEM_N1 = "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"; //// const char MSG_ERR_STOPPED[] PROGMEM_N1 = "Printer stopped due to errors. Fix the error and use M999 to restart. (Temperature is reset. Set it after restarting)"; ////
const char MSG_ENDSTOP_HIT[] PROGMEM_N1 = "TRIGGERED"; //// const char MSG_ENDSTOP_HIT[] PROGMEM_N1 = "TRIGGERED"; ////
const char MSG_OCTOPRINT_PAUSE[] PROGMEM_N1 = "// action:pause"; ////
const char MSG_OCTOPRINT_PAUSED[] PROGMEM_N1 = "// action:paused"; //// const char MSG_OCTOPRINT_PAUSED[] PROGMEM_N1 = "// action:paused"; ////
const char MSG_OCTOPRINT_RESUME[] PROGMEM_N1 = "// action:resume"; ////
const char MSG_OCTOPRINT_RESUMED[] PROGMEM_N1 = "// action:resumed"; //// const char MSG_OCTOPRINT_RESUMED[] PROGMEM_N1 = "// action:resumed"; ////
const char MSG_OCTOPRINT_CANCEL[] PROGMEM_N1 = "// action:cancel"; //// const char MSG_OCTOPRINT_CANCEL[] PROGMEM_N1 = "// action:cancel"; ////
const char MSG_FANCHECK_EXTRUDER[] PROGMEM_N1 = "Err: EXTR. FAN ERROR"; ////c=20 const char MSG_FANCHECK_EXTRUDER[] PROGMEM_N1 = "Err: EXTR. FAN ERROR"; ////c=20

View file

@ -69,6 +69,7 @@ extern const char MSG_MMU_LOAD_FAILS[];
extern const char MSG_NO[]; extern const char MSG_NO[];
extern const char MSG_NOZZLE[]; extern const char MSG_NOZZLE[];
extern const char MSG_PAPER[]; extern const char MSG_PAPER[];
extern const char MSG_PAUSE_PRINT[];
extern const char MSG_PLACE_STEEL_SHEET[]; extern const char MSG_PLACE_STEEL_SHEET[];
extern const char MSG_PLEASE_WAIT[]; extern const char MSG_PLEASE_WAIT[];
extern const char MSG_POWER_FAILURES[]; extern const char MSG_POWER_FAILURES[];
@ -116,6 +117,8 @@ extern const char MSG_WIZARD_CALIBRATION_FAILED[];
extern const char MSG_WIZARD_DONE[]; extern const char MSG_WIZARD_DONE[];
extern const char MSG_WIZARD_HEATING[]; extern const char MSG_WIZARD_HEATING[];
extern const char MSG_WIZARD_QUIT[]; extern const char MSG_WIZARD_QUIT[];
extern const char MSG_WIZARD_WELCOME[];
extern const char MSG_WIZARD_WELCOME_SHIPPING[];
extern const char MSG_YES[]; extern const char MSG_YES[];
extern const char MSG_V2_CALIBRATION[]; extern const char MSG_V2_CALIBRATION[];
extern const char WELCOME_MSG[]; extern const char WELCOME_MSG[];
@ -188,7 +191,9 @@ extern const char MSG_ERR_STOPPED[];
extern const char MSG_ENDSTOP_HIT[]; extern const char MSG_ENDSTOP_HIT[];
extern const char MSG_EJECT_FILAMENT[]; extern const char MSG_EJECT_FILAMENT[];
extern const char MSG_CUT_FILAMENT[]; extern const char MSG_CUT_FILAMENT[];
extern const char MSG_OCTOPRINT_PAUSE[];
extern const char MSG_OCTOPRINT_PAUSED[]; extern const char MSG_OCTOPRINT_PAUSED[];
extern const char MSG_OCTOPRINT_RESUME[];
extern const char MSG_OCTOPRINT_RESUMED[]; extern const char MSG_OCTOPRINT_RESUMED[];
extern const char MSG_OCTOPRINT_CANCEL[]; extern const char MSG_OCTOPRINT_CANCEL[];
extern const char MSG_FANCHECK_EXTRUDER[]; extern const char MSG_FANCHECK_EXTRUDER[];

View file

@ -7,6 +7,7 @@
#include "w25x20cl.h" #include "w25x20cl.h"
#include "stk500.h" #include "stk500.h"
#include "bootapp.h" #include "bootapp.h"
#include <avr/wdt.h>
#define OPTIBOOT_MAJVER 6 #define OPTIBOOT_MAJVER 6
#define OPTIBOOT_CUSTOMVER 0 #define OPTIBOOT_CUSTOMVER 0
@ -39,14 +40,10 @@ static unsigned const int __attribute__((section(".version")))
#endif #endif
static void watchdogConfig(uint8_t x) { static void watchdogConfig(uint8_t x) {
CRITICAL_SECTION_START
WDTCSR = _BV(WDCE) | _BV(WDE); WDTCSR = _BV(WDCE) | _BV(WDE);
WDTCSR = x; WDTCSR = x;
} CRITICAL_SECTION_END
static void watchdogReset() {
__asm__ __volatile__ (
"wdr\n"
);
} }
#define RECV_READY ((UCSR0A & _BV(RXC0)) != 0) #define RECV_READY ((UCSR0A & _BV(RXC0)) != 0)
@ -63,7 +60,7 @@ static uint8_t getch(void) {
* the application "soon", if it keeps happening. (Note that we * the application "soon", if it keeps happening. (Note that we
* don't care that an invalid char is returned...) * don't care that an invalid char is returned...)
*/ */
watchdogReset(); wdt_reset();
} }
ch = UDR0; ch = UDR0;
return ch; return ch;
@ -117,7 +114,7 @@ uint8_t optiboot_w25x20cl_enter()
// Handshake sequence: Initialize the serial line, flush serial line, send magic, receive magic. // Handshake sequence: Initialize the serial line, flush serial line, send magic, receive magic.
// If the magic is not received on time, or it is not received correctly, continue to the application. // If the magic is not received on time, or it is not received correctly, continue to the application.
{ {
watchdogReset(); wdt_reset();
unsigned long boot_timeout = 2000000; unsigned long boot_timeout = 2000000;
unsigned long boot_timer = 0; unsigned long boot_timer = 0;
const char *ptr = entry_magic_send; const char *ptr = entry_magic_send;
@ -125,7 +122,7 @@ uint8_t optiboot_w25x20cl_enter()
const uint8_t selectedSerialPort_bak = selectedSerialPort; const uint8_t selectedSerialPort_bak = selectedSerialPort;
// Flush the serial line. // Flush the serial line.
while (RECV_READY) { while (RECV_READY) {
watchdogReset(); wdt_reset();
// Dummy register read (discard) // Dummy register read (discard)
(void)(*(char *)UDR0); (void)(*(char *)UDR0);
} }
@ -135,14 +132,14 @@ uint8_t optiboot_w25x20cl_enter()
// Send the initial magic string. // Send the initial magic string.
while (ptr != end) while (ptr != end)
putch(pgm_read_byte(ptr ++)); putch(pgm_read_byte(ptr ++));
watchdogReset(); wdt_reset();
// Wait for two seconds until a magic string (constant entry_magic) is received // Wait for two seconds until a magic string (constant entry_magic) is received
// from the serial line. // from the serial line.
ptr = entry_magic_receive; ptr = entry_magic_receive;
end = strlen_P(entry_magic_receive) + ptr; end = strlen_P(entry_magic_receive) + ptr;
while (ptr != end) { while (ptr != end) {
while (rx_buffer.head == SerialHead) { while (rx_buffer.head == SerialHead) {
watchdogReset(); wdt_reset();
delayMicroseconds(1); delayMicroseconds(1);
if (++ boot_timer > boot_timeout) if (++ boot_timer > boot_timeout)
{ {
@ -159,7 +156,7 @@ uint8_t optiboot_w25x20cl_enter()
selectedSerialPort = selectedSerialPort_bak; //revert Serial setting selectedSerialPort = selectedSerialPort_bak; //revert Serial setting
return 0; return 0;
} }
watchdogReset(); wdt_reset();
} }
cbi(UCSR0B, RXCIE0); //disable the MarlinSerial0 interrupt cbi(UCSR0B, RXCIE0); //disable the MarlinSerial0 interrupt
// Send the cfm magic string. // Send the cfm magic string.

File diff suppressed because it is too large Load diff

View file

@ -44,6 +44,7 @@ void lcd_change_success();
void lcd_loading_color(); void lcd_loading_color();
void lcd_sdcard_stop(); void lcd_sdcard_stop();
void lcd_pause_print(); void lcd_pause_print();
void lcd_pause_usb_print();
void lcd_resume_print(); void lcd_resume_print();
void lcd_print_stop(); void lcd_print_stop();
void prusa_statistics(int _message, uint8_t _col_nr = 0); void prusa_statistics(int _message, uint8_t _col_nr = 0);
@ -114,12 +115,15 @@ extern int8_t FSensorStateMenu;
enum class CustomMsg : uint_least8_t enum class CustomMsg : uint_least8_t
{ {
Status, //!< status message from lcd_status_message variable Status, //!< status message from lcd_status_message variable
MeshBedLeveling, //!< Mesh bed leveling in progress MeshBedLeveling, //!< Mesh bed leveling in progress
FilamentLoading, //!< Loading filament in progress FilamentLoading, //!< Loading filament in progress
PidCal, //!< PID tuning in progress PidCal, //!< PID tuning in progress
TempCal, //!< PINDA temperature calibration TempCal, //!< PINDA temperature calibration
TempCompPreheat, //!< Temperature compensation preheat TempCompPreheat, //!< Temperature compensation preheat
M0Wait, //!< M0/M1 Wait command working even from SD
MsgUpdate, //!< Short message even while printing from SD
Resuming, //!< Resuming message
}; };
extern CustomMsg custom_message_type; extern CustomMsg custom_message_type;

View file

@ -142,6 +142,9 @@
#MSG_SD_REMOVED #MSG_SD_REMOVED
"Card removed" "Card removed"
#
"Checking file"
#MSG_NOT_COLOR #MSG_NOT_COLOR
"Color not correct" "Color not correct"
@ -253,8 +256,8 @@
#MSG_FSENSOR #MSG_FSENSOR
"Fil. sensor" "Fil. sensor"
#MSG_FIL_RUNOUTS c=14 #MSG_FIL_RUNOUTS c=15
"Fil. runouts " "Fil. runouts"
#MSG_FILAMENT_CLEAN c=20 r=2 #MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?" "Filament extruding & with correct color?"
@ -382,6 +385,9 @@
#MSG_LAST_PRINT_FAILURES c=20 #MSG_LAST_PRINT_FAILURES c=20
"Last print failures" "Last print failures"
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
# #
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
@ -448,13 +454,13 @@
# #
"Measured skew" "Measured skew"
#MSG_MMU_FAILS c=14 #MSG_MMU_FAILS c=15
"MMU fails" "MMU fails"
# #
"MMU load failed " "MMU load failed "
#MSG_MMU_LOAD_FAILS c=14 #MSG_MMU_LOAD_FAILS c=15
"MMU load fails" "MMU load fails"
#MSG_MMU_OK_RESUMING c=20 r=4 #MSG_MMU_OK_RESUMING c=20 r=4
@ -544,7 +550,7 @@
# #
"Nozzle FAN" "Nozzle FAN"
#MSG_PAUSE_PRINT #MSG_PAUSE_PRINT c=18
"Pause print" "Pause print"
#MSG_PID_RUNNING c=20 r=1 #MSG_PID_RUNNING c=20 r=1
@ -625,7 +631,7 @@
#MSG_FS_PAUSE c=5 #MSG_FS_PAUSE c=5
"Pause" "Pause"
#MSG_POWER_FAILURES c=14 #MSG_POWER_FAILURES c=15
"Power failures" "Power failures"
#MSG_PRINT_ABORTED c=20 #MSG_PRINT_ABORTED c=20
@ -1048,7 +1054,7 @@
#MSG_GCODE_DIFF_PRINTER_CONTINUE c=20 r=5 #MSG_GCODE_DIFF_PRINTER_CONTINUE c=20 r=5
"G-code sliced for a different printer type. Continue?" "G-code sliced for a different printer type. Continue?"
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=6 #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=7
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
# #

View file

@ -190,6 +190,10 @@
"Card removed" "Card removed"
"Karta vyjmuta" "Karta vyjmuta"
#
"Checking file"
"\x00"
#MSG_NOT_COLOR #MSG_NOT_COLOR
"Color not correct" "Color not correct"
"Barva neni cista" "Barva neni cista"
@ -338,8 +342,8 @@
"Fil. sensor" "Fil. sensor"
"Fil. senzor" "Fil. senzor"
#MSG_FIL_RUNOUTS c=14 #MSG_FIL_RUNOUTS c=15
"Fil. runouts " "Fil. runouts"
"Vypadky filam." "Vypadky filam."
#MSG_FILAMENT_CLEAN c=20 r=2 #MSG_FILAMENT_CLEAN c=20 r=2
@ -510,6 +514,10 @@
"Last print failures" "Last print failures"
"Selhani posl. tisku" "Selhani posl. tisku"
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
"Ahoj, jsem vase tiskarna Original Prusa i3. Provedu vas kratkym procesem nastaveni, ve kterem zkalibrujeme osu Z. Pak budete moct zacit tisknout."
# #
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy" "Mate-li vice tiskovych platu, kalibrujte je v menu Nastaveni - HW nastaveni - Tiskove platy"
@ -598,7 +606,7 @@
"Measured skew" "Measured skew"
"Merene zkoseni" "Merene zkoseni"
#MSG_MMU_FAILS c=14 #MSG_MMU_FAILS c=15
"MMU fails" "MMU fails"
"Selhani MMU" "Selhani MMU"
@ -606,7 +614,7 @@
"MMU load failed " "MMU load failed "
"Zavedeni MMU selhalo" "Zavedeni MMU selhalo"
#MSG_MMU_LOAD_FAILS c=14 #MSG_MMU_LOAD_FAILS c=15
"MMU load fails" "MMU load fails"
"MMU selhani zavadeni" "MMU selhani zavadeni"
@ -726,7 +734,7 @@
"Nozzle FAN" "Nozzle FAN"
"Vent. trysky" "Vent. trysky"
#MSG_PAUSE_PRINT #MSG_PAUSE_PRINT c=18
"Pause print" "Pause print"
"Pozastavit tisk" "Pozastavit tisk"
@ -834,7 +842,7 @@
"Pause" "Pause"
"\x00" "\x00"
#MSG_POWER_FAILURES c=14 #MSG_POWER_FAILURES c=15
"Power failures" "Power failures"
"Vypadky proudu" "Vypadky proudu"
@ -1398,7 +1406,7 @@
"G-code sliced for a different printer type. Continue?" "G-code sliced for a different printer type. Continue?"
"G-code je pripraven pro jiny typ tiskarny. Pokracovat?" "G-code je pripraven pro jiny typ tiskarny. Pokracovat?"
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=6 #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=7
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
"G-code je pripraven pro jiny typ tiskarny. Prosim preslicujte model znovu. Tisk zrusen." "G-code je pripraven pro jiny typ tiskarny. Prosim preslicujte model znovu. Tisk zrusen."

View file

@ -190,6 +190,10 @@
"Card removed" "Card removed"
"SD Karte entfernt" "SD Karte entfernt"
#
"Checking file"
"\x00"
#MSG_NOT_COLOR #MSG_NOT_COLOR
"Color not correct" "Color not correct"
"Falsche Farbe" "Falsche Farbe"
@ -338,9 +342,9 @@
"Fil. sensor" "Fil. sensor"
"Fil. Sensor" "Fil. Sensor"
#MSG_FIL_RUNOUTS c=14 #MSG_FIL_RUNOUTS c=15
"Fil. runouts " "Fil. runouts"
"Fil. Maengel " "Fil. Maengel"
#MSG_FILAMENT_CLEAN c=20 r=2 #MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?" "Filament extruding & with correct color?"
@ -510,6 +514,10 @@
"Last print failures" "Last print failures"
"Letzte Druckfehler" "Letzte Druckfehler"
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
"Hallo, ich bin Ihr Original Prusa i3 Drucker. Ich werde Sie durch einen kurzen Einrichtungsprozess fuehren, bei dem die Z-Achse kalibriert wird. Danach sind Sie bereit fuer den Druck."
# #
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche." "Wenn Sie zusaetzliche Stahlbleche haben, kalibrieren Sie deren Voreinstellungen unter Einstellungen - HW Setup - Stahlbleche."
@ -598,7 +606,7 @@
"Measured skew" "Measured skew"
"Schraeglauf" "Schraeglauf"
#MSG_MMU_FAILS c=14 #MSG_MMU_FAILS c=15
"MMU fails" "MMU fails"
"MMU Fehler" "MMU Fehler"
@ -606,7 +614,7 @@
"MMU load failed " "MMU load failed "
"MMU Ladefehler" "MMU Ladefehler"
#MSG_MMU_LOAD_FAILS c=14 #MSG_MMU_LOAD_FAILS c=15
"MMU load fails" "MMU load fails"
"MMU Ladefehler" "MMU Ladefehler"
@ -726,7 +734,7 @@
"Nozzle FAN" "Nozzle FAN"
"Duesevent." "Duesevent."
#MSG_PAUSE_PRINT #MSG_PAUSE_PRINT c=18
"Pause print" "Pause print"
"Druck pausieren" "Druck pausieren"
@ -834,7 +842,7 @@
"Pause" "Pause"
"\x00" "\x00"
#MSG_POWER_FAILURES c=14 #MSG_POWER_FAILURES c=15
"Power failures" "Power failures"
"Netzfehler" "Netzfehler"
@ -1398,7 +1406,7 @@
"G-code sliced for a different printer type. Continue?" "G-code sliced for a different printer type. Continue?"
"G-Code ist fuer einen anderen Drucker geslict. Fortfahren?" "G-Code ist fuer einen anderen Drucker geslict. Fortfahren?"
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=6 #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=7
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
"G-Code ist fuer einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen." "G-Code ist fuer einen anderen Drucker geslict. Bitte slicen Sie das Modell erneut. Druck abgebrochen."

View file

@ -190,6 +190,10 @@
"Card removed" "Card removed"
"Tarjeta retirada" "Tarjeta retirada"
#
"Checking file"
"\x00"
#MSG_NOT_COLOR #MSG_NOT_COLOR
"Color not correct" "Color not correct"
"Color no homogeneo" "Color no homogeneo"
@ -338,9 +342,9 @@
"Fil. sensor" "Fil. sensor"
"Sensor Fil." "Sensor Fil."
#MSG_FIL_RUNOUTS c=14 #MSG_FIL_RUNOUTS c=15
"Fil. runouts " "Fil. runouts"
"Fil. acabado " "Fil. acabado"
#MSG_FILAMENT_CLEAN c=20 r=2 #MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?" "Filament extruding & with correct color?"
@ -510,6 +514,10 @@
"Last print failures" "Last print failures"
"Ultimos imp. fallos" "Ultimos imp. fallos"
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
"Hola, soy tu impresora Original Prusa i3. Te guiare a traves de un breve proceso de configuracion, en el que se calibrara el eje Z. Despues, estaras listo para imprimir."
# #
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero." "Si tienes planchas de acero adicionales, calibra sus ajustes en Ajustes - Ajustes HW - Planchas acero."
@ -598,7 +606,7 @@
"Measured skew" "Measured skew"
"Desviacion med:" "Desviacion med:"
#MSG_MMU_FAILS c=14 #MSG_MMU_FAILS c=15
"MMU fails" "MMU fails"
"Fallos MMU" "Fallos MMU"
@ -606,7 +614,7 @@
"MMU load failed " "MMU load failed "
"Carga MMU fallida" "Carga MMU fallida"
#MSG_MMU_LOAD_FAILS c=14 #MSG_MMU_LOAD_FAILS c=15
"MMU load fails" "MMU load fails"
"Carga MMU falla" "Carga MMU falla"
@ -726,7 +734,7 @@
"Nozzle FAN" "Nozzle FAN"
"Vent. capa" "Vent. capa"
#MSG_PAUSE_PRINT #MSG_PAUSE_PRINT c=18
"Pause print" "Pause print"
"Pausar impresion" "Pausar impresion"
@ -834,9 +842,9 @@
"Pause" "Pause"
"Pausa" "Pausa"
#MSG_POWER_FAILURES c=14 #MSG_POWER_FAILURES c=15
"Power failures" "Power failures"
"Cortes de energia" "Fallas energia"
#MSG_PRINT_ABORTED c=20 #MSG_PRINT_ABORTED c=20
"Print aborted" "Print aborted"
@ -1398,7 +1406,7 @@
"G-code sliced for a different printer type. Continue?" "G-code sliced for a different printer type. Continue?"
"Codigo G laminado para un tipo de impresora diferente. ?Continuar?" "Codigo G laminado para un tipo de impresora diferente. ?Continuar?"
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=6 #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=7
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
"Codigo G laminado para una impresora diferente. Por favor relamina el modelo de nuevo. Impresion cancelada." "Codigo G laminado para una impresora diferente. Por favor relamina el modelo de nuevo. Impresion cancelada."

View file

@ -190,6 +190,10 @@
"Card removed" "Card removed"
"Carte retiree" "Carte retiree"
#
"Checking file"
"\x00"
#MSG_NOT_COLOR #MSG_NOT_COLOR
"Color not correct" "Color not correct"
"Couleur incorrecte" "Couleur incorrecte"
@ -338,9 +342,9 @@
"Fil. sensor" "Fil. sensor"
"Capteur Fil." "Capteur Fil."
#MSG_FIL_RUNOUTS c=14 #MSG_FIL_RUNOUTS c=15
"Fil. runouts " "Fil. runouts"
"Fins filament " "Fins filament"
#MSG_FILAMENT_CLEAN c=20 r=2 #MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?" "Filament extruding & with correct color?"
@ -510,6 +514,10 @@
"Last print failures" "Last print failures"
"Echecs derniere imp." "Echecs derniere imp."
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
"Bonjour, je suis votre imprimante Original Prusa i3. Je vais vous accompagner au cours d'un bref processus de reglage, qui permettra de calibrer le Z-axis. Apres cela, tout sera pret pour imprimer."
# #
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Si vous avez d'autres feuilles d'acier, calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier." "Si vous avez d'autres feuilles d'acier, calibrez leurs pre-reglages dans Reglages - Config HW - Plaque en acier."
@ -598,7 +606,7 @@
"Measured skew" "Measured skew"
"Deviat.mesuree" "Deviat.mesuree"
#MSG_MMU_FAILS c=14 #MSG_MMU_FAILS c=15
"MMU fails" "MMU fails"
"Echecs MMU" "Echecs MMU"
@ -606,7 +614,7 @@
"MMU load failed " "MMU load failed "
"Echec chargement MMU" "Echec chargement MMU"
#MSG_MMU_LOAD_FAILS c=14 #MSG_MMU_LOAD_FAILS c=15
"MMU load fails" "MMU load fails"
"Echecs charg. MMU" "Echecs charg. MMU"
@ -726,7 +734,7 @@
"Nozzle FAN" "Nozzle FAN"
"Vent. buse" "Vent. buse"
#MSG_PAUSE_PRINT #MSG_PAUSE_PRINT c=18
"Pause print" "Pause print"
"Pause de l'impr." "Pause de l'impr."
@ -834,7 +842,7 @@
"Pause" "Pause"
"\x00" "\x00"
#MSG_POWER_FAILURES c=14 #MSG_POWER_FAILURES c=15
"Power failures" "Power failures"
"Coup.de courant" "Coup.de courant"
@ -1398,7 +1406,7 @@
"G-code sliced for a different printer type. Continue?" "G-code sliced for a different printer type. Continue?"
"Le G-code a ete prepare pour une autre version de l'imprimante. Continuer?" "Le G-code a ete prepare pour une autre version de l'imprimante. Continuer?"
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=6 #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=7
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
"Le G-code a ete prepare pour une autre version de l'imprimante. Veuillez decouper le modele a nouveau. L'impression a ete annulee." "Le G-code a ete prepare pour une autre version de l'imprimante. Veuillez decouper le modele a nouveau. L'impression a ete annulee."

View file

@ -190,6 +190,10 @@
"Card removed" "Card removed"
"SD rimossa" "SD rimossa"
#
"Checking file"
"\x00"
#MSG_NOT_COLOR #MSG_NOT_COLOR
"Color not correct" "Color not correct"
"Colore non puro" "Colore non puro"
@ -338,9 +342,9 @@
"Fil. sensor" "Fil. sensor"
"Sensore fil." "Sensore fil."
#MSG_FIL_RUNOUTS c=14 #MSG_FIL_RUNOUTS c=15
"Fil. runouts " "Fil. runouts"
"Fil. esauriti " "Fil. esauriti"
#MSG_FILAMENT_CLEAN c=20 r=2 #MSG_FILAMENT_CLEAN c=20 r=2
"Filament extruding & with correct color?" "Filament extruding & with correct color?"
@ -510,6 +514,10 @@
"Last print failures" "Last print failures"
"Errori ultima stampa" "Errori ultima stampa"
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
"Ciao, sono la tua stampante Original Prusa i3. Ti guidero attraverso un rapido processo in cui verra calibrato l'asse Z. Poi, sarai pronto a stampare."
# #
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio." "Se hai piastre d'acciaio aggiuntive, calibra i preset in Impostazioni - Setup HW - Piastre in Acciaio."
@ -598,7 +606,7 @@
"Measured skew" "Measured skew"
"Deviazione mis" "Deviazione mis"
#MSG_MMU_FAILS c=14 #MSG_MMU_FAILS c=15
"MMU fails" "MMU fails"
"Fallimenti MMU" "Fallimenti MMU"
@ -606,7 +614,7 @@
"MMU load failed " "MMU load failed "
"Caricamento MMU fallito" "Caricamento MMU fallito"
#MSG_MMU_LOAD_FAILS c=14 #MSG_MMU_LOAD_FAILS c=15
"MMU load fails" "MMU load fails"
"Caricamenti MMU falliti" "Caricamenti MMU falliti"
@ -726,7 +734,7 @@
"Nozzle FAN" "Nozzle FAN"
"Ventola estrusore" "Ventola estrusore"
#MSG_PAUSE_PRINT #MSG_PAUSE_PRINT c=18
"Pause print" "Pause print"
"Metti in pausa" "Metti in pausa"
@ -834,7 +842,7 @@
"Pause" "Pause"
"Pausa" "Pausa"
#MSG_POWER_FAILURES c=14 #MSG_POWER_FAILURES c=15
"Power failures" "Power failures"
"Mancanza corrente" "Mancanza corrente"
@ -1398,7 +1406,7 @@
"G-code sliced for a different printer type. Continue?" "G-code sliced for a different printer type. Continue?"
"G-code processato per una stampante diversa. Continuare?" "G-code processato per una stampante diversa. Continuare?"
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=6 #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=7
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
"G-code processato per una stampante diversa. Per favore esegui nuovamente lo slice del modello. Stampa annullata." "G-code processato per una stampante diversa. Per favore esegui nuovamente lo slice del modello. Stampa annullata."

View file

@ -190,6 +190,10 @@
"Card removed" "Card removed"
"Karta wyjeta" "Karta wyjeta"
#
"Checking file"
"\x00"
#MSG_NOT_COLOR #MSG_NOT_COLOR
"Color not correct" "Color not correct"
"Kolor zanieczysz." "Kolor zanieczysz."
@ -338,8 +342,8 @@
"Fil. sensor" "Fil. sensor"
"Czuj. filam." "Czuj. filam."
#MSG_FIL_RUNOUTS c=14 #MSG_FIL_RUNOUTS c=15
"Fil. runouts " "Fil. runouts"
"Konc.filamentu" "Konc.filamentu"
#MSG_FILAMENT_CLEAN c=20 r=2 #MSG_FILAMENT_CLEAN c=20 r=2
@ -510,6 +514,10 @@
"Last print failures" "Last print failures"
"Ostatnie bledy druku" "Ostatnie bledy druku"
#MSG_WIZARD_WELCOME_SHIPPING c=20 r=16
"Hi, I am your Original Prusa i3 printer. I will guide you through a short setup process, in which the Z-axis will be calibrated. Then, you will be ready to print."
"Czesc, jestem Twoja drukarka Original Prusa i3. Przeprowadze Cie przez krotka kalibracje osi Z, po ktorej mozesz rozpoczac drukowanie."
# #
"If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets." "If you have additional steel sheets, calibrate their presets in Settings - HW Setup - Steel sheets."
"Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe." "Jesli masz dodatkowe plyty stalowe, to skalibruj ich ustawienia w menu Ustawienia - Ustawienia HW - Plyty stalowe."
@ -598,7 +606,7 @@
"Measured skew" "Measured skew"
"Zmierzony skos" "Zmierzony skos"
#MSG_MMU_FAILS c=14 #MSG_MMU_FAILS c=15
"MMU fails" "MMU fails"
"Bledy MMU" "Bledy MMU"
@ -606,7 +614,7 @@
"MMU load failed " "MMU load failed "
"Blad ladowania MMU" "Blad ladowania MMU"
#MSG_MMU_LOAD_FAILS c=14 #MSG_MMU_LOAD_FAILS c=15
"MMU load fails" "MMU load fails"
"Bledy ladow. MMU" "Bledy ladow. MMU"
@ -726,7 +734,7 @@
"Nozzle FAN" "Nozzle FAN"
"WentHotend" "WentHotend"
#MSG_PAUSE_PRINT #MSG_PAUSE_PRINT c=18
"Pause print" "Pause print"
"Wstrzymanie wydruku" "Wstrzymanie wydruku"
@ -834,7 +842,7 @@
"Pause" "Pause"
"Pauza" "Pauza"
#MSG_POWER_FAILURES c=14 #MSG_POWER_FAILURES c=15
"Power failures" "Power failures"
"Zaniki zasilania" "Zaniki zasilania"
@ -1398,7 +1406,7 @@
"G-code sliced for a different printer type. Continue?" "G-code sliced for a different printer type. Continue?"
"G-code pociety dla innej drukarki. Kontynuowac?" "G-code pociety dla innej drukarki. Kontynuowac?"
#MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=6 #MSG_GCODE_DIFF_PRINTER_CANCELLED c=20 r=7
"G-code sliced for a different printer type. Please re-slice the model again. Print cancelled." "G-code sliced for a different printer type. Please re-slice the model again. Print cancelled."
"G-code pociety dla drukarki innego typu. Potnij model ponownie. Druk anulowany." "G-code pociety dla drukarki innego typu. Potnij model ponownie. Druk anulowany."