Merge branch 'MK2' of https://github.com/Prusa3D/Prusa-Firmware into MK2
This commit is contained in:
commit
2e66fdf84a
|
|
@ -31,6 +31,7 @@
|
||||||
// The offsets are saved as 16bit signed int, scaled to tenths of microns.
|
// The offsets are saved as 16bit signed int, scaled to tenths of microns.
|
||||||
#define EEPROM_BED_CALIBRATION_Z_JITTER (EEPROM_BED_CALIBRATION_VEC_Y-2*8)
|
#define EEPROM_BED_CALIBRATION_Z_JITTER (EEPROM_BED_CALIBRATION_VEC_Y-2*8)
|
||||||
|
|
||||||
|
#define EEPROM_FARM_MODE (EEPROM_BED_CALIBRATION_Z_JITTER-4)
|
||||||
|
|
||||||
// Currently running firmware, each digit stored as uint16_t.
|
// Currently running firmware, each digit stored as uint16_t.
|
||||||
// The flavor differentiates a dev, alpha, beta, release candidate or a release version.
|
// The flavor differentiates a dev, alpha, beta, release candidate or a release version.
|
||||||
|
|
|
||||||
|
|
@ -255,7 +255,7 @@ int extruder_multiply[EXTRUDERS] = {100
|
||||||
};
|
};
|
||||||
|
|
||||||
bool is_usb_printing = false;
|
bool is_usb_printing = false;
|
||||||
bool _doMeshL = false;
|
|
||||||
unsigned int usb_printing_counter;
|
unsigned int usb_printing_counter;
|
||||||
|
|
||||||
int lcd_change_fil_state = 0;
|
int lcd_change_fil_state = 0;
|
||||||
|
|
@ -933,22 +933,58 @@ void setup()
|
||||||
world2machine_reset();
|
world2machine_reset();
|
||||||
|
|
||||||
lcd_init();
|
lcd_init();
|
||||||
if(!READ(BTN_ENC) ){
|
if (!READ(BTN_ENC))
|
||||||
_delay_ms(1000);
|
{
|
||||||
if(!READ(BTN_ENC) ){
|
_delay_ms(1000);
|
||||||
SET_OUTPUT(BEEPER);
|
if (!READ(BTN_ENC))
|
||||||
|
{
|
||||||
|
SET_OUTPUT(BEEPER);
|
||||||
|
WRITE(BEEPER, HIGH);
|
||||||
|
|
||||||
WRITE(BEEPER,HIGH);
|
lcd_force_language_selection();
|
||||||
|
farm_no = 0;
|
||||||
lcd_force_language_selection();
|
EEPROM_save_B(EEPROM_FARM_MODE, &farm_no);
|
||||||
while(!READ(BTN_ENC));
|
farm_mode = false;
|
||||||
|
|
||||||
WRITE(BEEPER,LOW);
|
while (!READ(BTN_ENC));
|
||||||
|
|
||||||
}
|
WRITE(BEEPER, LOW);
|
||||||
}else{
|
|
||||||
_delay_ms(1000); // wait 1sec to display the splash screen
|
#ifdef MESH_BED_LEVELING
|
||||||
|
_delay_ms(2000);
|
||||||
|
|
||||||
|
if (!READ(BTN_ENC))
|
||||||
|
{
|
||||||
|
WRITE(BEEPER, HIGH);
|
||||||
|
_delay_ms(100);
|
||||||
|
WRITE(BEEPER, LOW);
|
||||||
|
_delay_ms(200);
|
||||||
|
WRITE(BEEPER, HIGH);
|
||||||
|
_delay_ms(100);
|
||||||
|
WRITE(BEEPER, LOW);
|
||||||
|
|
||||||
|
int _z = 0;
|
||||||
|
eeprom_write_byte((unsigned char*)EEPROM_BABYSTEP_Z_SET, 0x01);
|
||||||
|
EEPROM_save_B(EEPROM_BABYSTEP_X, &_z);
|
||||||
|
EEPROM_save_B(EEPROM_BABYSTEP_Y, &_z);
|
||||||
|
EEPROM_save_B(EEPROM_BABYSTEP_Z, &_z);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
WRITE(BEEPER, HIGH);
|
||||||
|
_delay_ms(100);
|
||||||
|
WRITE(BEEPER, LOW);
|
||||||
|
}
|
||||||
|
#endif // mesh
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_delay_ms(1000); // wait 1sec to display the splash screen
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1
|
#if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1
|
||||||
|
|
@ -964,6 +1000,20 @@ void setup()
|
||||||
enable_z();
|
enable_z();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
EEPROM_read_B(EEPROM_FARM_MODE, &farm_no);
|
||||||
|
if (farm_no > 0)
|
||||||
|
{
|
||||||
|
farm_mode = true;
|
||||||
|
farm_no = farm_no;
|
||||||
|
prusa_statistics(8);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
farm_mode = false;
|
||||||
|
farm_no = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 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.
|
||||||
|
|
@ -1217,6 +1267,12 @@ void get_command()
|
||||||
card.printingHasFinished();
|
card.printingHasFinished();
|
||||||
card.checkautostart(true);
|
card.checkautostart(true);
|
||||||
|
|
||||||
|
if (farm_mode)
|
||||||
|
{
|
||||||
|
prusa_statistics(6);
|
||||||
|
lcd_commands_type = 4;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if(serial_char=='#')
|
if(serial_char=='#')
|
||||||
stop_buffering=true;
|
stop_buffering=true;
|
||||||
|
|
@ -1833,7 +1889,7 @@ void process_commands()
|
||||||
plan_bed_level_matrix.set_to_identity(); //Reset the plane ("erase" all leveling data)
|
plan_bed_level_matrix.set_to_identity(); //Reset the plane ("erase" all leveling data)
|
||||||
#endif //ENABLE_AUTO_BED_LEVELING
|
#endif //ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
||||||
_doMeshL = false;
|
|
||||||
// For mesh bed leveling deactivate the matrix temporarily
|
// For mesh bed leveling deactivate the matrix temporarily
|
||||||
#ifdef MESH_BED_LEVELING
|
#ifdef MESH_BED_LEVELING
|
||||||
mbl.active = 0;
|
mbl.active = 0;
|
||||||
|
|
@ -1905,11 +1961,7 @@ void process_commands()
|
||||||
}
|
}
|
||||||
#endif /* QUICK_HOME */
|
#endif /* QUICK_HOME */
|
||||||
|
|
||||||
if (home_all_axis)
|
|
||||||
{
|
|
||||||
_doMeshL = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if((home_all_axis) || (code_seen(axis_codes[X_AXIS])))
|
if((home_all_axis) || (code_seen(axis_codes[X_AXIS])))
|
||||||
homeaxis(X_AXIS);
|
homeaxis(X_AXIS);
|
||||||
|
|
||||||
|
|
@ -1955,7 +2007,6 @@ void process_commands()
|
||||||
enable_endstops(true);
|
enable_endstops(true);
|
||||||
endstops_hit_on_purpose();
|
endstops_hit_on_purpose();
|
||||||
homeaxis(Z_AXIS);
|
homeaxis(Z_AXIS);
|
||||||
_doMeshL = true;
|
|
||||||
#else // MESH_BED_LEVELING
|
#else // MESH_BED_LEVELING
|
||||||
homeaxis(Z_AXIS);
|
homeaxis(Z_AXIS);
|
||||||
#endif // MESH_BED_LEVELING
|
#endif // MESH_BED_LEVELING
|
||||||
|
|
@ -2042,22 +2093,21 @@ void process_commands()
|
||||||
world2machine_update_current();
|
world2machine_update_current();
|
||||||
|
|
||||||
#ifdef MESH_BED_LEVELING
|
#ifdef MESH_BED_LEVELING
|
||||||
if (code_seen('W'))
|
if (code_seen(axis_codes[X_AXIS]) || code_seen(axis_codes[Y_AXIS]) || code_seen('W') || code_seen(axis_codes[Z_AXIS]))
|
||||||
{
|
{
|
||||||
_doMeshL = false;
|
}
|
||||||
SERIAL_ECHOLN("G80 disabled");
|
else
|
||||||
}
|
{
|
||||||
|
st_synchronize();
|
||||||
if ( _doMeshL)
|
// Push the commands to the front of the message queue in the reverse order!
|
||||||
{
|
// There shall be always enough space reserved for these commands.
|
||||||
st_synchronize();
|
// enquecommand_front_P((PSTR("G80")));
|
||||||
// Push the commands to the front of the message queue in the reverse order!
|
goto case_G80;
|
||||||
// There shall be always enough space reserved for these commands.
|
|
||||||
// enquecommand_front_P((PSTR("G80")));
|
|
||||||
goto case_G80;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (farm_mode) { prusa_statistics(20); };
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef ENABLE_AUTO_BED_LEVELING
|
#ifdef ENABLE_AUTO_BED_LEVELING
|
||||||
|
|
@ -2502,6 +2552,25 @@ void process_commands()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 98:
|
||||||
|
farm_no = 21;
|
||||||
|
EEPROM_save_B(EEPROM_FARM_MODE, &farm_no);
|
||||||
|
farm_mode = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 99:
|
||||||
|
farm_no = 0;
|
||||||
|
EEPROM_save_B(EEPROM_FARM_MODE, &farm_no);
|
||||||
|
farm_mode = false;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
} // end if(code_seen('G'))
|
} // end if(code_seen('G'))
|
||||||
|
|
||||||
|
|
@ -3196,6 +3265,7 @@ Sigma_Exit:
|
||||||
}
|
}
|
||||||
LCD_MESSAGERPGM(MSG_HEATING);
|
LCD_MESSAGERPGM(MSG_HEATING);
|
||||||
heating_status = 1;
|
heating_status = 1;
|
||||||
|
if (farm_mode) { prusa_statistics(1); };
|
||||||
|
|
||||||
#ifdef AUTOTEMP
|
#ifdef AUTOTEMP
|
||||||
autotemp_enabled=false;
|
autotemp_enabled=false;
|
||||||
|
|
@ -3274,6 +3344,7 @@ Sigma_Exit:
|
||||||
}
|
}
|
||||||
LCD_MESSAGERPGM(MSG_HEATING_COMPLETE);
|
LCD_MESSAGERPGM(MSG_HEATING_COMPLETE);
|
||||||
heating_status = 2;
|
heating_status = 2;
|
||||||
|
if (farm_mode) { prusa_statistics(2); };
|
||||||
|
|
||||||
starttime=millis();
|
starttime=millis();
|
||||||
previous_millis_cmd = millis();
|
previous_millis_cmd = millis();
|
||||||
|
|
@ -3283,7 +3354,7 @@ Sigma_Exit:
|
||||||
#if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
|
#if defined(TEMP_BED_PIN) && TEMP_BED_PIN > -1
|
||||||
LCD_MESSAGERPGM(MSG_BED_HEATING);
|
LCD_MESSAGERPGM(MSG_BED_HEATING);
|
||||||
heating_status = 3;
|
heating_status = 3;
|
||||||
|
if (farm_mode) { prusa_statistics(1); };
|
||||||
if (code_seen('S'))
|
if (code_seen('S'))
|
||||||
{
|
{
|
||||||
setTargetBed(code_value());
|
setTargetBed(code_value());
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,10 @@ int8_t SilentModeMenu = 0;
|
||||||
int lcd_commands_type=0;
|
int lcd_commands_type=0;
|
||||||
int lcd_commands_step=0;
|
int lcd_commands_step=0;
|
||||||
bool isPrintPaused = false;
|
bool isPrintPaused = false;
|
||||||
|
bool farm_mode = false;
|
||||||
|
int farm_no = 0;
|
||||||
|
int farm_timer = 30;
|
||||||
|
int farm_status = 0;
|
||||||
|
|
||||||
bool menuExiting = false;
|
bool menuExiting = false;
|
||||||
|
|
||||||
|
|
@ -114,6 +118,11 @@ static void lcd_control_temperature_preheat_abs_settings_menu();
|
||||||
static void lcd_control_motion_menu();
|
static void lcd_control_motion_menu();
|
||||||
static void lcd_control_volumetric_menu();
|
static void lcd_control_volumetric_menu();
|
||||||
|
|
||||||
|
static void prusa_stat_printerstatus(int _status);
|
||||||
|
static void prusa_stat_temperatures();
|
||||||
|
static void prusa_stat_printinfo();
|
||||||
|
static void lcd_farm_no();
|
||||||
|
|
||||||
#ifdef DOGLCD
|
#ifdef DOGLCD
|
||||||
static void lcd_set_contrast();
|
static void lcd_set_contrast();
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -340,7 +349,27 @@ static void lcd_status_screen()
|
||||||
lcd_implementation_status_screen();
|
lcd_implementation_status_screen();
|
||||||
//lcd_implementation_clear();
|
//lcd_implementation_clear();
|
||||||
|
|
||||||
|
if (farm_mode)
|
||||||
|
{
|
||||||
|
farm_timer--;
|
||||||
|
if (farm_timer < 1)
|
||||||
|
{
|
||||||
|
farm_timer = 90;
|
||||||
|
prusa_statistics(0);
|
||||||
|
}
|
||||||
|
switch (farm_timer)
|
||||||
|
{
|
||||||
|
case 45:
|
||||||
|
prusa_statistics(21);
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
if (IS_SD_PRINTING)
|
||||||
|
{
|
||||||
|
prusa_statistics(20);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -504,6 +533,7 @@ void lcd_commands()
|
||||||
if (lcd_commands_step == 4 && !blocks_queued())
|
if (lcd_commands_step == 4 && !blocks_queued())
|
||||||
{
|
{
|
||||||
enquecommand_P(PSTR("G90"));
|
enquecommand_P(PSTR("G90"));
|
||||||
|
enquecommand_P(PSTR("M83"));
|
||||||
#ifdef X_CANCEL_POS
|
#ifdef X_CANCEL_POS
|
||||||
enquecommand_P(PSTR("G1 X" STRINGIFY(X_CANCEL_POS) " Y" STRINGIFY(Y_CANCEL_POS) " E0 F7000"));
|
enquecommand_P(PSTR("G1 X" STRINGIFY(X_CANCEL_POS) " Y" STRINGIFY(Y_CANCEL_POS) " E0 F7000"));
|
||||||
#else
|
#else
|
||||||
|
|
@ -538,6 +568,46 @@ void lcd_commands()
|
||||||
lcd_commands_type = 0;
|
lcd_commands_type = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (lcd_commands_type == 4) /// farm mode confirm
|
||||||
|
{
|
||||||
|
|
||||||
|
if (lcd_commands_step == 0) { lcd_commands_step = 6; custom_message = true; }
|
||||||
|
|
||||||
|
if (lcd_commands_step == 1 && !blocks_queued())
|
||||||
|
{
|
||||||
|
lcd_confirm_print();
|
||||||
|
lcd_commands_step = 0;
|
||||||
|
lcd_commands_type = 0;
|
||||||
|
}
|
||||||
|
if (lcd_commands_step == 2 && !blocks_queued())
|
||||||
|
{
|
||||||
|
lcd_commands_step = 1;
|
||||||
|
}
|
||||||
|
if (lcd_commands_step == 3 && !blocks_queued())
|
||||||
|
{
|
||||||
|
lcd_commands_step = 2;
|
||||||
|
}
|
||||||
|
if (lcd_commands_step == 4 && !blocks_queued())
|
||||||
|
{
|
||||||
|
enquecommand_P(PSTR("G90"));
|
||||||
|
enquecommand_P(PSTR("G1 X" STRINGIFY(X_CANCEL_POS) " Y" STRINGIFY(Y_CANCEL_POS) " E0 F7000"));
|
||||||
|
lcd_commands_step = 3;
|
||||||
|
}
|
||||||
|
if (lcd_commands_step == 5 && !blocks_queued())
|
||||||
|
{
|
||||||
|
lcd_commands_step = 4;
|
||||||
|
}
|
||||||
|
if (lcd_commands_step == 6 && !blocks_queued())
|
||||||
|
{
|
||||||
|
enquecommand_P(PSTR("G91"));
|
||||||
|
enquecommand_P(PSTR("G1 Z15 F1500"));
|
||||||
|
st_synchronize();
|
||||||
|
lcd_commands_step = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void lcd_return_to_status() {
|
static void lcd_return_to_status() {
|
||||||
|
|
@ -924,7 +994,7 @@ static void lcd_menu_statistics()
|
||||||
int _t = (millis() - starttime) / 1000;
|
int _t = (millis() - starttime) / 1000;
|
||||||
|
|
||||||
int _h = _t / 3600;
|
int _h = _t / 3600;
|
||||||
int _m = (_t - (_h * 60)) / 60;
|
int _m = (_t - (_h * 3600)) / 60;
|
||||||
int _s = _t - ((_h * 3600) + (_m * 60));
|
int _s = _t - ((_h * 3600) + (_m * 60));
|
||||||
|
|
||||||
lcd.setCursor(0, 0);
|
lcd.setCursor(0, 0);
|
||||||
|
|
@ -1486,6 +1556,148 @@ void lcd_diag_show_end_stops()
|
||||||
lcd_return_to_status();
|
lcd_return_to_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void prusa_statistics(int _message) {
|
||||||
|
|
||||||
|
switch (_message)
|
||||||
|
{
|
||||||
|
|
||||||
|
case 0: // default message
|
||||||
|
if (IS_SD_PRINTING)
|
||||||
|
{
|
||||||
|
SERIAL_ECHO("{");
|
||||||
|
prusa_stat_printerstatus(4);
|
||||||
|
prusa_stat_printinfo();
|
||||||
|
SERIAL_ECHOLN("}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SERIAL_ECHO("{");
|
||||||
|
prusa_stat_printerstatus(1);
|
||||||
|
SERIAL_ECHOLN("}");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 1: // 1 heating
|
||||||
|
farm_status = 2;
|
||||||
|
SERIAL_ECHO("{");
|
||||||
|
prusa_stat_printerstatus(2);
|
||||||
|
SERIAL_ECHOLN("}");
|
||||||
|
farm_timer = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2: // heating done
|
||||||
|
farm_status = 3;
|
||||||
|
SERIAL_ECHO("{");
|
||||||
|
prusa_stat_printerstatus(3);
|
||||||
|
SERIAL_ECHOLN("}");
|
||||||
|
farm_timer = 1;
|
||||||
|
|
||||||
|
if (IS_SD_PRINTING)
|
||||||
|
{
|
||||||
|
farm_status = 4;
|
||||||
|
SERIAL_ECHO("{");
|
||||||
|
prusa_stat_printerstatus(4);
|
||||||
|
SERIAL_ECHOLN("}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SERIAL_ECHO("{");
|
||||||
|
prusa_stat_printerstatus(3);
|
||||||
|
SERIAL_ECHOLN("}");;
|
||||||
|
}
|
||||||
|
farm_timer = 1;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 3: // filament change
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 4: // print succesfull
|
||||||
|
SERIAL_ECHOLN("{[RES:1]}");
|
||||||
|
farm_timer = 2;
|
||||||
|
break;
|
||||||
|
case 5: // print not succesfull
|
||||||
|
SERIAL_ECHOLN("{[RES:0]}");
|
||||||
|
farm_timer = 2;
|
||||||
|
break;
|
||||||
|
case 6: // print done
|
||||||
|
SERIAL_ECHOLN("{[PRN:8]}");
|
||||||
|
farm_timer = 2;
|
||||||
|
break;
|
||||||
|
case 7: // print done - stopped
|
||||||
|
SERIAL_ECHOLN("{[PRN:9]}");
|
||||||
|
farm_timer = 2;
|
||||||
|
break;
|
||||||
|
case 8: // printer started
|
||||||
|
SERIAL_ECHO("{[PRN:0][PFN:");
|
||||||
|
SERIAL_ECHO(farm_no);
|
||||||
|
SERIAL_ECHOLN("]}");
|
||||||
|
farm_timer = 2;
|
||||||
|
break;
|
||||||
|
case 20: // echo farm no
|
||||||
|
SERIAL_ECHO("{[PFN:");
|
||||||
|
SERIAL_ECHO(farm_no);
|
||||||
|
SERIAL_ECHOLN("]}");
|
||||||
|
farm_timer = 5;
|
||||||
|
break;
|
||||||
|
case 21: // temperatures
|
||||||
|
SERIAL_ECHO("{");
|
||||||
|
prusa_stat_temperatures();
|
||||||
|
SERIAL_ECHOLN("}");
|
||||||
|
break;
|
||||||
|
case 99: // heartbeat
|
||||||
|
SERIAL_ECHOLN("{[PRN:99]}");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void prusa_stat_printerstatus(int _status)
|
||||||
|
{
|
||||||
|
SERIAL_ECHO("[PRN:");
|
||||||
|
SERIAL_ECHO(_status);
|
||||||
|
SERIAL_ECHO("]");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void prusa_stat_temperatures()
|
||||||
|
{
|
||||||
|
SERIAL_ECHO("[ST0:");
|
||||||
|
SERIAL_ECHO(target_temperature[0]);
|
||||||
|
SERIAL_ECHO("][STB:");
|
||||||
|
SERIAL_ECHO(target_temperature_bed);
|
||||||
|
SERIAL_ECHO("][AT0:");
|
||||||
|
SERIAL_ECHO(current_temperature[0]);
|
||||||
|
SERIAL_ECHO("][ATB:");
|
||||||
|
SERIAL_ECHO(current_temperature_bed);
|
||||||
|
SERIAL_ECHO("]");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void prusa_stat_printinfo()
|
||||||
|
{
|
||||||
|
SERIAL_ECHO("[TFU:");
|
||||||
|
SERIAL_ECHO(total_filament_used);
|
||||||
|
SERIAL_ECHO("][PCD:");
|
||||||
|
SERIAL_ECHO(itostr3(card.percentDone()));
|
||||||
|
SERIAL_ECHO("][FEM:");
|
||||||
|
SERIAL_ECHO(itostr3(feedmultiply));
|
||||||
|
SERIAL_ECHO("][FNM:");
|
||||||
|
SERIAL_ECHO(longFilenameOLD);
|
||||||
|
SERIAL_ECHO("][TIM:");
|
||||||
|
if (starttime != 0)
|
||||||
|
{
|
||||||
|
SERIAL_ECHO(millis() / 1000 - starttime / 1000);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SERIAL_ECHO(0);
|
||||||
|
}
|
||||||
|
SERIAL_ECHO("][FWR:");
|
||||||
|
SERIAL_ECHO(FW_version);
|
||||||
|
SERIAL_ECHO("]");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void lcd_pick_babystep(){
|
void lcd_pick_babystep(){
|
||||||
int enc_dif = 0;
|
int enc_dif = 0;
|
||||||
int cursor_pos = 1;
|
int cursor_pos = 1;
|
||||||
|
|
@ -1732,7 +1944,10 @@ static void lcd_settings_menu()
|
||||||
MENU_ITEM(submenu, MSG_CALIBRATE_BED, lcd_mesh_calibration);
|
MENU_ITEM(submenu, MSG_CALIBRATE_BED, lcd_mesh_calibration);
|
||||||
MENU_ITEM(gcode, MSG_CALIBRATE_BED_RESET, PSTR("M44"));
|
MENU_ITEM(gcode, MSG_CALIBRATE_BED_RESET, PSTR("M44"));
|
||||||
}
|
}
|
||||||
|
if (farm_mode)
|
||||||
|
{
|
||||||
|
MENU_ITEM(submenu, PSTR("Farm number"), lcd_farm_no);
|
||||||
|
}
|
||||||
END_MENU();
|
END_MENU();
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|
@ -1920,6 +2135,123 @@ void lcd_mylang() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void lcd_farm_no()
|
||||||
|
{
|
||||||
|
int enc_dif = 0;
|
||||||
|
int _farmno = farm_no;
|
||||||
|
int _ret = 0;
|
||||||
|
lcd_implementation_clear();
|
||||||
|
|
||||||
|
lcd.setCursor(0, 0);
|
||||||
|
lcd.print("Farm no");
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
|
||||||
|
if (abs((enc_dif - encoderDiff)) > 2) {
|
||||||
|
if (enc_dif > encoderDiff) {
|
||||||
|
_farmno--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enc_dif < encoderDiff) {
|
||||||
|
_farmno++;
|
||||||
|
}
|
||||||
|
enc_dif = 0;
|
||||||
|
encoderDiff = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_farmno > 254) { _farmno = 1; }
|
||||||
|
if (_farmno < 1) { _farmno = 254; }
|
||||||
|
|
||||||
|
|
||||||
|
lcd.setCursor(0, 2);
|
||||||
|
lcd.print(_farmno);
|
||||||
|
lcd.print(" ");
|
||||||
|
delay(100);
|
||||||
|
|
||||||
|
if (lcd_clicked())
|
||||||
|
{
|
||||||
|
_ret = 1;
|
||||||
|
farm_no = _farmno;
|
||||||
|
EEPROM_save_B(EEPROM_FARM_MODE, &farm_no);
|
||||||
|
prusa_statistics(20);
|
||||||
|
lcd_return_to_status();
|
||||||
|
}
|
||||||
|
|
||||||
|
manage_heater();
|
||||||
|
} while (_ret == 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_confirm_print()
|
||||||
|
{
|
||||||
|
int enc_dif = 0;
|
||||||
|
int cursor_pos = 1;
|
||||||
|
int _ret = 0;
|
||||||
|
int _t = 0;
|
||||||
|
|
||||||
|
|
||||||
|
lcd_implementation_clear();
|
||||||
|
|
||||||
|
lcd.setCursor(0, 0);
|
||||||
|
lcd.print("Print ok ?");
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
|
||||||
|
if (abs((enc_dif - encoderDiff)) > 2) {
|
||||||
|
if (enc_dif > encoderDiff) {
|
||||||
|
cursor_pos--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enc_dif < encoderDiff) {
|
||||||
|
cursor_pos++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cursor_pos > 2) { cursor_pos = 2; }
|
||||||
|
if (cursor_pos < 1) { cursor_pos = 1; }
|
||||||
|
|
||||||
|
lcd.setCursor(0, 2); lcd.print(" ");
|
||||||
|
lcd.setCursor(0, 3); lcd.print(" ");
|
||||||
|
lcd.setCursor(2, 2);
|
||||||
|
lcd_printPGM(MSG_YES);
|
||||||
|
lcd.setCursor(2, 3);
|
||||||
|
lcd_printPGM(MSG_NO);
|
||||||
|
lcd.setCursor(0, 1 + cursor_pos);
|
||||||
|
lcd.print(">");
|
||||||
|
delay(100);
|
||||||
|
|
||||||
|
_t = _t + 1;
|
||||||
|
if (_t>100)
|
||||||
|
{
|
||||||
|
prusa_statistics(99);
|
||||||
|
_t = 0;
|
||||||
|
}
|
||||||
|
if (lcd_clicked())
|
||||||
|
{
|
||||||
|
if (cursor_pos == 1)
|
||||||
|
{
|
||||||
|
_ret = 1;
|
||||||
|
prusa_statistics(20);
|
||||||
|
prusa_statistics(4);
|
||||||
|
}
|
||||||
|
if (cursor_pos == 2)
|
||||||
|
{
|
||||||
|
_ret = 2;
|
||||||
|
prusa_statistics(20);
|
||||||
|
prusa_statistics(5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
manage_heater();
|
||||||
|
manage_inactivity();
|
||||||
|
|
||||||
|
} while (_ret == 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void lcd_main_menu()
|
static void lcd_main_menu()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,8 @@
|
||||||
void lcd_loading_color();
|
void lcd_loading_color();
|
||||||
void lcd_force_language_selection();
|
void lcd_force_language_selection();
|
||||||
void lcd_sdcard_stop();
|
void lcd_sdcard_stop();
|
||||||
|
void prusa_statistics(int _message);
|
||||||
|
void lcd_confirm_print();
|
||||||
|
|
||||||
bool lcd_detected(void);
|
bool lcd_detected(void);
|
||||||
|
|
||||||
|
|
@ -76,6 +78,7 @@
|
||||||
#else
|
#else
|
||||||
FORCE_INLINE void lcd_buttons_update() {}
|
FORCE_INLINE void lcd_buttons_update() {}
|
||||||
#endif
|
#endif
|
||||||
|
extern int lcd_commands_type;
|
||||||
|
|
||||||
extern int plaPreheatHotendTemp;
|
extern int plaPreheatHotendTemp;
|
||||||
extern int plaPreheatHPBTemp;
|
extern int plaPreheatHPBTemp;
|
||||||
|
|
@ -85,6 +88,11 @@
|
||||||
extern int absPreheatHPBTemp;
|
extern int absPreheatHPBTemp;
|
||||||
extern int absPreheatFanSpeed;
|
extern int absPreheatFanSpeed;
|
||||||
|
|
||||||
|
extern bool farm_mode;
|
||||||
|
extern int farm_no;
|
||||||
|
extern int farm_timer;
|
||||||
|
extern int farm_status;
|
||||||
|
|
||||||
extern bool cancel_heatup;
|
extern bool cancel_heatup;
|
||||||
|
|
||||||
#ifdef FILAMENT_LCD_DISPLAY
|
#ifdef FILAMENT_LCD_DISPLAY
|
||||||
|
|
|
||||||
|
|
@ -711,7 +711,12 @@ static void lcd_implementation_status_screen()
|
||||||
lcd.print('%');
|
lcd.print('%');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lcd.print(" ");
|
if (farm_mode)
|
||||||
|
{
|
||||||
|
lcd.print(" F");
|
||||||
|
lcd.print(farm_no);
|
||||||
|
lcd.print(" ");
|
||||||
|
}
|
||||||
|
|
||||||
//Print time elapsed
|
//Print time elapsed
|
||||||
lcd.setCursor(LCD_WIDTH - 8 -2, 2);
|
lcd.setCursor(LCD_WIDTH - 8 -2, 2);
|
||||||
|
|
@ -885,15 +890,7 @@ static void lcd_implementation_status_screen()
|
||||||
lcd.print(' ');
|
lcd.print(' ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_usb_printing==1 && custom_message==0)
|
|
||||||
{
|
|
||||||
lcd.setCursor(0, 3);
|
|
||||||
lcd.print(" ");
|
|
||||||
lcd.setCursor(0, 3);
|
|
||||||
lcd_printPGM(MSG_USB_PRINTING);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -244,8 +244,8 @@ BED SETTINGS
|
||||||
PREHEAT SETTINGS
|
PREHEAT SETTINGS
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 210
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
#define PLA_PREHEAT_HPB_TEMP 50
|
#define PLA_PREHEAT_HPB_TEMP 55
|
||||||
#define PLA_PREHEAT_FAN_SPEED 0
|
#define PLA_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define ABS_PREHEAT_HOTEND_TEMP 255
|
#define ABS_PREHEAT_HOTEND_TEMP 255
|
||||||
|
|
|
||||||
|
|
@ -244,8 +244,8 @@ BED SETTINGS
|
||||||
PREHEAT SETTINGS
|
PREHEAT SETTINGS
|
||||||
*------------------------------------*/
|
*------------------------------------*/
|
||||||
|
|
||||||
#define PLA_PREHEAT_HOTEND_TEMP 210
|
#define PLA_PREHEAT_HOTEND_TEMP 215
|
||||||
#define PLA_PREHEAT_HPB_TEMP 50
|
#define PLA_PREHEAT_HPB_TEMP 55
|
||||||
#define PLA_PREHEAT_FAN_SPEED 0
|
#define PLA_PREHEAT_FAN_SPEED 0
|
||||||
|
|
||||||
#define ABS_PREHEAT_HOTEND_TEMP 255
|
#define ABS_PREHEAT_HOTEND_TEMP 255
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue