Remove ancient SNMM code in the MK3 branch

This commit is contained in:
Alex Voinea 2022-02-15 12:23:48 +01:00
parent f97808e19a
commit a6331d22c8
43 changed files with 81 additions and 1194 deletions

View file

@ -329,14 +329,12 @@ extern uint8_t host_keepalive_interval;
extern unsigned long starttime; extern unsigned long starttime;
extern unsigned long stoptime; extern unsigned long stoptime;
extern ShortTimer usb_timer; extern ShortTimer usb_timer;
extern int bowden_length[4];
extern bool homing_flag; extern bool homing_flag;
extern bool loading_flag; extern bool loading_flag;
extern unsigned long total_filament_used; extern unsigned long total_filament_used;
void save_statistics(unsigned long _total_filament_used, unsigned long _total_print_time); void save_statistics(unsigned long _total_filament_used, unsigned long _total_print_time);
extern uint8_t status_number; extern uint8_t status_number;
extern uint8_t heating_status_counter; extern uint8_t heating_status_counter;
extern char snmm_filaments_used;
extern unsigned long PingTime; extern unsigned long PingTime;
extern bool no_response; extern bool no_response;
extern uint8_t important_status; extern uint8_t important_status;

View file

@ -75,7 +75,7 @@ ISR(M_USARTx_RX_vect)
#endif //DEBUG_DUMP_TO_2ND_SERIAL #endif //DEBUG_DUMP_TO_2ND_SERIAL
} }
} }
#ifndef SNMM
ISR(USART1_RX_vect) ISR(USART1_RX_vect)
{ {
// Test for a framing error. // Test for a framing error.
@ -97,7 +97,6 @@ ISR(USART1_RX_vect)
} }
} }
#endif #endif
#endif
// Public Methods ////////////////////////////////////////////////////////////// // Public Methods //////////////////////////////////////////////////////////////
@ -131,8 +130,6 @@ void MarlinSerial::begin(long baud)
sbi(M_UCSRxB, M_TXENx); sbi(M_UCSRxB, M_TXENx);
sbi(M_UCSRxB, M_RXCIEx); sbi(M_UCSRxB, M_RXCIEx);
#ifndef SNMM
if (selectedSerialPort == 1) { //set up also the second serial port if (selectedSerialPort == 1) { //set up also the second serial port
if (useU2X) { if (useU2X) {
UCSR1A = 1 << U2X1; UCSR1A = 1 << U2X1;
@ -148,9 +145,8 @@ void MarlinSerial::begin(long baud)
sbi(UCSR1B, RXEN1); sbi(UCSR1B, RXEN1);
sbi(UCSR1B, TXEN1); sbi(UCSR1B, TXEN1);
sbi(UCSR1B, RXCIE1); sbi(UCSR1B, RXCIE1);
} }
#endif
} }
void MarlinSerial::end() void MarlinSerial::end()
@ -159,11 +155,9 @@ void MarlinSerial::end()
cbi(M_UCSRxB, M_TXENx); cbi(M_UCSRxB, M_TXENx);
cbi(M_UCSRxB, M_RXCIEx); cbi(M_UCSRxB, M_RXCIEx);
#ifndef SNMM
cbi(UCSR1B, RXEN1); cbi(UCSR1B, RXEN1);
cbi(UCSR1B, TXEN1); cbi(UCSR1B, TXEN1);
cbi(UCSR1B, RXCIE1); cbi(UCSR1B, RXCIE1);
#endif
} }

View file

@ -190,7 +190,6 @@ int extruder_multiply[EXTRUDERS] = {100
#endif #endif
}; };
int bowden_length[4] = {385, 385, 385, 385};
bool homing_flag = false; bool homing_flag = false;
@ -219,8 +218,6 @@ bool loading_flag = false;
#define XY_NO_RESTORE_FLAG (mesh_bed_leveling_flag || homing_flag) #define XY_NO_RESTORE_FLAG (mesh_bed_leveling_flag || homing_flag)
char snmm_filaments_used = 0;
bool fan_state[2]; bool fan_state[2];
int fan_edge_counter[2]; int fan_edge_counter[2];
@ -769,13 +766,6 @@ static void factory_reset(char level)
menu_progressbar_finish(); menu_progressbar_finish();
softReset(); softReset();
break; break;
#ifdef SNMM
case 5:
bowden_menu();
break;
#endif
default: default:
break; break;
} }
@ -1493,15 +1483,6 @@ void setup()
#endif //DEBUG_SD_SPEED_TEST #endif //DEBUG_SD_SPEED_TEST
eeprom_init(); 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. // 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 // 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. // is being written into the EEPROM, so the update procedure will be triggered only once.
@ -1569,7 +1550,6 @@ void setup()
#ifdef PAT9125 #ifdef PAT9125
fsensor_setup_interrupt(); fsensor_setup_interrupt();
#endif //PAT9125 #endif //PAT9125
eeprom_update_block(bowden_length, (uint16_t*)EEPROM_BOWDEN_LENGTH, sizeof(bowden_length));
#ifndef DEBUG_DISABLE_STARTMSGS #ifndef DEBUG_DISABLE_STARTMSGS
KEEPALIVE_STATE(PAUSED_FOR_USER); KEEPALIVE_STATE(PAUSED_FOR_USER);
@ -4257,12 +4237,6 @@ void process_commands()
// PRUSA GCODES // PRUSA GCODES
KEEPALIVE_STATE(IN_HANDLER); 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 #endif
} }
} }
snmm_filaments_used = 0;
break; break;
/*! /*!
@ -8881,20 +8854,11 @@ Sigma_Exit:
M702 [ U | C ] M702 [ U | C ]
#### Parameters #### Parameters
- `U` - Unload all filaments used in current print
- `C` - Unload just current filament - `C` - Unload just current filament
- without any parameters unload all filaments - without any parameters unload all filaments
*/ */
case 702: 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 (code_seen('C')) {
if(mmu_enabled) extr_unload(); //! if "C" unload current filament; if mmu is not present no action is performed 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 if(mmu_enabled) extr_unload(); //! unload current filament
else unload_filament(); else unload_filament();
} }
#endif //SNMM
} }
break; break;
@ -8996,7 +8958,6 @@ Sigma_Exit:
} }
} }
st_synchronize(); st_synchronize();
snmm_filaments_used |= (1 << tmp_extruder); //for stop print
if (mmu_enabled) if (mmu_enabled)
{ {
@ -9027,47 +8988,6 @@ Sigma_Exit:
} }
else 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) { if (tmp_extruder >= EXTRUDERS) {
SERIAL_ECHO_START; SERIAL_ECHO_START;
SERIAL_ECHO('T'); SERIAL_ECHO('T');
@ -9111,8 +9031,6 @@ Sigma_Exit:
SERIAL_ECHORPGM(_n("Active Extruder: "));////MSG_ACTIVE_EXTRUDER SERIAL_ECHORPGM(_n("Active Extruder: "));////MSG_ACTIVE_EXTRUDER
SERIAL_PROTOCOLLN((int)active_extruder); SERIAL_PROTOCOLLN((int)active_extruder);
} }
#endif //SNMM
} }
} }
} // end if(code_seen('T')) (end of T codes) } // 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() void M600_load_filament_movements()
{ {
#ifdef SNMM current_position[E_AXIS]+= FILAMENTCHANGE_FIRSTFEED;
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 ;
plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST); plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST);
#endif
load_filament_final_feed(); load_filament_final_feed();
lcd_loading_filament(); lcd_loading_filament();
st_synchronize(); st_synchronize();
} }
void M600_load_filament() { void M600_load_filament() {
//load filament for single material and SNMM //load filament for single material and MMU
lcd_wait_interact(); lcd_wait_interact();
//load_filament_time = _millis(); //load_filament_time = _millis();

View file

@ -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 | 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 | 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__ | ^ | ^ | ^ | ^ | ^ | 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 | ^ | ^ | ^ | ^ | ^ | ^ | ^ | 00 00 00 00h | ^ | ^ | ^
| 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp: __not calibrated__ | ??? | D3 Ax0fa6 C1 | 0x0FA6h 4006 | uint8 | EEPROM_CALIBRATION_STATUS_PINDA | 00h 0 | ffh 255 | PINDA Temp: __not calibrated__ | ??? | D3 Ax0fa6 C1
| ^ | ^ | ^ | 01h 1 | ^ | PINDA Temp: __calibrated__ | ^ | ^ | ^ | ^ | ^ | 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_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_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_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_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_BOWDEN_LENGTH - 1) //0 - not calibrated; 1 - calibrated #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 (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_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 #define EEPROM_FILENAME (EEPROM_UVLO_CURRENT_POSITION - 8) //8chars to store filename without extension

View file

@ -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_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
const char MSG_FILAMENT_LOADED[] PROGMEM_I1 = ISTR("Is filament loaded?"); ////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_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_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 const char MSG_FINISHING_MOVEMENTS[] PROGMEM_I1 = ISTR("Finishing movements"); ////c=20

View file

@ -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_puts_at_P(0, 1, _T(MSG_LOADING_FILAMENT));
lcd_print(' '); lcd_print(' ');
lcd_print(tmp_extruder + 1); lcd_print(tmp_extruder + 1);
snmm_filaments_used |= (1 << tmp_extruder); //for stop print
//printf_P(PSTR("T code: %d \n"), tmp_extruder); //printf_P(PSTR("T code: %d \n"), tmp_extruder);
//mmu_printf_P(PSTR("T%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(); st_synchronize();
} }
void extr_adj(uint8_t extruder) //loading filament into the MMU unit
#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()
{ {
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; MmuCmd cmd = MmuCmd::L0 + extruder;
if (extruder > (MmuCmd::L4 - MmuCmd::L0)) if (extruder > (MmuCmd::L4 - MmuCmd::L0))
{ {
@ -1002,45 +923,6 @@ void extr_adj(uint8_t extruder) //loading filament for SNMM
//lcd_return_to_status(); //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 struct E_step
@ -1087,15 +969,8 @@ void extr_unload_view()
void extr_unload() void extr_unload()
{ //unload just current filament for multimaterial printers { //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) if (degHotend0() > EXTRUDE_MINTEMP)
{ {
#ifndef SNMM
st_synchronize(); st_synchronize();
menu_submenu(extr_unload_view); menu_submenu(extr_unload_view);
@ -1107,58 +982,6 @@ void extr_unload()
manage_response(false, true, MMU_UNLOAD_MOVE); manage_response(false, true, MMU_UNLOAD_MOVE);
menu_back(); 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 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() void load_all()
{ {
#ifndef SNMM
enquecommand_P(PSTR("M701 E0")); enquecommand_P(PSTR("M701 E0"));
enquecommand_P(PSTR("M701 E1")); enquecommand_P(PSTR("M701 E1"));
enquecommand_P(PSTR("M701 E2")); enquecommand_P(PSTR("M701 E2"));
enquecommand_P(PSTR("M701 E3")); enquecommand_P(PSTR("M701 E3"));
enquecommand_P(PSTR("M701 E4")); 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() bool mmu_check_version()

View file

@ -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_load_filament(bool automatic, float nozzle_temp);
extern void mmu_M600_wait_and_beep(); 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_adj(uint8_t extruder);
extern void extr_unload(); 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 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 bool mmu_check_version();
extern void mmu_show_warning(); extern void mmu_show_warning();

View file

@ -64,11 +64,6 @@
#define E0_MS1_PIN 65 #define E0_MS1_PIN 65
#define E0_MS2_PIN 66 #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_XY_PIN 46
#define MOTOR_CURRENT_PWM_Z_PIN 45 #define MOTOR_CURRENT_PWM_Z_PIN 45

View file

@ -67,11 +67,6 @@
#define E0_MS1_PIN 65 #define E0_MS1_PIN 65
#define E0_MS2_PIN 66 #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_XY_PIN 46
#define MOTOR_CURRENT_PWM_Z_PIN 45 #define MOTOR_CURRENT_PWM_Z_PIN 45

View file

@ -446,20 +446,12 @@ FORCE_INLINE void stepper_next_block()
} }
if ((out_bits & (1 << E_AXIS)) != 0) { // -direction if ((out_bits & (1 << E_AXIS)) != 0) { // -direction
#ifndef LIN_ADVANCE #ifndef LIN_ADVANCE
WRITE(E0_DIR_PIN, WRITE(E0_DIR_PIN, INVERT_E0_DIR);
#ifdef SNMM
(mmu_extruder == 0 || mmu_extruder == 2) ? !INVERT_E0_DIR :
#endif // SNMM
INVERT_E0_DIR);
#endif /* LIN_ADVANCE */ #endif /* LIN_ADVANCE */
count_direction[E_AXIS] = -1; count_direction[E_AXIS] = -1;
} else { // +direction } else { // +direction
#ifndef LIN_ADVANCE #ifndef LIN_ADVANCE
WRITE(E0_DIR_PIN, WRITE(E0_DIR_PIN, !INVERT_E0_DIR);
#ifdef SNMM
(mmu_extruder == 0 || mmu_extruder == 2) ? INVERT_E0_DIR :
#endif // SNMM
!INVERT_E0_DIR);
#endif /* LIN_ADVANCE */ #endif /* LIN_ADVANCE */
count_direction[E_AXIS] = 1; count_direction[E_AXIS] = 1;
} }

View file

@ -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_selftest_error(TestError error, const char *_error_1, const char *_error_2);
static void lcd_colorprint_change(); 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_disable_farm_mode();
static void lcd_set_fan_check(); static void lcd_set_fan_check();
#ifdef MMU_HAS_CUTTER #ifdef MMU_HAS_CUTTER
static void lcd_cutter_enabled(); static void lcd_cutter_enabled();
#endif #endif
#ifdef SNMM
static char snmm_stop_print_menu();
#endif //SNMM
#ifdef SDCARD_SORT_ALPHA #ifdef SDCARD_SORT_ALPHA
static void lcd_sort_type_set(); static void lcd_sort_type_set();
#endif #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) if (lcd_commands_type == LcdCommands::Layer1Cal)
{ {
char cmd1[30]; char cmd1[30];
@ -1245,8 +971,6 @@ void lcd_commands()
} }
} }
#endif // not SNMM
if (lcd_commands_type == LcdCommands::FarmModeConfirm) /// farm mode confirm if (lcd_commands_type == LcdCommands::FarmModeConfirm) /// farm mode confirm
{ {
@ -1280,11 +1004,7 @@ void lcd_commands()
enquecommand_P(PSTR("G91")); enquecommand_P(PSTR("G91"));
enquecommand_P(PSTR("G1 Z15 F1500")); enquecommand_P(PSTR("G1 Z15 F1500"));
st_synchronize(); st_synchronize();
#ifdef SNMM
lcd_commands_step = 7;
#else
lcd_commands_step = 5; lcd_commands_step = 5;
#endif
} }
} }
@ -2443,12 +2163,7 @@ void lcd_wait_interact() {
lcd_clear(); lcd_clear();
lcd_set_cursor(0, 1); lcd_puts_at_P(0, 1, _i("Insert filament"));////MSG_INSERT_FILAMENT c=20
#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
if (!fsensor_autoload_enabled) { if (!fsensor_autoload_enabled) {
lcd_puts_at_P(0, 2, _i("and press the knob"));////MSG_PRESS c=20 r=2 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, 0, _T(MSG_LOADING_FILAMENT));
lcd_puts_at_P(0, 2, _T(MSG_PLEASE_WAIT)); 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 slow_seq_time = (FILAMENTCHANGE_FINALFEED * 1000ul) / FILAMENTCHANGE_EFEED_FINAL;
uint16_t fast_seq_time = (FILAMENTCHANGE_FIRSTFEED * 1000ul) / FILAMENTCHANGE_EFEED_FIRST; 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 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(); 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() void lcd_toshiba_flash_air_compatibility_toggle()
{ {
card.ToshibaFlashAir_enable(! card.ToshibaFlashAir_isEnabled()); card.ToshibaFlashAir_enable(! card.ToshibaFlashAir_isEnabled());
@ -4723,9 +4331,6 @@ static void lcd_wizard_load()
lcd_update_enable(false); lcd_update_enable(false);
lcd_clear(); lcd_clear();
lcd_puts_at_P(0, 2, _T(MSG_LOADING_FILAMENT)); lcd_puts_at_P(0, 2, _T(MSG_LOADING_FILAMENT));
#ifdef SNMM
change_extr(0);
#endif
loading_flag = true; loading_flag = true;
gcode_M701(); 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 MENU_ITEM_FUNCTION_P(_i("Calibrate XYZ"), lcd_mesh_calibration);////MSG_CALIBRATE_BED c=18
// "Calibrate Z" with storing the reference values to EEPROM. // "Calibrate Z" with storing the reference values to EEPROM.
MENU_ITEM_SUBMENU_P(_T(MSG_HOMEYZ), lcd_mesh_calibration_z); 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 MENU_ITEM_SUBMENU_P(_T(MSG_MESH_BED_LEVELING), lcd_mesh_bedleveling); ////MSG_MESH_BED_LEVELING c=18
#endif
// "Mesh Bed Leveling"
MENU_ITEM_SUBMENU_P(_T(MSG_MESH_BED_LEVELING), lcd_mesh_bedleveling);
MENU_ITEM_SUBMENU_P(_i("Bed level correct"), lcd_adjust_bed);////MSG_BED_CORRECTION_MENU 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 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 MENU_ITEM_SUBMENU_P(_i("Show end stops"), menu_show_end_stops);////MSG_SHOW_END_STOPS c=18
#endif #endif
MENU_ITEM_GCODE_P(_i("Reset XYZ calibr."), PSTR("M44"));////MSG_CALIBRATE_BED_RESET c=18 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()) if(has_temperature_compensation())
{ {
MENU_ITEM_SUBMENU_P(_i("Temp. calibration"), lcd_pinda_calibration_menu);////MSG_CALIBRATION_PINDA_MENU c=17 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(); 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 //! @brief Select one of numbered items
//! //!
//! Create list of items with header. Header can not be selected. //! 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() { char reset_menu() {
const uint8_t items_no = const uint8_t items_no = 5;
#ifdef SNMM static int8_t first = 0;
6; int8_t enc_dif = 0;
#else
5;
#endif
static int8_t first = 0;
int8_t enc_dif = 0;
char cursor_pos = 0; char cursor_pos = 0;
const char *const item[items_no] = {PSTR("Language"), PSTR("Statistics"), PSTR("Shipping prep"), PSTR("Service prep"), PSTR("All Data") const char *const item[items_no] = {
#ifdef SNMM PSTR("Language"),
, PSTR("Bowden length") PSTR("Statistics"),
#endif PSTR("Shipping prep"),
}; PSTR("Service prep"),
PSTR("All Data"),
};
enc_dif = lcd_encoder_diff; enc_dif = lcd_encoder_diff;
lcd_clear(); lcd_clear();
lcd_set_cursor(0, 0); lcd_set_cursor(0, 0);
lcd_putc('>'); lcd_putc('>');
lcd_consume_click(); lcd_consume_click();
while (1) { while (1) {
for (uint_least8_t i = 0; i < 4; i++) { for (uint_least8_t i = 0; i < 4; i++) {
lcd_puts_at_P(1, i, item[first + 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_BEGIN();
MENU_ITEM_BACK_P(_T(MSG_MAIN)); MENU_ITEM_BACK_P(_T(MSG_MAIN));
MENU_ITEM_FUNCTION_P(_i("Load all"), load_all); ////MSG_LOAD_ALL c=17 MENU_ITEM_FUNCTION_P(_i("Load all"), load_all); ////MSG_LOAD_ALL c=18
MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '1', extr_adj, 0); ////MSG_LOAD_FILAMENT_1 c=16 for (uint8_t i = 0; i < MMU_FILAMENT_COUNT; i++)
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), i + '1', extr_adj, i); ////MSG_LOAD_FILAMENT c=16
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_END(); MENU_END();
} }
@ -6075,11 +5514,8 @@ static void mmu_load_to_nozzle_menu()
{ {
MENU_BEGIN(); MENU_BEGIN();
MENU_ITEM_BACK_P(_T(MSG_MAIN)); MENU_ITEM_BACK_P(_T(MSG_MAIN));
MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), '1', lcd_mmu_load_to_nozzle, 0); for (uint8_t i = 0; i < MMU_FILAMENT_COUNT; i++)
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), i + '1', lcd_mmu_load_to_nozzle, i); ////MSG_LOAD_FILAMENT c=16
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);
MENU_END(); MENU_END();
} }
else else
@ -6101,11 +5537,11 @@ static void mmu_fil_eject_menu()
{ {
MENU_BEGIN(); MENU_BEGIN();
MENU_ITEM_BACK_P(_T(MSG_MAIN)); 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), '1', mmu_eject_filament, 0); ////MSG_EJECT_FILAMENT c=16
MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '2', mmu_eject_filament, 1); 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); 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); 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); MENU_ITEM_FUNCTION_NR_P(_T(MSG_EJECT_FILAMENT), '5', mmu_eject_filament, 4); ////MSG_EJECT_FILAMENT c=16
MENU_END(); MENU_END();
} }
else else
@ -6123,11 +5559,11 @@ static void mmu_cut_filament_menu()
{ {
MENU_BEGIN(); MENU_BEGIN();
MENU_ITEM_BACK_P(_T(MSG_MAIN)); 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), '1', mmu_cut_filament, 0); ////MSG_CUT_FILAMENT c=16
MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '2', mmu_cut_filament, 1); 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); 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); 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); MENU_ITEM_FUNCTION_NR_P(_T(MSG_CUT_FILAMENT), '5', mmu_cut_filament, 4); ////MSG_CUT_FILAMENT c=16
MENU_END(); MENU_END();
} }
else else
@ -6144,35 +5580,6 @@ static void mmu_cut_filament_menu()
} }
#endif //MMU_HAS_CUTTER #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) // unload filament for single material printer (used in M702 gcode)
// @param automatic: If true, unload_filament is part of a unload+load sequence (M600) // @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 ( ! ( IS_SD_PRINTING || usb_timer.running() || (lcd_commands_type == LcdCommands::Layer1Cal) ) ) {
if (mmu_enabled) { 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_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_UNLOAD_FILAMENT), mmu_unload_filament);
MENU_ITEM_SUBMENU_P(_T(MSG_EJECT_FILAMENT), mmu_fil_eject_menu); MENU_ITEM_SUBMENU_P(_T(MSG_EJECT_FILAMENT), mmu_fil_eject_menu);
#ifdef MMU_HAS_CUTTER #ifdef MMU_HAS_CUTTER
MENU_ITEM_SUBMENU_P(_T(MSG_CUT_FILAMENT), mmu_cut_filament_menu); MENU_ITEM_SUBMENU_P(_T(MSG_CUT_FILAMENT), mmu_cut_filament_menu);
#endif //MMU_HAS_CUTTER #endif //MMU_HAS_CUTTER
} else { } 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 #ifdef FILAMENT_SENSOR
if ((fsensor_autoload_enabled == true) && (fsensor_enabled == true) && (mmu_enabled == false)) 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 MENU_ITEM_SUBMENU_P(_i("AutoLoad filament"), lcd_menu_AutoLoadFilament);////MSG_AUTOLOAD_FILAMENT c=18

View file

@ -189,12 +189,9 @@ void unload_filament(bool automatic = false);
void lcd_printer_connected(); void lcd_printer_connected();
void lcd_ping(); void lcd_ping();
void lcd_calibrate_extruder();
void lcd_wait_for_heater(); void lcd_wait_for_heater();
void lcd_wait_for_cool_down(); void lcd_wait_for_cool_down();
void lcd_move_e(); // NOT static due to usage in Marlin_main 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); void lcd_temp_cal_show_result(bool result);
#ifdef PINDA_THERMISTOR #ifdef PINDA_THERMISTOR
@ -202,7 +199,6 @@ bool lcd_wait_for_pinda(float temp);
#endif //PINDA_THERMISTOR #endif //PINDA_THERMISTOR
void bowden_menu();
char reset_menu(); char reset_menu();
uint8_t choose_menu_P(const char *header, const char *item, const char *last_item = nullptr); uint8_t choose_menu_P(const char *header, const char *item, const char *last_item = nullptr);

View file

@ -24,9 +24,6 @@ GENERAL SETTINGS
// Electronics // Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_0 #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) // Uncomment the below for the E3D PT100 temperature sensor (with or without PT100 Amplifier)
//#define E3D_PT100_EXTRUDER_WITH_AMP //#define E3D_PT100_EXTRUDER_WITH_AMP
//#define E3D_PT100_EXTRUDER_NO_AMP //#define E3D_PT100_EXTRUDER_NO_AMP
@ -39,11 +36,7 @@ AXIS SETTINGS
*------------------------------------*/ *------------------------------------*/
// Steps per unit {X,Y,Z,E} // 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} #define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,161.3}
#endif
// Endstop inverting // Endstop inverting
@ -157,18 +150,6 @@ EXTRUDER SETTINGS
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed #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 CHANGE FILAMENT SETTINGS
*------------------------------------*/ *------------------------------------*/
@ -460,11 +441,11 @@ THERMISTORS SETTINGS
#define M600_TIMEOUT 600 //seconds #define M600_TIMEOUT 600 //seconds
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_REQUIRED_FW_BUILDNR 132
#ifndef SNMM
//#define SUPPORT_VERBOSITY //#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 #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

View file

@ -24,9 +24,6 @@ GENERAL SETTINGS
// Electronics // Electronics
#define MOTHERBOARD BOARD_RAMBO_MINI_1_3 #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) // Uncomment the below for the E3D PT100 temperature sensor (with or without PT100 Amplifier)
//#define E3D_PT100_EXTRUDER_WITH_AMP //#define E3D_PT100_EXTRUDER_WITH_AMP
//#define E3D_PT100_EXTRUDER_NO_AMP //#define E3D_PT100_EXTRUDER_NO_AMP
@ -39,11 +36,7 @@ AXIS SETTINGS
*------------------------------------*/ *------------------------------------*/
// Steps per unit {X,Y,Z,E} // 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} #define DEFAULT_AXIS_STEPS_PER_UNIT {100,100,3200/8,161.3}
#endif
// Endstop inverting // Endstop inverting
@ -156,18 +149,6 @@ EXTRUDER SETTINGS
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed #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 CHANGE FILAMENT SETTINGS
*------------------------------------*/ *------------------------------------*/
@ -449,11 +430,11 @@ THERMISTORS SETTINGS
#define M600_TIMEOUT 600 //seconds #define M600_TIMEOUT 600 //seconds
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_REQUIRED_FW_BUILDNR 132
#ifndef SNMM
//#define SUPPORT_VERBOSITY //#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 #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

View file

@ -516,6 +516,8 @@
//#define SUPPORT_VERBOSITY //#define SUPPORT_VERBOSITY
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_REQUIRED_FW_BUILDNR 132
#define MMU_FORCE_STEALTH_MODE #define MMU_FORCE_STEALTH_MODE
#define MMU_DEBUG //print communication between MMU2 and printer on serial #define MMU_DEBUG //print communication between MMU2 and printer on serial

View file

@ -517,6 +517,8 @@
//#define SUPPORT_VERBOSITY //#define SUPPORT_VERBOSITY
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_REQUIRED_FW_BUILDNR 132
#define MMU_FORCE_STEALTH_MODE #define MMU_FORCE_STEALTH_MODE
#define MMU_DEBUG //print communication between MMU2 and printer on serial #define MMU_DEBUG //print communication between MMU2 and printer on serial

View file

@ -516,6 +516,8 @@
//#define SUPPORT_VERBOSITY //#define SUPPORT_VERBOSITY
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_REQUIRED_FW_BUILDNR 132
#define MMU_FORCE_STEALTH_MODE #define MMU_FORCE_STEALTH_MODE
#define MMU_DEBUG //print communication between MMU2 and printer on serial #define MMU_DEBUG //print communication between MMU2 and printer on serial

View file

@ -517,6 +517,8 @@
//#define SUPPORT_VERBOSITY //#define SUPPORT_VERBOSITY
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 132 #define MMU_REQUIRED_FW_BUILDNR 132
#define MMU_FORCE_STEALTH_MODE #define MMU_FORCE_STEALTH_MODE
#define MMU_DEBUG //print communication between MMU2 and printer on serial #define MMU_DEBUG //print communication between MMU2 and printer on serial

View file

@ -663,6 +663,8 @@
//#define SUPPORT_VERBOSITY //#define SUPPORT_VERBOSITY
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 83 #define MMU_REQUIRED_FW_BUILDNR 83
#define MMU_HWRESET #define MMU_HWRESET
#define MMU_DEBUG //print communication between MMU2 and printer on serial #define MMU_DEBUG //print communication between MMU2 and printer on serial

View file

@ -667,6 +667,8 @@
//#define SUPPORT_VERBOSITY //#define SUPPORT_VERBOSITY
#define MMU_FILAMENT_COUNT 5
#define MMU_REQUIRED_FW_BUILDNR 83 #define MMU_REQUIRED_FW_BUILDNR 83
#define MMU_HWRESET #define MMU_HWRESET
#define MMU_DEBUG //print communication between MMU2 and printer on serial #define MMU_DEBUG //print communication between MMU2 and printer on serial

View file

@ -922,7 +922,7 @@
#MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8 #MSG_BED_SKEW_OFFSET_DETECTION_WARNING_FRONT_RIGHT_FAR c=20 r=8
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
#MSG_LOAD_ALL c=17 #MSG_LOAD_ALL c=18
"Load all" "Load all"
#MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND c=20 r=6 #MSG_BED_SKEW_OFFSET_DETECTION_POINT_NOT_FOUND c=20 r=6

View file

@ -1230,7 +1230,7 @@
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
"Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
#MSG_LOAD_ALL c=17 #MSG_LOAD_ALL c=18
"Load all" "Load all"
"Zavest vse" "Zavest vse"

View file

@ -1230,7 +1230,7 @@
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
"XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
#MSG_LOAD_ALL c=17 #MSG_LOAD_ALL c=18
"Load all" "Load all"
"Alle laden" "Alle laden"

View file

@ -1230,7 +1230,7 @@
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
"Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
#MSG_LOAD_ALL c=17 #MSG_LOAD_ALL c=18
"Load all" "Load all"
"Intr. todos fil." "Intr. todos fil."

View file

@ -1230,7 +1230,7 @@
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
"Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." "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" "Load all"
"Charger un par un" "Charger un par un"

View file

@ -1230,7 +1230,7 @@
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
"Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
#MSG_LOAD_ALL c=17 #MSG_LOAD_ALL c=18
"Load all" "Load all"
"Caricare tutti" "Caricare tutti"

