diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 4aca8391..5afaad56 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -329,14 +329,12 @@ extern uint8_t host_keepalive_interval; extern unsigned long starttime; extern unsigned long stoptime; extern ShortTimer usb_timer; -extern int bowden_length[4]; extern bool homing_flag; extern bool loading_flag; extern unsigned long total_filament_used; void save_statistics(unsigned long _total_filament_used, unsigned long _total_print_time); extern uint8_t status_number; extern uint8_t heating_status_counter; -extern char snmm_filaments_used; extern unsigned long PingTime; extern bool no_response; extern uint8_t important_status; diff --git a/Firmware/MarlinSerial.cpp b/Firmware/MarlinSerial.cpp index e09ddac3..76101e7a 100644 --- a/Firmware/MarlinSerial.cpp +++ b/Firmware/MarlinSerial.cpp @@ -75,7 +75,7 @@ ISR(M_USARTx_RX_vect) #endif //DEBUG_DUMP_TO_2ND_SERIAL } } -#ifndef SNMM + ISR(USART1_RX_vect) { // Test for a framing error. @@ -97,7 +97,6 @@ ISR(USART1_RX_vect) } } #endif -#endif // Public Methods ////////////////////////////////////////////////////////////// @@ -131,8 +130,6 @@ void MarlinSerial::begin(long baud) sbi(M_UCSRxB, M_TXENx); sbi(M_UCSRxB, M_RXCIEx); -#ifndef SNMM - if (selectedSerialPort == 1) { //set up also the second serial port if (useU2X) { UCSR1A = 1 << U2X1; @@ -148,9 +145,8 @@ void MarlinSerial::begin(long baud) sbi(UCSR1B, RXEN1); sbi(UCSR1B, TXEN1); - sbi(UCSR1B, RXCIE1); + sbi(UCSR1B, RXCIE1); } -#endif } void MarlinSerial::end() @@ -159,11 +155,9 @@ void MarlinSerial::end() cbi(M_UCSRxB, M_TXENx); cbi(M_UCSRxB, M_RXCIEx); -#ifndef SNMM cbi(UCSR1B, RXEN1); cbi(UCSR1B, TXEN1); cbi(UCSR1B, RXCIE1); -#endif } diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index b900492b..50342290 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -190,7 +190,6 @@ int extruder_multiply[EXTRUDERS] = {100 #endif }; -int bowden_length[4] = {385, 385, 385, 385}; bool homing_flag = false; @@ -219,8 +218,6 @@ bool loading_flag = false; #define XY_NO_RESTORE_FLAG (mesh_bed_leveling_flag || homing_flag) -char snmm_filaments_used = 0; - bool fan_state[2]; int fan_edge_counter[2]; @@ -769,13 +766,6 @@ static void factory_reset(char level) menu_progressbar_finish(); softReset(); break; - - -#ifdef SNMM - case 5: - bowden_menu(); - break; -#endif default: break; } @@ -1493,15 +1483,6 @@ void setup() #endif //DEBUG_SD_SPEED_TEST eeprom_init(); -#ifdef SNMM - if (eeprom_read_dword((uint32_t*)EEPROM_BOWDEN_LENGTH) == 0x0ffffffff) { //bowden length used for SNMM - int _z = BOWDEN_LENGTH; - for(uint8_t i = 0; i < 4; i++) { - eeprom_update_word((uint16_t*)EEPROM_BOWDEN_LENGTH + i, _z); - } - } -#endif - // In the future, somewhere here would one compare the current firmware version against the firmware version stored in the EEPROM. // If they differ, an update procedure may need to be performed. At the end of this block, the current firmware version // is being written into the EEPROM, so the update procedure will be triggered only once. @@ -1569,7 +1550,6 @@ void setup() #ifdef PAT9125 fsensor_setup_interrupt(); #endif //PAT9125 - eeprom_update_block(bowden_length, (uint16_t*)EEPROM_BOWDEN_LENGTH, sizeof(bowden_length)); #ifndef DEBUG_DISABLE_STARTMSGS KEEPALIVE_STATE(PAUSED_FOR_USER); @@ -4257,12 +4237,6 @@ void process_commands() // PRUSA GCODES KEEPALIVE_STATE(IN_HANDLER); - -#ifdef SNMM - float tmp_motor[3] = DEFAULT_PWM_MOTOR_CURRENT; - float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD; - int8_t SilentMode; -#endif /*! --------------------------------------------------------------------------------- @@ -6903,7 +6877,6 @@ Sigma_Exit: #endif } } - snmm_filaments_used = 0; break; /*! @@ -8881,20 +8854,11 @@ Sigma_Exit: M702 [ U | C ] #### Parameters - - `U` - Unload all filaments used in current print - `C` - Unload just current filament - without any parameters unload all filaments */ case 702: { -#ifdef SNMM - if (code_seen('U')) - extr_unload_used(); //! if "U" unload all filaments which were used in current print - else if (code_seen('C')) - extr_unload(); //! if "C" unload just current filament - else - extr_unload_all(); //! otherwise unload all filaments -#else if (code_seen('C')) { if(mmu_enabled) extr_unload(); //! if "C" unload current filament; if mmu is not present no action is performed } @@ -8902,8 +8866,6 @@ Sigma_Exit: if(mmu_enabled) extr_unload(); //! unload current filament else unload_filament(); } - -#endif //SNMM } break; @@ -8996,7 +8958,6 @@ Sigma_Exit: } } st_synchronize(); - snmm_filaments_used |= (1 << tmp_extruder); //for stop print if (mmu_enabled) { @@ -9027,47 +8988,6 @@ Sigma_Exit: } else { -#ifdef SNMM - mmu_extruder = tmp_extruder; - - _delay(100); - - disable_e0(); - disable_e1(); - disable_e2(); - - SET_OUTPUT(E_MUX0_PIN); - SET_OUTPUT(E_MUX1_PIN); - - _delay(100); - SERIAL_ECHO_START; - SERIAL_ECHO("T:"); - SERIAL_ECHOLN((int)tmp_extruder); - switch (tmp_extruder) { - case 1: - WRITE(E_MUX0_PIN, HIGH); - WRITE(E_MUX1_PIN, LOW); - - break; - case 2: - WRITE(E_MUX0_PIN, LOW); - WRITE(E_MUX1_PIN, HIGH); - - break; - case 3: - WRITE(E_MUX0_PIN, HIGH); - WRITE(E_MUX1_PIN, HIGH); - - break; - default: - WRITE(E_MUX0_PIN, LOW); - WRITE(E_MUX1_PIN, LOW); - - break; - } - _delay(100); - -#else //SNMM if (tmp_extruder >= EXTRUDERS) { SERIAL_ECHO_START; SERIAL_ECHO('T'); @@ -9111,8 +9031,6 @@ Sigma_Exit: SERIAL_ECHORPGM(_n("Active Extruder: "));////MSG_ACTIVE_EXTRUDER SERIAL_PROTOCOLLN((int)active_extruder); } - -#endif //SNMM } } } // end if(code_seen('T')) (end of T codes) @@ -12039,35 +11957,15 @@ void M600_wait_for_user(float HotendTempBckp) { void M600_load_filament_movements() { -#ifdef SNMM - display_loading(); - do - { - current_position[E_AXIS] += 0.002; - plan_buffer_line_curposXYZE(500, active_extruder); - delay_keep_alive(2); - } - while (!lcd_clicked()); - st_synchronize(); - current_position[E_AXIS] += bowden_length[mmu_extruder]; - plan_buffer_line_curposXYZE(3000, active_extruder); - current_position[E_AXIS] += FIL_LOAD_LENGTH - 60; - plan_buffer_line_curposXYZE(1400, active_extruder); - current_position[E_AXIS] += 40; - plan_buffer_line_curposXYZE(400, active_extruder); - current_position[E_AXIS] += 10; - plan_buffer_line_curposXYZE(50, active_extruder); -#else - current_position[E_AXIS]+= FILAMENTCHANGE_FIRSTFEED ; + current_position[E_AXIS]+= FILAMENTCHANGE_FIRSTFEED; plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST); -#endif load_filament_final_feed(); lcd_loading_filament(); st_synchronize(); } void M600_load_filament() { - //load filament for single material and SNMM + //load filament for single material and MMU lcd_wait_interact(); //load_filament_time = _millis(); diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index 49701107..b77b4de5 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -122,7 +122,7 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP | 0x0FB0h 4016 | int16 | EEPROM_PROBE_TEMP_SHIFT | ??? | ??? | ??? | ??? | D3 Ax0fb0 C10 | 0x0FAFh 4015 | bool | EEPROM_TEMP_CAL_ACTIVE | 00h 0 | 00h 0 | PINDA Temp cal.: __inactive__ | LCD menu | D3 Ax0faf C1 | ^ | ^ | ^ | ffh 255 | ^ | PINDA Temp cal.: __active__ | ^ | ^ -| 0x0FA7h 4007 | uint32 | EEPROM_BOWDEN_LENGTH | ??? | ff 00 00 00h | Bowden length | ??? | D3 Ax0fae C8 +| 0x0FA7h 4007 | ??? | _EEPROM_FREE_NR6_ | ??? | | _Free EEPROM space_ | ??? | D3 Ax0fae C8 | ^ | ^ | ^ | ^ | 00 00 00 00h | ^ | ^ | ^ | 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp: __not calibrated__ | ??? | D3 Ax0fa6 C1 | ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp: __calibrated__ | ^ | ^ @@ -379,8 +379,8 @@ static_assert(sizeof(Sheets) == EEPROM_SHEETS_SIZEOF, "Sizeof(Sheets) is not EEP #define EEPROM_PRINT_FLAG (EEPROM_TOSHIBA_FLASH_AIR_COMPATIBLITY-1) #define EEPROM_PROBE_TEMP_SHIFT (EEPROM_PRINT_FLAG - 2*5) //5 x int for storing pinda probe temp shift relative to 50 C; unit: motor steps #define EEPROM_TEMP_CAL_ACTIVE (EEPROM_PROBE_TEMP_SHIFT - 1) -#define EEPROM_BOWDEN_LENGTH (EEPROM_TEMP_CAL_ACTIVE - 2*4) //4 x int for bowden lengths for multimaterial -#define EEPROM_CALIBRATION_STATUS_PINDA (EEPROM_BOWDEN_LENGTH - 1) //0 - not calibrated; 1 - calibrated +#define _EEPROM_FREE_NR6_ (EEPROM_TEMP_CAL_ACTIVE - 2*4) //4 x int (used to be for bowden lengths for SNMM) +#define EEPROM_CALIBRATION_STATUS_PINDA (_EEPROM_FREE_NR6_ - 1) //0 - not calibrated; 1 - calibrated #define EEPROM_UVLO (EEPROM_CALIBRATION_STATUS_PINDA - 1) //1 - uvlo during print #define EEPROM_UVLO_CURRENT_POSITION (EEPROM_UVLO-2*4) // 2 x float for current_position in X and Y axes #define EEPROM_FILENAME (EEPROM_UVLO_CURRENT_POSITION - 8) //8chars to store filename without extension diff --git a/Firmware/messages.cpp b/Firmware/messages.cpp index 9bf313bb..5b155e85 100644 --- a/Firmware/messages.cpp +++ b/Firmware/messages.cpp @@ -34,10 +34,6 @@ const char MSG_FILAMENT[] PROGMEM_I1 = ISTR("Filament"); ////c=17 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_LOADED[] PROGMEM_I1 = ISTR("Is filament loaded?"); ////c=20 r=2 -const char MSG_FILAMENT_LOADING_T0[] PROGMEM_I1 = ISTR("Insert filament into extruder 1. Click when done."); ////c=20 r=4 -const char MSG_FILAMENT_LOADING_T1[] PROGMEM_I1 = ISTR("Insert filament into extruder 2. Click when done."); ////c=20 r=4 -const char MSG_FILAMENT_LOADING_T2[] PROGMEM_I1 = ISTR("Insert filament into extruder 3. Click when done."); ////c=20 r=4 -const char MSG_FILAMENT_LOADING_T3[] PROGMEM_I1 = ISTR("Insert filament into extruder 4. Click when done."); ////c=20 r=4 const char MSG_FILAMENTCHANGE[] PROGMEM_I1 = ISTR("Change filament"); ////c=18 const char MSG_FIND_BED_OFFSET_AND_SKEW_LINE1[] PROGMEM_I1 = ISTR("Searching bed calibration point"); ////c=20 r=3 const char MSG_FINISHING_MOVEMENTS[] PROGMEM_I1 = ISTR("Finishing movements"); ////c=20 diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 7fcef8ab..2f722152 100755 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -879,7 +879,6 @@ void mmu_M600_load_filament(bool automatic, float nozzle_temp) lcd_puts_at_P(0, 1, _T(MSG_LOADING_FILAMENT)); lcd_print(' '); lcd_print(tmp_extruder + 1); - snmm_filaments_used |= (1 << tmp_extruder); //for stop print //printf_P(PSTR("T code: %d \n"), tmp_extruder); //mmu_printf_P(PSTR("T%d\n"), tmp_extruder); @@ -897,86 +896,8 @@ void mmu_M600_load_filament(bool automatic, float nozzle_temp) st_synchronize(); } - -#ifdef SNMM -void extr_mov(float shift, float feed_rate) -{ //move extruder no matter what the current heater temperature is - set_extrude_min_temp(.0); - current_position[E_AXIS] += shift; - plan_buffer_line_curposXYZE(feed_rate, active_extruder); - set_extrude_min_temp(EXTRUDE_MINTEMP); -} -#endif //SNMM - - -void change_extr(int -#ifdef SNMM - extr -#endif //SNMM - ) { //switches multiplexer for extruders -#ifdef SNMM - st_synchronize(); - _delay(100); - - disable_e0(); - disable_e1(); - disable_e2(); - - mmu_extruder = extr; - - SET_OUTPUT(E_MUX0_PIN); - SET_OUTPUT(E_MUX1_PIN); - - switch (extr) { - case 1: - WRITE(E_MUX0_PIN, HIGH); - WRITE(E_MUX1_PIN, LOW); - - break; - case 2: - WRITE(E_MUX0_PIN, LOW); - WRITE(E_MUX1_PIN, HIGH); - - break; - case 3: - WRITE(E_MUX0_PIN, HIGH); - WRITE(E_MUX1_PIN, HIGH); - - break; - default: - WRITE(E_MUX0_PIN, LOW); - WRITE(E_MUX1_PIN, LOW); - - break; - } - _delay(100); -#endif -} - -int get_ext_nr() -{ //reads multiplexer input pins and return current extruder number (counted from 0) -#ifndef SNMM - return(mmu_extruder); //update needed -#else - return(2 * READ(E_MUX1_PIN) + READ(E_MUX0_PIN)); -#endif -} - - -void display_loading() +void extr_adj(uint8_t extruder) //loading filament into the MMU unit { - switch (mmu_extruder) - { - case 1: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T1)); break; - case 2: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T2)); break; - case 3: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T3)); break; - default: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T0)); break; - } -} - -void extr_adj(uint8_t extruder) //loading filament for SNMM -{ -#ifndef SNMM MmuCmd cmd = MmuCmd::L0 + extruder; if (extruder > (MmuCmd::L4 - MmuCmd::L0)) { @@ -1002,45 +923,6 @@ void extr_adj(uint8_t extruder) //loading filament for SNMM //lcd_return_to_status(); -#else - - bool correct; - max_feedrate[E_AXIS] =80; - //max_feedrate[E_AXIS] = 50; - START: - lcd_clear(); - lcd_set_cursor(0, 0); - switch (extruder) { - case 1: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T1)); break; - case 2: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T2)); break; - case 3: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T3)); break; - default: lcd_display_message_fullscreen_P(_T(MSG_FILAMENT_LOADING_T0)); break; - } - KEEPALIVE_STATE(PAUSED_FOR_USER); - do{ - extr_mov(0.001,1000); - delay_keep_alive(2); - } while (!lcd_clicked()); - //delay_keep_alive(500); - KEEPALIVE_STATE(IN_HANDLER); - st_synchronize(); - //correct = lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_FIL_LOADED_CHECK, false); - //if (!correct) goto START; - //extr_mov(BOWDEN_LENGTH/2.f, 500); //dividing by 2 is there because of max. extrusion length limitation (x_max + y_max) - //extr_mov(BOWDEN_LENGTH/2.f, 500); - extr_mov(bowden_length[extruder], 500); - lcd_clear(); - lcd_set_cursor(0, 0); lcd_puts_P(_T(MSG_LOADING_FILAMENT)); - if(strlen(_T(MSG_LOADING_FILAMENT))>18) lcd_set_cursor(0, 1); - else lcd_print(' '); - lcd_print(mmu_extruder + 1); - lcd_set_cursor(0, 2); lcd_puts_P(_T(MSG_PLEASE_WAIT)); - st_synchronize(); - max_feedrate[E_AXIS] = 50; - lcd_update_enable(true); - lcd_return_to_status(); - lcdDrawUpdate = 2; -#endif } struct E_step @@ -1087,15 +969,8 @@ void extr_unload_view() void extr_unload() { //unload just current filament for multimaterial printers -#ifdef SNMM - float tmp_motor[3] = DEFAULT_PWM_MOTOR_CURRENT; - float tmp_motor_loud[3] = DEFAULT_PWM_MOTOR_CURRENT_LOUD; - uint8_t SilentMode = eeprom_read_byte((uint8_t*)EEPROM_SILENT); -#endif - if (degHotend0() > EXTRUDE_MINTEMP) { -#ifndef SNMM st_synchronize(); menu_submenu(extr_unload_view); @@ -1107,58 +982,6 @@ void extr_unload() manage_response(false, true, MMU_UNLOAD_MOVE); menu_back(); -#else //SNMM - - lcd_clear(); - lcd_display_message_fullscreen_P(PSTR("")); - max_feedrate[E_AXIS] = 50; - lcd_set_cursor(0, 0); lcd_puts_P(_T(MSG_UNLOADING_FILAMENT)); - lcd_print(' '); - lcd_print(mmu_extruder + 1); - lcd_set_cursor(0, 2); lcd_puts_P(_T(MSG_PLEASE_WAIT)); - if (current_position[Z_AXIS] < 15) { - current_position[Z_AXIS] += 15; //lifting in Z direction to make space for extrusion - plan_buffer_line_curposXYZE(25, active_extruder); - } - - current_position[E_AXIS] += 10; //extrusion - plan_buffer_line_curposXYZE(10, active_extruder); - st_current_set(2, E_MOTOR_HIGH_CURRENT); - if (current_temperature[0] < 230) { //PLA & all other filaments - current_position[E_AXIS] += 5.4; - plan_buffer_line_curposXYZE(2800 / 60, active_extruder); - current_position[E_AXIS] += 3.2; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); - current_position[E_AXIS] += 3; - plan_buffer_line_curposXYZE(3400 / 60, active_extruder); - } - else { //ABS - current_position[E_AXIS] += 3.1; - plan_buffer_line_curposXYZE(2000 / 60, active_extruder); - current_position[E_AXIS] += 3.1; - plan_buffer_line_curposXYZE(2500 / 60, active_extruder); - current_position[E_AXIS] += 4; - plan_buffer_line_curposXYZE(3000 / 60, active_extruder); - /*current_position[X_AXIS] += 23; //delay - plan_buffer_line_curposXYZE(600 / 60, active_extruder); //delay - current_position[X_AXIS] -= 23; //delay - plan_buffer_line_curposXYZE(600 / 60, active_extruder); //delay*/ - delay_keep_alive(4700); - } - - max_feedrate[E_AXIS] = 80; - current_position[E_AXIS] -= (bowden_length[mmu_extruder] + 60 + FIL_LOAD_LENGTH) / 2; - plan_buffer_line_curposXYZE(500, active_extruder); - current_position[E_AXIS] -= (bowden_length[mmu_extruder] + 60 + FIL_LOAD_LENGTH) / 2; - plan_buffer_line_curposXYZE(500, active_extruder); - st_synchronize(); - //st_current_init(); - if (SilentMode != SILENT_MODE_OFF) st_current_set(2, tmp_motor[2]); //set back to normal operation currents - else st_current_set(2, tmp_motor_loud[2]); - lcd_update_enable(true); - lcd_return_to_status(); - max_feedrate[E_AXIS] = 50; -#endif //SNMM } else { @@ -1166,165 +989,13 @@ void extr_unload() } } -//wrapper functions for loading filament -void extr_adj_0() -{ -#ifndef SNMM - enquecommand_P(PSTR("M701 E0")); -#else - change_extr(0); - extr_adj(0); -#endif -} - -void extr_adj_1() -{ -#ifndef SNMM - enquecommand_P(PSTR("M701 E1")); -#else - change_extr(1); - extr_adj(1); -#endif -} - -void extr_adj_2() -{ -#ifndef SNMM - enquecommand_P(PSTR("M701 E2")); -#else - change_extr(2); - extr_adj(2); -#endif -} - -void extr_adj_3() -{ -#ifndef SNMM - enquecommand_P(PSTR("M701 E3")); -#else - change_extr(3); - extr_adj(3); -#endif -} - -void extr_adj_4() -{ -#ifndef SNMM - enquecommand_P(PSTR("M701 E4")); -#else - change_extr(4); - extr_adj(4); -#endif -} - void load_all() { -#ifndef SNMM enquecommand_P(PSTR("M701 E0")); enquecommand_P(PSTR("M701 E1")); enquecommand_P(PSTR("M701 E2")); enquecommand_P(PSTR("M701 E3")); enquecommand_P(PSTR("M701 E4")); -#else - for (int i = 0; i < 4; i++) - { - change_extr(i); - extr_adj(i); - } -#endif -} - -//wrapper functions for changing extruders -void extr_change_0() -{ - change_extr(0); - lcd_return_to_status(); -} - -void extr_change_1() -{ - change_extr(1); - lcd_return_to_status(); -} - -void extr_change_2() -{ - change_extr(2); - lcd_return_to_status(); -} - -void extr_change_3() -{ - change_extr(3); - lcd_return_to_status(); -} - -#ifdef SNMM -//wrapper functions for unloading filament -void extr_unload_all() -{ - if (degHotend0() > EXTRUDE_MINTEMP) - { - for (int i = 0; i < 4; i++) - { - change_extr(i); - extr_unload(); - } - } - else - { - show_preheat_nozzle_warning(); - lcd_return_to_status(); - } -} - -//unloading just used filament (for snmm) -void extr_unload_used() -{ - if (degHotend0() > EXTRUDE_MINTEMP) { - for (int i = 0; i < 4; i++) { - if (snmm_filaments_used & (1 << i)) { - change_extr(i); - extr_unload(); - } - } - snmm_filaments_used = 0; - } - else { - show_preheat_nozzle_warning(); - lcd_return_to_status(); - } -} -#endif //SNMM - -void extr_unload_0() -{ - change_extr(0); - extr_unload(); -} - -void extr_unload_1() -{ - change_extr(1); - extr_unload(); -} - -void extr_unload_2() -{ - change_extr(2); - extr_unload(); -} - -void extr_unload_3() -{ - change_extr(3); - extr_unload(); -} - -void extr_unload_4() -{ - change_extr(4); - extr_unload(); } bool mmu_check_version() diff --git a/Firmware/mmu.h b/Firmware/mmu.h index 40a6dc72..eee6cf39 100644 --- a/Firmware/mmu.h +++ b/Firmware/mmu.h @@ -101,32 +101,9 @@ extern void mmu_load_to_nozzle(); extern void mmu_M600_load_filament(bool automatic, float nozzle_temp); extern void mmu_M600_wait_and_beep(); -extern void extr_mov(float shift, float feed_rate); -extern void change_extr(int extr); -extern int get_ext_nr(); -extern void display_loading(); extern void extr_adj(uint8_t extruder); extern void extr_unload(); - -extern void extr_adj_0(); -extern void extr_adj_1(); -extern void extr_adj_2(); -extern void extr_adj_3(); -extern void extr_adj_4(); extern void load_all(); -extern void extr_change_0(); -extern void extr_change_1(); -extern void extr_change_2(); -extern void extr_change_3(); -#ifdef SNMM -extern void extr_unload_all(); -extern void extr_unload_used(); -#endif //SNMM -extern void extr_unload_0(); -extern void extr_unload_1(); -extern void extr_unload_2(); -extern void extr_unload_3(); -extern void extr_unload_4(); extern bool mmu_check_version(); extern void mmu_show_warning(); diff --git a/Firmware/pins_Rambo_1_0.h b/Firmware/pins_Rambo_1_0.h index bb6eb026..5cd0a670 100644 --- a/Firmware/pins_Rambo_1_0.h +++ b/Firmware/pins_Rambo_1_0.h @@ -64,11 +64,6 @@ #define E0_MS1_PIN 65 #define E0_MS2_PIN 66 -#ifdef SNMM - #define E_MUX0_PIN 17 - #define E_MUX1_PIN 16 -#endif - #define MOTOR_CURRENT_PWM_XY_PIN 46 #define MOTOR_CURRENT_PWM_Z_PIN 45 diff --git a/Firmware/pins_Rambo_1_3.h b/Firmware/pins_Rambo_1_3.h index 522ad28f..f733c105 100644 --- a/Firmware/pins_Rambo_1_3.h +++ b/Firmware/pins_Rambo_1_3.h @@ -67,11 +67,6 @@ #define E0_MS1_PIN 65 #define E0_MS2_PIN 66 -#ifdef SNMM - #define E_MUX0_PIN 17 - #define E_MUX1_PIN 16 -#endif - #define MOTOR_CURRENT_PWM_XY_PIN 46 #define MOTOR_CURRENT_PWM_Z_PIN 45 diff --git a/Firmware/stepper.cpp b/Firmware/stepper.cpp index e0b7e985..0b221911 100644 --- a/Firmware/stepper.cpp +++ b/Firmware/stepper.cpp @@ -446,20 +446,12 @@ FORCE_INLINE void stepper_next_block() } if ((out_bits & (1 << E_AXIS)) != 0) { // -direction #ifndef LIN_ADVANCE - WRITE(E0_DIR_PIN, - #ifdef SNMM - (mmu_extruder == 0 || mmu_extruder == 2) ? !INVERT_E0_DIR : - #endif // SNMM - INVERT_E0_DIR); + WRITE(E0_DIR_PIN, INVERT_E0_DIR); #endif /* LIN_ADVANCE */ count_direction[E_AXIS] = -1; } else { // +direction #ifndef LIN_ADVANCE - WRITE(E0_DIR_PIN, - #ifdef SNMM - (mmu_extruder == 0 || mmu_extruder == 2) ? INVERT_E0_DIR : - #endif // SNMM - !INVERT_E0_DIR); + WRITE(E0_DIR_PIN, !INVERT_E0_DIR); #endif /* LIN_ADVANCE */ count_direction[E_AXIS] = 1; } diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a3ee0c45..e851b00d 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -239,18 +239,11 @@ static void lcd_detect_IRsensor(); static void lcd_selftest_error(TestError error, const char *_error_1, const char *_error_2); static void lcd_colorprint_change(); -#if defined (SNMM) || defined(SNMM_V2) -static void fil_load_menu(); -static void fil_unload_menu(); -#endif // SNMM || SNMM_V2 static void lcd_disable_farm_mode(); static void lcd_set_fan_check(); #ifdef MMU_HAS_CUTTER static void lcd_cutter_enabled(); #endif -#ifdef SNMM -static char snmm_stop_print_menu(); -#endif //SNMM #ifdef SDCARD_SORT_ALPHA static void lcd_sort_type_set(); #endif @@ -889,273 +882,6 @@ void lcd_commands() } } - -#ifdef SNMM - if (lcd_commands_type == LcdCommands::Layer1Cal) - { - char cmd1[30]; - float width = 0.4; - float length = 20 - width; - float extr = count_e(0.2, width, length); - float extr_short_segment = count_e(0.2, width, width); - - if (lcd_commands_step>1) lcd_timeoutToStatus.start(); //if user dont confirm live adjust Z value by pressing the knob, we are saving last value by timeout to status screen - if (lcd_commands_step == 0) - { - lcd_commands_step = 10; - } - if (lcd_commands_step == 10 && !blocks_queued() && cmd_buffer_empty()) - { - enquecommand_P(PSTR("M107")); - enquecommand_P(PSTR("M104 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP))); - enquecommand_P(PSTR("M140 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP))); - enquecommand_P(PSTR("M190 S" STRINGIFY(PLA_PREHEAT_HPB_TEMP))); - enquecommand_P(PSTR("M109 S" STRINGIFY(PLA_PREHEAT_HOTEND_TEMP))); - enquecommand_P(PSTR("T0")); - enquecommand_P(_T(MSG_M117_V2_CALIBRATION)); - enquecommand_P(PSTR("G87")); //sets calibration status - enquecommand_P(PSTR("G28")); - enquecommand_P(PSTR("G21")); //set units to millimeters - enquecommand_P(PSTR("G90")); //use absolute coordinates - enquecommand_P(PSTR("M83")); //use relative distances for extrusion - enquecommand_P(PSTR("G92 E0")); - enquecommand_P(PSTR("M203 E100")); - enquecommand_P(PSTR("M92 E140")); - lcd_commands_step = 9; - } - if (lcd_commands_step == 9 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_timeoutToStatus.start(); - enquecommand_P(PSTR("G1 Z0.250 F7200.000")); - enquecommand_P(PSTR("G1 X50.0 E80.0 F1000.0")); - enquecommand_P(PSTR("G1 X160.0 E20.0 F1000.0")); - enquecommand_P(PSTR("G1 Z0.200 F7200.000")); - enquecommand_P(PSTR("G1 X220.0 E13 F1000.0")); - enquecommand_P(PSTR("G1 X240.0 E0 F1000.0")); - enquecommand_P(PSTR("G92 E0.0")); - enquecommand_P(PSTR("G21")); - enquecommand_P(PSTR("G90")); - enquecommand_P(PSTR("M83")); - enquecommand_P(PSTR("G1 E-4 F2100.00000")); - enquecommand_P(PSTR("G1 Z0.150 F7200.000")); - enquecommand_P(PSTR("M204 S1000")); - enquecommand_P(PSTR("G1 F4000")); - - lcd_clear(); - menu_goto(lcd_babystep_z, 0, false, true); - - - lcd_commands_step = 8; - } - if (lcd_commands_step == 8 && !blocks_queued() && cmd_buffer_empty()) //draw meander - { - lcd_timeoutToStatus.start(); - - - enquecommand_P(PSTR("G1 X50 Y155")); - enquecommand_P(PSTR("G1 X60 Y155 E4")); - enquecommand_P(PSTR("G1 F1080")); - enquecommand_P(PSTR("G1 X75 Y155 E2.5")); - enquecommand_P(PSTR("G1 X100 Y155 E2")); - enquecommand_P(PSTR("G1 X200 Y155 E2.62773")); - enquecommand_P(PSTR("G1 X200 Y135 E0.66174")); - enquecommand_P(PSTR("G1 X50 Y135 E3.62773")); - enquecommand_P(PSTR("G1 X50 Y115 E0.49386")); - enquecommand_P(PSTR("G1 X200 Y115 E3.62773")); - enquecommand_P(PSTR("G1 X200 Y95 E0.49386")); - enquecommand_P(PSTR("G1 X50 Y95 E3.62773")); - enquecommand_P(PSTR("G1 X50 Y75 E0.49386")); - enquecommand_P(PSTR("G1 X200 Y75 E3.62773")); - enquecommand_P(PSTR("G1 X200 Y55 E0.49386")); - enquecommand_P(PSTR("G1 X50 Y55 E3.62773")); - - lcd_commands_step = 7; - } - - if (lcd_commands_step == 7 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_timeoutToStatus.start(); - strcpy(cmd1, "G1 X50 Y35 E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - - for (int i = 0; i < 4; i++) { - strcpy(cmd1, "G1 X70 Y"); - strcat(cmd1, ftostr32(35 - i*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - strcpy(cmd1, "G1 X50 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (i + 1)*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - } - - lcd_commands_step = 6; - } - - if (lcd_commands_step == 6 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_timeoutToStatus.start(); - for (int i = 4; i < 8; i++) { - strcpy(cmd1, "G1 X70 Y"); - strcat(cmd1, ftostr32(35 - i*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - strcpy(cmd1, "G1 X50 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (i + 1)*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - } - - lcd_commands_step = 5; - } - - if (lcd_commands_step == 5 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_timeoutToStatus.start(); - for (int i = 8; i < 12; i++) { - strcpy(cmd1, "G1 X70 Y"); - strcat(cmd1, ftostr32(35 - i*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - strcpy(cmd1, "G1 X50 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (i + 1)*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - } - - lcd_commands_step = 4; - } - - if (lcd_commands_step == 4 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_timeoutToStatus.start(); - for (int i = 12; i < 16; i++) { - strcpy(cmd1, "G1 X70 Y"); - strcat(cmd1, ftostr32(35 - i*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - strcpy(cmd1, "G1 X50 Y"); - strcat(cmd1, ftostr32(35 - (2 * i + 1)*width)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr)); - enquecommand(cmd1); - strcpy(cmd1, "G1 Y"); - strcat(cmd1, ftostr32(35 - (i + 1)*width * 2)); - strcat(cmd1, " E"); - strcat(cmd1, ftostr43(extr_short_segment)); - enquecommand(cmd1); - } - - lcd_commands_step = 3; - } - - if (lcd_commands_step == 3 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_timeoutToStatus.start(); - enquecommand_P(PSTR("G1 E-0.07500 F2100.00000")); - enquecommand_P(PSTR("G4 S0")); - enquecommand_P(PSTR("G1 E-4 F2100.00000")); - enquecommand_P(PSTR("G1 Z0.5 F7200.000")); - enquecommand_P(PSTR("G1 X245 Y1")); - enquecommand_P(PSTR("G1 X240 E4")); - enquecommand_P(PSTR("G1 F4000")); - enquecommand_P(PSTR("G1 X190 E2.7")); - enquecommand_P(PSTR("G1 F4600")); - enquecommand_P(PSTR("G1 X110 E2.8")); - enquecommand_P(PSTR("G1 F5200")); - enquecommand_P(PSTR("G1 X40 E3")); - enquecommand_P(PSTR("G1 E-15.0000 F5000")); - enquecommand_P(PSTR("G1 E-50.0000 F5400")); - enquecommand_P(PSTR("G1 E-15.0000 F3000")); - enquecommand_P(PSTR("G1 E-12.0000 F2000")); - enquecommand_P(PSTR("G1 F1600")); - - lcd_commands_step = 2; - } - if (lcd_commands_step == 2 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_timeoutToStatus.start(); - - enquecommand_P(PSTR("G1 X0 Y1 E3.0000")); - enquecommand_P(PSTR("G1 X50 Y1 E-5.0000")); - enquecommand_P(PSTR("G1 F2000")); - enquecommand_P(PSTR("G1 X0 Y1 E5.0000")); - enquecommand_P(PSTR("G1 X50 Y1 E-5.0000")); - enquecommand_P(PSTR("G1 F2400")); - enquecommand_P(PSTR("G1 X0 Y1 E5.0000")); - enquecommand_P(PSTR("G1 X50 Y1 E-5.0000")); - enquecommand_P(PSTR("G1 F2400")); - enquecommand_P(PSTR("G1 X0 Y1 E5.0000")); - enquecommand_P(PSTR("G1 X50 Y1 E-3.0000")); - enquecommand_P(PSTR("G4 S0")); - enquecommand_P(PSTR("M107")); - enquecommand_P(PSTR("M104 S0")); - enquecommand_P(PSTR("M140 S0")); - enquecommand_P(PSTR("G1 X10 Y180 F4000")); - enquecommand_P(PSTR("G1 Z10 F1300.000")); - enquecommand_P(PSTR("M84")); - - lcd_commands_step = 1; - - } - - if (lcd_commands_step == 1 && !blocks_queued() && cmd_buffer_empty()) - { - lcd_setstatuspgm(MSG_WELCOME); - lcd_commands_step = 0; - lcd_commands_type = 0; - if (eeprom_read_byte((uint8_t*)EEPROM_WIZARD_ACTIVE) == 1) { - lcd_wizard(WizState::RepeatLay1Cal); - } - } - - } - -#else //if not SNMM - if (lcd_commands_type == LcdCommands::Layer1Cal) { char cmd1[30]; @@ -1245,8 +971,6 @@ void lcd_commands() } } -#endif // not SNMM - if (lcd_commands_type == LcdCommands::FarmModeConfirm) /// farm mode confirm { @@ -1280,11 +1004,7 @@ void lcd_commands() enquecommand_P(PSTR("G91")); enquecommand_P(PSTR("G1 Z15 F1500")); st_synchronize(); - #ifdef SNMM - lcd_commands_step = 7; - #else lcd_commands_step = 5; - #endif } } @@ -2443,12 +2163,7 @@ void lcd_wait_interact() { lcd_clear(); - lcd_set_cursor(0, 1); -#ifdef SNMM - lcd_puts_P(_i("Prepare new filament"));////MSG_PREPARE_FILAMENT c=20 -#else - lcd_puts_P(_i("Insert filament"));////MSG_INSERT_FILAMENT c=20 -#endif + lcd_puts_at_P(0, 1, _i("Insert filament"));////MSG_INSERT_FILAMENT c=20 if (!fsensor_autoload_enabled) { lcd_puts_at_P(0, 2, _i("and press the knob"));////MSG_PRESS c=20 r=2 } @@ -2494,25 +2209,9 @@ void lcd_loading_filament() { lcd_puts_at_P(0, 0, _T(MSG_LOADING_FILAMENT)); lcd_puts_at_P(0, 2, _T(MSG_PLEASE_WAIT)); -#ifdef SNMM - for (int i = 0; i < 20; i++) { - - lcd_set_cursor(i, 3); - lcd_print('.'); - for (int j = 0; j < 10 ; j++) { - manage_heater(); - manage_inactivity(true); - - _delay(153); - } - - - } -#else //SNMM uint16_t slow_seq_time = (FILAMENTCHANGE_FINALFEED * 1000ul) / FILAMENTCHANGE_EFEED_FINAL; uint16_t fast_seq_time = (FILAMENTCHANGE_FIRSTFEED * 1000ul) / FILAMENTCHANGE_EFEED_FIRST; lcd_loading_progress_bar(slow_seq_time + fast_seq_time); //show progress bar for total time of filament loading fast + slow sequence -#endif //SNMM } @@ -4454,97 +4153,6 @@ void lcd_calibrate_pinda() { lcd_return_to_status(); } -#ifndef SNMM - -/*void lcd_calibrate_extruder() { - - if (degHotend0() > EXTRUDE_MINTEMP) - { - current_position[E_AXIS] = 0; //set initial position to zero - plan_set_e_position(current_position[E_AXIS]); - - //long steps_start = st_get_position(E_AXIS); - - long steps_final; - float e_steps_per_unit; - float feedrate = (180 / axis_steps_per_unit[E_AXIS]) * 1; //3 //initial automatic extrusion feedrate (depends on current value of axis_steps_per_unit to avoid too fast extrusion) - float e_shift_calibration = (axis_steps_per_unit[E_AXIS] > 180 ) ? ((180 / axis_steps_per_unit[E_AXIS]) * 70): 70; //length of initial automatic extrusion sequence - const char *msg_e_cal_knob = _i("Rotate knob until mark reaches extruder body. Click when done.");////MSG_E_CAL_KNOB c=20 r=8 - const char *msg_next_e_cal_knob = lcd_display_message_fullscreen_P(msg_e_cal_knob); - const bool multi_screen = msg_next_e_cal_knob != NULL; - unsigned long msg_millis; - - lcd_show_fullscreen_message_and_wait_P(_i("Mark filament 100mm from extruder body. Click when done."));////MSG_MARK_FIL c=20 r=8 - lcd_clear(); - - - lcd_set_cursor(0, 1); lcd_puts_P(_T(MSG_PLEASE_WAIT)); - current_position[E_AXIS] += e_shift_calibration; - plan_buffer_line_curposXYZE(feedrate, active_extruder); - st_synchronize(); - - lcd_display_message_fullscreen_P(msg_e_cal_knob); - msg_millis = _millis(); - while (!LCD_CLICKED) { - if (multi_screen && _millis() - msg_millis > 5000) { - if (msg_next_e_cal_knob == NULL) - msg_next_e_cal_knob = msg_e_cal_knob; - msg_next_e_cal_knob = lcd_display_message_fullscreen_P(msg_next_e_cal_knob); - msg_millis = _millis(); - } - - //manage_inactivity(true); - manage_heater(); - if (abs(lcd_encoder_diff) >= ENCODER_PULSES_PER_STEP) { //adjusting mark by knob rotation - delay_keep_alive(50); - //previous_millis_cmd = _millis(); - lcd_encoder += (lcd_encoder_diff / ENCODER_PULSES_PER_STEP); - lcd_encoder_diff = 0; - if (!planner_queue_full()) { - current_position[E_AXIS] += float(abs((int)lcd_encoder)) * 0.01; //0.05 - lcd_encoder = 0; - plan_buffer_line_curposXYZE(feedrate, active_extruder); - - } - } - } - - steps_final = current_position[E_AXIS] * axis_steps_per_unit[E_AXIS]; - //steps_final = st_get_position(E_AXIS); - lcd_draw_update = 1; - e_steps_per_unit = ((float)(steps_final)) / 100.0f; - if (e_steps_per_unit < MIN_E_STEPS_PER_UNIT) e_steps_per_unit = MIN_E_STEPS_PER_UNIT; - if (e_steps_per_unit > MAX_E_STEPS_PER_UNIT) e_steps_per_unit = MAX_E_STEPS_PER_UNIT; - - lcd_clear(); - - axis_steps_per_unit[E_AXIS] = e_steps_per_unit; - enquecommand_P(PSTR("M500")); //store settings to eeprom - - //lcd_drawedit(PSTR("Result"), ftostr31(axis_steps_per_unit[E_AXIS])); - //delay_keep_alive(2000); - delay_keep_alive(500); - lcd_show_fullscreen_message_and_wait_P(_i("E calibration finished. Please clean the nozzle. Click when done."));////MSG_CLEAN_NOZZLE_E c=20 r=8 - lcd_update_enable(true); - lcd_draw_update = 2; - - } - else - { - show_preheat_nozzle_warning(); - } - lcd_return_to_status(); -} - -void lcd_extr_cal_reset() { - float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT; - axis_steps_per_unit[E_AXIS] = tmp1[3]; - //extrudemultiply = 100; - enquecommand_P(PSTR("M500")); -}*/ - -#endif - void lcd_toshiba_flash_air_compatibility_toggle() { card.ToshibaFlashAir_enable(! card.ToshibaFlashAir_isEnabled()); @@ -4723,9 +4331,6 @@ static void lcd_wizard_load() lcd_update_enable(false); lcd_clear(); lcd_puts_at_P(0, 2, _T(MSG_LOADING_FILAMENT)); -#ifdef SNMM - change_extr(0); -#endif loading_flag = true; gcode_M701(); } @@ -5685,11 +5290,8 @@ static void lcd_calibration_menu() MENU_ITEM_FUNCTION_P(_i("Calibrate XYZ"), lcd_mesh_calibration);////MSG_CALIBRATE_BED c=18 // "Calibrate Z" with storing the reference values to EEPROM. MENU_ITEM_SUBMENU_P(_T(MSG_HOMEYZ), lcd_mesh_calibration_z); -#ifndef SNMM - //MENU_ITEM_FUNCTION_P(_i("Calibrate E"), lcd_calibrate_extruder);////MSG_CALIBRATE_E c=20 -#endif - // "Mesh Bed Leveling" - MENU_ITEM_SUBMENU_P(_T(MSG_MESH_BED_LEVELING), lcd_mesh_bedleveling); + + MENU_ITEM_SUBMENU_P(_T(MSG_MESH_BED_LEVELING), lcd_mesh_bedleveling); ////MSG_MESH_BED_LEVELING c=18 MENU_ITEM_SUBMENU_P(_i("Bed level correct"), lcd_adjust_bed);////MSG_BED_CORRECTION_MENU c=18 MENU_ITEM_SUBMENU_P(_i("PID calibration"), pid_extruder);////MSG_PID_EXTRUDER c=17 @@ -5697,9 +5299,6 @@ static void lcd_calibration_menu() MENU_ITEM_SUBMENU_P(_i("Show end stops"), menu_show_end_stops);////MSG_SHOW_END_STOPS c=18 #endif MENU_ITEM_GCODE_P(_i("Reset XYZ calibr."), PSTR("M44"));////MSG_CALIBRATE_BED_RESET c=18 -#ifndef SNMM - //MENU_ITEM_FUNCTION_P(MSG_RESET_CALIBRATE_E, lcd_extr_cal_reset); -#endif if(has_temperature_compensation()) { MENU_ITEM_SUBMENU_P(_i("Temp. calibration"), lcd_pinda_calibration_menu);////MSG_CALIBRATION_PINDA_MENU c=17 @@ -5709,156 +5308,6 @@ static void lcd_calibration_menu() MENU_END(); } -void bowden_menu() { - int enc_dif = lcd_encoder_diff; - int cursor_pos = 0; - lcd_clear(); - lcd_putc_at(0, 0, '>'); - for (uint_least8_t i = 0; i < 4; i++) { - lcd_puts_at_P(1, i, PSTR("Extruder ")); - lcd_print(i); - lcd_print(": "); - bowden_length[i] = eeprom_read_word((uint16_t*)EEPROM_BOWDEN_LENGTH + i); - lcd_print(bowden_length[i] - 48); - - } - enc_dif = lcd_encoder_diff; - lcd_consume_click(); - while (1) { - - manage_heater(); - manage_inactivity(true); - - if (abs((enc_dif - lcd_encoder_diff)) > 2) { - - if (enc_dif > lcd_encoder_diff) { - cursor_pos--; - } - - if (enc_dif < lcd_encoder_diff) { - cursor_pos++; - } - - if (cursor_pos > 3) { - cursor_pos = 3; - Sound_MakeSound(e_SOUND_TYPE_BlindAlert); - } - - if (cursor_pos < 0) { - cursor_pos = 0; - Sound_MakeSound(e_SOUND_TYPE_BlindAlert); - } - - lcd_puts_at_P(0, 0, PSTR(" \n \n \n ")); - lcd_putc_at(0, cursor_pos, '>'); - Sound_MakeSound(e_SOUND_TYPE_EncoderMove); - enc_dif = lcd_encoder_diff; - _delay(100); - } - - if (lcd_clicked()) { - Sound_MakeSound(e_SOUND_TYPE_ButtonEcho); - lcd_clear(); - while (1) { - - manage_heater(); - manage_inactivity(true); - - lcd_puts_at_P(1, 1, PSTR("Extruder ")); - lcd_print(cursor_pos); - lcd_print(": "); - lcd_set_cursor(13, 1); - lcd_print(bowden_length[cursor_pos] - 48); - - if (abs((enc_dif - lcd_encoder_diff)) > 2) { - if (enc_dif > lcd_encoder_diff) { - bowden_length[cursor_pos]--; - lcd_set_cursor(13, 1); - lcd_print(bowden_length[cursor_pos] - 48); - enc_dif = lcd_encoder_diff; - } - - if (enc_dif < lcd_encoder_diff) { - bowden_length[cursor_pos]++; - lcd_set_cursor(13, 1); - lcd_print(bowden_length[cursor_pos] - 48); - enc_dif = lcd_encoder_diff; - } - } - _delay(100); - if (lcd_clicked()) { - Sound_MakeSound(e_SOUND_TYPE_ButtonEcho); - eeprom_update_word((uint16_t*)EEPROM_BOWDEN_LENGTH + cursor_pos, bowden_length[cursor_pos]); - if (lcd_show_fullscreen_message_yes_no_and_wait_P(PSTR("Continue with another bowden?"))) { - lcd_update_enable(true); - lcd_clear(); - enc_dif = lcd_encoder_diff; - lcd_putc_at(0, cursor_pos, '>'); - for (uint_least8_t i = 0; i < 4; i++) { - lcd_puts_at_P(1, i, PSTR("Extruder ")); - lcd_print(i); - lcd_print(": "); - bowden_length[i] = eeprom_read_word((uint16_t*)EEPROM_BOWDEN_LENGTH + i); - lcd_print(bowden_length[i] - 48); - - } - break; - } - else return; - } - } - } - } -} - -#ifdef SNMM - -static char snmm_stop_print_menu() { //menu for choosing which filaments will be unloaded in stop print - lcd_clear(); - lcd_puts_at_P(0,0,_T(MSG_UNLOAD_FILAMENT)); lcd_print(':'); - lcd_set_cursor(0, 1); lcd_print('>'); - lcd_puts_at_P(1,2,_i("Used during print"));////MSG_USED c=19 - lcd_puts_at_P(1,3,_i("Current"));////MSG_CURRENT c=19 - char cursor_pos = 1; - int enc_dif = 0; - KEEPALIVE_STATE(PAUSED_FOR_USER); - lcd_consume_click(); - while (1) { - manage_heater(); - manage_inactivity(true); - if (abs((enc_dif - lcd_encoder_diff)) > 4) { - - if ((abs(enc_dif - lcd_encoder_diff)) > 1) { - if (enc_dif > lcd_encoder_diff) cursor_pos--; - if (enc_dif < lcd_encoder_diff) cursor_pos++; - if (cursor_pos > 3) { - cursor_pos = 3; - Sound_MakeSound(e_SOUND_TYPE_BlindAlert); - } - if (cursor_pos < 1){ - cursor_pos = 1; - Sound_MakeSound(e_SOUND_TYPE_BlindAlert); - } - - lcd_puts_at_P(0, 1, PSTR(" \n \n ")); - lcd_set_cursor(0, cursor_pos); - lcd_print('>'); - enc_dif = lcd_encoder_diff; - Sound_MakeSound(e_SOUND_TYPE_EncoderMove); - _delay(100); - } - } - if (lcd_clicked()) { - Sound_MakeSound(e_SOUND_TYPE_ButtonEcho); - KEEPALIVE_STATE(IN_HANDLER); - return(cursor_pos - 1); - } - } - -} - -#endif //SNMM - //! @brief Select one of numbered items //! //! Create list of items with header. Header can not be selected. @@ -5960,28 +5409,25 @@ uint8_t choose_menu_P(const char *header, const char *item, const char *last_ite } char reset_menu() { - const uint8_t items_no = -#ifdef SNMM - 6; -#else - 5; -#endif - static int8_t first = 0; - int8_t enc_dif = 0; + const uint8_t items_no = 5; + static int8_t first = 0; + int8_t enc_dif = 0; char cursor_pos = 0; - const char *const item[items_no] = {PSTR("Language"), PSTR("Statistics"), PSTR("Shipping prep"), PSTR("Service prep"), PSTR("All Data") -#ifdef SNMM - , PSTR("Bowden length") -#endif - }; + const char *const item[items_no] = { + PSTR("Language"), + PSTR("Statistics"), + PSTR("Shipping prep"), + PSTR("Service prep"), + PSTR("All Data"), + }; enc_dif = lcd_encoder_diff; lcd_clear(); lcd_set_cursor(0, 0); - lcd_putc('>'); + lcd_putc('>'); lcd_consume_click(); - while (1) { + while (1) { for (uint_least8_t i = 0; i < 4; i++) { lcd_puts_at_P(1, i, item[first + i]); @@ -6052,20 +5498,13 @@ static void lcd_disable_farm_mode() -static void fil_load_menu() +static void mmu_load_filament_menu() { MENU_BEGIN(); MENU_ITEM_BACK_P(_T(MSG_MAIN)); - MENU_ITEM_FUNCTION_P(_i("Load all"), load_all); ////MSG_LOAD_ALL c=17 - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '1', extr_adj, 0); ////MSG_LOAD_FILAMENT_1 c=16 - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '2', extr_adj, 1); ////MSG_LOAD_FILAMENT_2 c=17 - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '3', extr_adj, 2); ////MSG_LOAD_FILAMENT_3 c=17 - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '4', extr_adj, 3); ////MSG_LOAD_FILAMENT_4 c=17 - - if (mmu_enabled) - { - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '5', extr_adj, 4); - } + MENU_ITEM_FUNCTION_P(_i("Load all"), load_all); ////MSG_LOAD_ALL c=18 + for (uint8_t i = 0; i < MMU_FILAMENT_COUNT; i++) + MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), i + '1', extr_adj, i); ////MSG_LOAD_FILAMENT c=16 MENU_END(); } @@ -6075,11 +5514,8 @@ static void mmu_load_to_nozzle_menu() { MENU_BEGIN(); MENU_ITEM_BACK_P(_T(MSG_MAIN)); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '1', lcd_mmu_load_to_nozzle, 0); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '2', lcd_mmu_load_to_nozzle, 1); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '3', lcd_mmu_load_to_nozzle, 2); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '4', lcd_mmu_load_to_nozzle, 3); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '5', lcd_mmu_load_to_nozzle, 4); + for (uint8_t i = 0; i < MMU_FILAMENT_COUNT; i++) + MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), i + '1', lcd_mmu_load_to_nozzle, i); ////MSG_LOAD_FILAMENT c=16 MENU_END(); } else @@ -6101,11 +5537,11 @@ static void mmu_fil_eject_menu() { MENU_BEGIN(); MENU_ITEM_BACK_P(_T(MSG_MAIN)); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '1', mmu_eject_filament, 0); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '2', mmu_eject_filament, 1); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '3', mmu_eject_filament, 2); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '4', mmu_eject_filament, 3); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '5', mmu_eject_filament, 4); + MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '1', mmu_eject_filament, 0); ////MSG_EJECT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '2', mmu_eject_filament, 1); ////MSG_EJECT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '3', mmu_eject_filament, 2); ////MSG_EJECT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '4', mmu_eject_filament, 3); ////MSG_EJECT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '5', mmu_eject_filament, 4); ////MSG_EJECT_FILAMENT c=16 MENU_END(); } else @@ -6123,11 +5559,11 @@ static void mmu_cut_filament_menu() { MENU_BEGIN(); MENU_ITEM_BACK_P(_T(MSG_MAIN)); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '1', mmu_cut_filament, 0); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '2', mmu_cut_filament, 1); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '3', mmu_cut_filament, 2); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '4', mmu_cut_filament, 3); - MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '5', mmu_cut_filament, 4); + MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '1', mmu_cut_filament, 0); ////MSG_CUT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '2', mmu_cut_filament, 1); ////MSG_CUT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '3', mmu_cut_filament, 2); ////MSG_CUT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '4', mmu_cut_filament, 3); ////MSG_CUT_FILAMENT c=16 + MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '5', mmu_cut_filament, 4); ////MSG_CUT_FILAMENT c=16 MENU_END(); } else @@ -6144,35 +5580,6 @@ static void mmu_cut_filament_menu() } #endif //MMU_HAS_CUTTER -#ifdef SNMM -static void fil_unload_menu() -{ - MENU_BEGIN(); - MENU_ITEM_BACK_P(_T(MSG_MAIN)); - MENU_ITEM_FUNCTION_P(_i("Unload all"), extr_unload_all);////MSG_UNLOAD_ALL c=17 - MENU_ITEM_FUNCTION_P(_i("Unload filament 1"), extr_unload_0);////MSG_UNLOAD_FILAMENT_1 c=17 - MENU_ITEM_FUNCTION_P(_i("Unload filament 2"), extr_unload_1);////MSG_UNLOAD_FILAMENT_2 c=17 - MENU_ITEM_FUNCTION_P(_i("Unload filament 3"), extr_unload_2);////MSG_UNLOAD_FILAMENT_3 c=17 - MENU_ITEM_FUNCTION_P(_i("Unload filament 4"), extr_unload_3);////MSG_UNLOAD_FILAMENT_4 c=17 - - if (mmu_enabled) - MENU_ITEM_FUNCTION_P(_i("Unload filament 5"), extr_unload_4);////MSG_UNLOAD_FILAMENT_5 c=17 - - MENU_END(); -} - - -static void change_extr_menu(){ - MENU_BEGIN(); - MENU_ITEM_BACK_P(_T(MSG_MAIN)); - MENU_ITEM_FUNCTION_P(_i("Extruder 1"), extr_change_0);////MSG_EXTRUDER_1 c=17 - MENU_ITEM_FUNCTION_P(_i("Extruder 2"), extr_change_1);////MSG_EXTRUDER_2 c=17 - MENU_ITEM_FUNCTION_P(_i("Extruder 3"), extr_change_2);////MSG_EXTRUDER_3 c=17 - MENU_ITEM_FUNCTION_P(_i("Extruder 4"), extr_change_3);////MSG_EXTRUDER_4 c=17 - - MENU_END(); -} -#endif //SNMM // unload filament for single material printer (used in M702 gcode) // @param automatic: If true, unload_filament is part of a unload+load sequence (M600) @@ -6526,20 +5933,14 @@ static void lcd_main_menu() if ( ! ( IS_SD_PRINTING || usb_timer.running() || (lcd_commands_type == LcdCommands::Layer1Cal) ) ) { if (mmu_enabled) { - MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_FILAMENT), fil_load_menu); + MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_FILAMENT), mmu_load_filament_menu); MENU_ITEM_SUBMENU_P(_i("Load to nozzle"), mmu_load_to_nozzle_menu);////MSG_LOAD_TO_NOZZLE c=18 -//-// MENU_ITEM_FUNCTION_P(_T(MSG_UNLOAD_FILAMENT), extr_unload); -//bFilamentFirstRun=true; MENU_ITEM_SUBMENU_P(_T(MSG_UNLOAD_FILAMENT), mmu_unload_filament); MENU_ITEM_SUBMENU_P(_T(MSG_EJECT_FILAMENT), mmu_fil_eject_menu); #ifdef MMU_HAS_CUTTER MENU_ITEM_SUBMENU_P(_T(MSG_CUT_FILAMENT), mmu_cut_filament_menu); #endif //MMU_HAS_CUTTER } else { -#ifdef SNMM - MENU_ITEM_SUBMENU_P(_T(MSG_UNLOAD_FILAMENT), fil_unload_menu); - MENU_ITEM_SUBMENU_P(_i("Change extruder"), change_extr_menu);////MSG_CHANGE_EXTR c=20 -#endif #ifdef FILAMENT_SENSOR if ((fsensor_autoload_enabled == true) && (fsensor_enabled == true) && (mmu_enabled == false)) MENU_ITEM_SUBMENU_P(_i("AutoLoad filament"), lcd_menu_AutoLoadFilament);////MSG_AUTOLOAD_FILAMENT c=18 diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 36fcad57..2ee9fedf 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -189,12 +189,9 @@ void unload_filament(bool automatic = false); void lcd_printer_connected(); void lcd_ping(); -void lcd_calibrate_extruder(); - void lcd_wait_for_heater(); void lcd_wait_for_cool_down(); void lcd_move_e(); // NOT static due to usage in Marlin_main -void lcd_extr_cal_reset(); void lcd_temp_cal_show_result(bool result); #ifdef PINDA_THERMISTOR @@ -202,7 +199,6 @@ bool lcd_wait_for_pinda(float temp); #endif //PINDA_THERMISTOR -void bowden_menu(); char reset_menu(); uint8_t choose_menu_P(const char *header, const char *item, const char *last_item = nullptr); diff --git a/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h index 7ccd9151..c3aa75d7 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo10a-E3Dv6full.h @@ -24,9 +24,6 @@ GENERAL SETTINGS // Electronics #define MOTHERBOARD BOARD_RAMBO_MINI_1_0 -// Prusa Single extruder multiple material suport -//#define SNMM - // Uncomment the below for the E3D PT100 temperature sensor (with or without PT100 Amplifier) //#define E3D_PT100_EXTRUDER_WITH_AMP //#define E3D_PT100_EXTRUDER_NO_AMP @@ -39,11 +36,7 @@ AXIS SETTINGS *------------------------------------*/ // Steps per unit {X,Y,Z,E} -#ifdef SNMM -#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,140} -#else #define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,161.3} -#endif // Endstop inverting @@ -157,18 +150,6 @@ EXTRUDER SETTINGS #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed -#ifdef SNMM -//#define BOWDEN_LENGTH 408 -#define BOWDEN_LENGTH 433 //default total length for filament fast loading part; max length for extrusion is 465 mm!; this length can be adjusted in service menu -#define FIL_LOAD_LENGTH 102 //length for loading filament into the nozzle -#define FIL_COOLING 10 //length for cooling moves -#define E_MOTOR_LOW_CURRENT 350 // current for PRUSAY code -#define E_MOTOR_HIGH_CURRENT 700 //current for unloading filament, stop print, PRUSAY ramming -#endif //SNMM - -//#define DIS //for measuring bed heigth and PINDa detection heigth relative to auto home point, experimental function - - /*------------------------------------ CHANGE FILAMENT SETTINGS *------------------------------------*/ @@ -460,11 +441,11 @@ THERMISTORS SETTINGS #define M600_TIMEOUT 600 //seconds +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 132 -#ifndef SNMM //#define SUPPORT_VERBOSITY -#endif #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning diff --git a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h index 4686f097..0158d600 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h @@ -24,9 +24,6 @@ GENERAL SETTINGS // Electronics #define MOTHERBOARD BOARD_RAMBO_MINI_1_3 -// Prusa Single extruder multiple material suport -//#define SNMM - // Uncomment the below for the E3D PT100 temperature sensor (with or without PT100 Amplifier) //#define E3D_PT100_EXTRUDER_WITH_AMP //#define E3D_PT100_EXTRUDER_NO_AMP @@ -39,11 +36,7 @@ AXIS SETTINGS *------------------------------------*/ // Steps per unit {X,Y,Z,E} -#ifdef SNMM -#define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,140} -#else #define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,161.3} -#endif // Endstop inverting @@ -156,18 +149,6 @@ EXTRUDER SETTINGS #define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed -#ifdef SNMM -//#define BOWDEN_LENGTH 408 -#define BOWDEN_LENGTH 433 //default total length for filament fast loading part; max length for extrusion is 465 mm!; this length can be adjusted in service menu -#define FIL_LOAD_LENGTH 102 //length for loading filament into the nozzle -#define FIL_COOLING 10 //length for cooling moves -#define E_MOTOR_LOW_CURRENT 350 // current for PRUSAY code -#define E_MOTOR_HIGH_CURRENT 700 //current for unloading filament, stop print, PRUSAY ramming -#endif //SNMM - -//#define DIS //for measuring bed heigth and PINDa detection heigth relative to auto home point, experimental function - - /*------------------------------------ CHANGE FILAMENT SETTINGS *------------------------------------*/ @@ -449,11 +430,11 @@ THERMISTORS SETTINGS #define M600_TIMEOUT 600 //seconds +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 132 -#ifndef SNMM //#define SUPPORT_VERBOSITY -#endif #define MMU_IDLER_SENSOR_ATTEMPTS_NR 21 //max. number of attempts to load filament if first load failed; value for max bowden length and case when loading fails right at the beginning diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index aa625c64..e26f5ea6 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -516,6 +516,8 @@ //#define SUPPORT_VERBOSITY +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index ddafa6f4..00c937db 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -517,6 +517,8 @@ //#define SUPPORT_VERBOSITY +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h index 29ff5b35..7b7149ba 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h @@ -516,6 +516,8 @@ //#define SUPPORT_VERBOSITY +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h index 342a9a1f..51644aaf 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h @@ -517,6 +517,8 @@ //#define SUPPORT_VERBOSITY +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_FORCE_STEALTH_MODE #define MMU_DEBUG //print communication between MMU2 and printer on serial diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 9ad9e9b7..dd4f1ffd 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -663,6 +663,8 @@ //#define SUPPORT_VERBOSITY +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 83 #define MMU_HWRESET #define MMU_DEBUG //print communication between MMU2 and printer on serial diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index fa5d65b3..dbc92ac0 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -667,6 +667,8 @@ //#define SUPPORT_VERBOSITY +#define MMU_FILAMENT_COUNT 5 + #define MMU_REQUIRED_FW_BUILDNR 83 #define MMU_HWRESET #define MMU_DEBUG //print communication between MMU2 and printer on serial diff --git a/lang/lang_en.txt b/lang/lang_en.txt index ab255211..31952a1c 100644 --- a/lang/lang_en.txt +++ b/lang/lang_en.txt @@ -922,7 +922,7 @@ #MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 "XYZ calibration compromised. Right front calibration point not reachable." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" #MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND c=20 r=6 diff --git a/lang/lang_en_cz.txt b/lang/lang_en_cz.txt index 51553a0e..8b1ed774 100644 --- a/lang/lang_en_cz.txt +++ b/lang/lang_en_cz.txt @@ -1230,7 +1230,7 @@ "XYZ calibration compromised. Right front calibration point not reachable." "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" "Zavest vse" diff --git a/lang/lang_en_de.txt b/lang/lang_en_de.txt index 6c052dcd..a21ba2bb 100644 --- a/lang/lang_en_de.txt +++ b/lang/lang_en_de.txt @@ -1230,7 +1230,7 @@ "XYZ calibration compromised. Right front calibration point not reachable." "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" "Alle laden" diff --git a/lang/lang_en_es.txt b/lang/lang_en_es.txt index 591043d7..2bc1f951 100644 --- a/lang/lang_en_es.txt +++ b/lang/lang_en_es.txt @@ -1230,7 +1230,7 @@ "XYZ calibration compromised. Right front calibration point not reachable." "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" "Intr. todos fil." diff --git a/lang/lang_en_fr.txt b/lang/lang_en_fr.txt index d4f27035..716c9756 100644 --- a/lang/lang_en_fr.txt +++ b/lang/lang_en_fr.txt @@ -1230,7 +1230,7 @@ "XYZ calibration compromised. Right front calibration point not reachable." "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" "Charger un par un" diff --git a/lang/lang_en_it.txt b/lang/lang_en_it.txt index 78271239..481395d3 100644 --- a/lang/lang_en_it.txt +++ b/lang/lang_en_it.txt @@ -1230,7 +1230,7 @@ "XYZ calibration compromised. Right front calibration point not reachable." "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" "Caricare tutti" diff --git a/lang/lang_en_nl.txt b/lang/lang_en_nl.txt index 46e17fc2..f92b085e 100644 --- a/lang/lang_en_nl.txt +++ b/lang/lang_en_nl.txt @@ -1230,7 +1230,7 @@ "XYZ calibration compromised. Right front calibration point not reachable." "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" "Laad alle" diff --git a/lang/lang_en_pl.txt b/lang/lang_en_pl.txt index 5b348c7b..ed5dae6d 100644 --- a/lang/lang_en_pl.txt +++ b/lang/lang_en_pl.txt @@ -1230,7 +1230,7 @@ "XYZ calibration compromised. Right front calibration point not reachable." "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." -#MSG_LOAD_ALL c=17 +#MSG_LOAD_ALL c=18 "Load all" "Zalad. wszystkie" diff --git a/lang/po/Firmware.pot b/lang/po/Firmware.pot index 368612a3..0288a2c1 100644 --- a/lang/po/Firmware.pot +++ b/lang/po/Firmware.pot @@ -1555,7 +1555,7 @@ msgstr "" msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "" -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "" diff --git a/lang/po/Firmware_cs.po b/lang/po/Firmware_cs.po index b369aac9..83e50e8d 100644 --- a/lang/po/Firmware_cs.po +++ b/lang/po/Firmware_cs.po @@ -1555,7 +1555,7 @@ msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Zavest vse" diff --git a/lang/po/Firmware_de.po b/lang/po/Firmware_de.po index f37b3184..bbebe690 100644 --- a/lang/po/Firmware_de.po +++ b/lang/po/Firmware_de.po @@ -1555,7 +1555,7 @@ msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichb msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Alle laden" diff --git a/lang/po/Firmware_es.po b/lang/po/Firmware_es.po index 9eca4ab9..c9a63982 100644 --- a/lang/po/Firmware_es.po +++ b/lang/po/Firmware_es.po @@ -1555,7 +1555,7 @@ msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Intr. todos fil." diff --git a/lang/po/Firmware_fr.po b/lang/po/Firmware_fr.po index f180be5a..bbc756c3 100644 --- a/lang/po/Firmware_fr.po +++ b/lang/po/Firmware_fr.po @@ -1555,7 +1555,7 @@ msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont p msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Charger un par un" diff --git a/lang/po/Firmware_it.po b/lang/po/Firmware_it.po index 9318873f..0b1eeb07 100644 --- a/lang/po/Firmware_it.po +++ b/lang/po/Firmware_it.po @@ -1555,7 +1555,7 @@ msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Caricare tutti" diff --git a/lang/po/Firmware_nl.po b/lang/po/Firmware_nl.po index 169019be..e4efdf4a 100644 --- a/lang/po/Firmware_nl.po +++ b/lang/po/Firmware_nl.po @@ -1555,7 +1555,7 @@ msgstr "XYZ-kalibratie niet gelukt. Voorste kalibratiepunten niet bereikbaar." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Laad alle" diff --git a/lang/po/Firmware_pl.po b/lang/po/Firmware_pl.po index 7345ac94..300ca88c 100644 --- a/lang/po/Firmware_pl.po +++ b/lang/po/Firmware_pl.po @@ -1555,7 +1555,7 @@ msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Zalad. wszystkie" diff --git a/lang/po/new/cs.po b/lang/po/new/cs.po index 2e464c10..767cc8d0 100644 --- a/lang/po/new/cs.po +++ b/lang/po/new/cs.po @@ -1555,7 +1555,7 @@ msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Zavest vse" diff --git a/lang/po/new/de.po b/lang/po/new/de.po index 276a80f9..1173040a 100644 --- a/lang/po/new/de.po +++ b/lang/po/new/de.po @@ -1555,7 +1555,7 @@ msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichb msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Alle laden" diff --git a/lang/po/new/es.po b/lang/po/new/es.po index aeed84ab..4a59e5fc 100644 --- a/lang/po/new/es.po +++ b/lang/po/new/es.po @@ -1555,7 +1555,7 @@ msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Intr. todos fil." diff --git a/lang/po/new/fr.po b/lang/po/new/fr.po index 8dbbc936..4bb73a41 100644 --- a/lang/po/new/fr.po +++ b/lang/po/new/fr.po @@ -1555,7 +1555,7 @@ msgstr "Calibration XYZ compromise. Les points de calibration en avant ne sont p msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Charger un par un" diff --git a/lang/po/new/it.po b/lang/po/new/it.po index 576d82bb..082bca23 100644 --- a/lang/po/new/it.po +++ b/lang/po/new/it.po @@ -1555,7 +1555,7 @@ msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Caricare tutti" diff --git a/lang/po/new/nl.po b/lang/po/new/nl.po index 17f9edb5..e861ded2 100644 --- a/lang/po/new/nl.po +++ b/lang/po/new/nl.po @@ -1555,7 +1555,7 @@ msgstr "XYZ-kalibratie niet gelukt. Voorste kalibratiepunten niet bereikbaar." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Laad alle" diff --git a/lang/po/new/pl.po b/lang/po/new/pl.po index 1d6887f1..d6aca72c 100644 --- a/lang/po/new/pl.po +++ b/lang/po/new/pl.po @@ -1555,7 +1555,7 @@ msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne." msgid "XYZ calibration compromised. Right front calibration point not reachable." msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." -# MSG_LOAD_ALL c=17 +# MSG_LOAD_ALL c=18 #: ultralcd.cpp:6167 msgid "Load all" msgstr "Zalad. wszystkie"