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 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;

View File

@ -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;
@ -150,7 +147,6 @@ void MarlinSerial::begin(long baud)
sbi(UCSR1B, TXEN1);
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
}

View File

@ -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();

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
| 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

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_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

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_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()

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_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();

View File

@ -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

View File

@ -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

View File

@ -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;
}

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_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,26 +5409,23 @@ 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) {
@ -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

View File

@ -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);

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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."

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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 ""

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."
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"

View File

@ -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"

View File

@ -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."

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."
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"

View File

@ -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"

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."
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"

View File

@ -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"

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."
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"

View File

@ -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"

View File

@ -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."

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."
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"

View File

@ -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"

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."
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"

View File

@ -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"