View file

@ -1230,7 +1230,7 @@
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
"XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar." "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar."
#MSG_LOAD_ALL c=17 #MSG_LOAD_ALL c=18
"Load all" "Load all"
"Laad alle" "Laad alle"

View file

@ -1230,7 +1230,7 @@
"XYZ calibration compromised. Right front calibration point not reachable." "XYZ calibration compromised. Right front calibration point not reachable."
"Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
#MSG_LOAD_ALL c=17 #MSG_LOAD_ALL c=18
"Load all" "Load all"
"Zalad. wszystkie" "Zalad. wszystkie"

View file

@ -1555,7 +1555,7 @@ msgstr ""
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "" msgstr ""
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "" msgstr ""

View file

@ -1555,7 +1555,7 @@ msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Zavest vse" msgstr "Zavest vse"

View file

@ -1555,7 +1555,7 @@ msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichb
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Alle laden" msgstr "Alle laden"

View file

@ -1555,7 +1555,7 @@ msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Intr. todos fil." msgstr "Intr. todos fil."

View file

@ -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." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." 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 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Charger un par un" msgstr "Charger un par un"

View file

@ -1555,7 +1555,7 @@ msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Caricare tutti" msgstr "Caricare tutti"

View file

@ -1555,7 +1555,7 @@ msgstr "XYZ-kalibratie niet gelukt. Voorste kalibratiepunten niet bereikbaar."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar." msgstr "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Laad alle" msgstr "Laad alle"

View file

@ -1555,7 +1555,7 @@ msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Zalad. wszystkie" msgstr "Zalad. wszystkie"

View file

@ -1555,7 +1555,7 @@ msgstr "Kalibrace XYZ nepresna. Predni kalibracni body moc vpredu."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu." msgstr "Kalibrace XYZ nepresna. Pravy predni bod moc vpredu."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Zavest vse" msgstr "Zavest vse"

View file

@ -1555,7 +1555,7 @@ msgstr "XYZ-Kalibrierung beeintraechtigt. Vordere Kalibrierpunkte nicht erreichb
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar." msgstr "XYZ-Kalibrierung beeintraechtigt. Rechter vorderer Kalibrierpunkt nicht erreichbar."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Alle laden" msgstr "Alle laden"

View file

@ -1555,7 +1555,7 @@ msgstr "Calibrazion XYZ comprometida. Puntos frontales no alcanzables."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable." msgstr "Calibrazion XYZ comprometida. Punto frontal derecho no alcanzable."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Intr. todos fil." msgstr "Intr. todos fil."

View file

@ -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." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Calibration XYZ compromise. Le point de calibration avant droit n'est pas atteignable." 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 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Charger un par un" msgstr "Charger un par un"

View file

@ -1555,7 +1555,7 @@ msgstr "Calibrazione XYZ compromessa. Punti anteriori non raggiungibili."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile." msgstr "Calibrazione XYZ compromessa. Punto anteriore destro non raggiungibile."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Caricare tutti" msgstr "Caricare tutti"

View file

@ -1555,7 +1555,7 @@ msgstr "XYZ-kalibratie niet gelukt. Voorste kalibratiepunten niet bereikbaar."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar." msgstr "XYZ-kalibratie niet gelukt. Rechter voor kalibratiepunt niet bereikbaar."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Laad alle" msgstr "Laad alle"

View file

@ -1555,7 +1555,7 @@ msgstr "Kalibr. XYZ niedokladna. Przednie punkty kalibr. nieosiagalne."
msgid "XYZ calibration compromised. Right front calibration point not reachable." msgid "XYZ calibration compromised. Right front calibration point not reachable."
msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny." msgstr "Kalibracja XYZ niedokladna. Prawy przedni punkt nieosiagalny."
# MSG_LOAD_ALL c=17 # MSG_LOAD_ALL c=18
#: ultralcd.cpp:6167 #: ultralcd.cpp:6167
msgid "Load all" msgid "Load all"
msgstr "Zalad. wszystkie" msgstr "Zalad. wszystkie"