Merge remote-tracking branch 'refs/remotes/prusa3d/MK2' into MK2
# Conflicts: # Firmware/Configuration.h # Firmware/ConfigurationStore.cpp # Firmware/Configuration_adv.h # Firmware/Marlin_main.cpp # Firmware/language_all.cpp # Firmware/language_all.h # Firmware/language_de.h # Firmware/language_en.h # Firmware/stepper.cpp
This commit is contained in:
commit
1cc5f5972b
|
|
@ -5,7 +5,7 @@
|
||||||
#include "Configuration_prusa.h"
|
#include "Configuration_prusa.h"
|
||||||
|
|
||||||
// Firmware version
|
// Firmware version
|
||||||
#define FW_version "3.0.12"
|
#define FW_version "3.0.12-2"
|
||||||
|
|
||||||
#define FW_PRUSA3D_MAGIC "PRUSA3DFW"
|
#define FW_PRUSA3D_MAGIC "PRUSA3DFW"
|
||||||
#define FW_PRUSA3D_MAGIC_LEN 10
|
#define FW_PRUSA3D_MAGIC_LEN 10
|
||||||
|
|
@ -48,9 +48,6 @@
|
||||||
#define EEPROM_BOWDEN_LENGTH (EEPROM_TEMP_CAL_ACTIVE - 2*4) //4 x int for bowden lengths for multimaterial
|
#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_CALIBRATION_STATUS_PINDA (EEPROM_BOWDEN_LENGTH - 1) //0 - not calibrated; 1 - calibrated
|
||||||
|
|
||||||
#define EEPROM_FILENAME (EEPROM_CALIBRATION_STATUS_PINDA - 8) //8chars to store filename without extension
|
|
||||||
#define EEPROM_FILE_POSITION (EEPROM_FILENAME - 4) //32 bit for uint32_t file position
|
|
||||||
|
|
||||||
// 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.
|
||||||
#define EEPROM_FIRMWARE_VERSION_END (FW_PRUSA3D_MAGIC_LEN+8)
|
#define EEPROM_FIRMWARE_VERSION_END (FW_PRUSA3D_MAGIC_LEN+8)
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,13 @@ void _EEPROM_readData(int &pos, uint8_t* value, uint8_t size)
|
||||||
// wrong data being written to the variables.
|
// wrong data being written to the variables.
|
||||||
// ALSO: always make sure the variables in the Store and retrieve sections are in the same order.
|
// ALSO: always make sure the variables in the Store and retrieve sections are in the same order.
|
||||||
|
|
||||||
|
#ifdef SNMM
|
||||||
|
#define EEPROM_VERSION "M1"
|
||||||
|
#else
|
||||||
#define EEPROM_VERSION "V1"
|
#define EEPROM_VERSION "V1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef EEPROM_SETTINGS
|
#ifdef EEPROM_SETTINGS
|
||||||
void Config_StoreSettings()
|
void Config_StoreSettings()
|
||||||
|
|
@ -264,12 +270,14 @@ void Config_PrintSettings()
|
||||||
|
|
||||||
|
|
||||||
#ifdef EEPROM_SETTINGS
|
#ifdef EEPROM_SETTINGS
|
||||||
void Config_RetrieveSettings()
|
bool Config_RetrieveSettings()
|
||||||
{
|
{
|
||||||
int i=EEPROM_OFFSET;
|
int i=EEPROM_OFFSET;
|
||||||
|
bool previous_settings_retrieved = true;
|
||||||
char stored_ver[4];
|
char stored_ver[4];
|
||||||
char ver[4]=EEPROM_VERSION;
|
char ver[4]=EEPROM_VERSION;
|
||||||
EEPROM_READ_VAR(i,stored_ver); //read stored version
|
EEPROM_READ_VAR(i,stored_ver); //read stored version
|
||||||
|
|
||||||
// SERIAL_ECHOLN("Version: [" << ver << "] Stored version: [" << stored_ver << "]");
|
// SERIAL_ECHOLN("Version: [" << ver << "] Stored version: [" << stored_ver << "]");
|
||||||
if (strncmp(ver,stored_ver,3) == 0)
|
if (strncmp(ver,stored_ver,3) == 0)
|
||||||
{
|
{
|
||||||
|
|
@ -352,17 +360,25 @@ void Config_RetrieveSettings()
|
||||||
updatePID();
|
updatePID();
|
||||||
float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;
|
float tmp1[] = DEFAULT_AXIS_STEPS_PER_UNIT;
|
||||||
axis_steps_per_unit[3] = tmp1[3];
|
axis_steps_per_unit[3] = tmp1[3];
|
||||||
|
|
||||||
SERIAL_ECHO_START;
|
SERIAL_ECHO_START;
|
||||||
SERIAL_ECHOLNPGM("Stored settings retrieved");
|
SERIAL_ECHOLNPGM("Stored settings retrieved");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Config_ResetDefault();
|
Config_ResetDefault();
|
||||||
|
|
||||||
|
//Return false to inform user that eeprom version was changed and firmware is using default hardcoded settings now.
|
||||||
|
//In case that storing to eeprom was not used yet, do not inform user that hardcoded settings are used.
|
||||||
|
if (eeprom_read_byte((uint8_t *)EEPROM_OFFSET) != 0xFF ||
|
||||||
|
eeprom_read_byte((uint8_t *)EEPROM_OFFSET + 1) != 0xFF ||
|
||||||
|
eeprom_read_byte((uint8_t *)EEPROM_OFFSET + 2) != 0xFF) {
|
||||||
|
previous_settings_retrieved = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#ifdef EEPROM_CHITCHAT
|
#ifdef EEPROM_CHITCHAT
|
||||||
Config_PrintSettings();
|
Config_PrintSettings();
|
||||||
#endif
|
#endif
|
||||||
|
return previous_settings_retrieved;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ FORCE_INLINE void Config_PrintSettings() {}
|
||||||
|
|
||||||
#ifdef EEPROM_SETTINGS
|
#ifdef EEPROM_SETTINGS
|
||||||
void Config_StoreSettings();
|
void Config_StoreSettings();
|
||||||
void Config_RetrieveSettings();
|
bool Config_RetrieveSettings();
|
||||||
#else
|
#else
|
||||||
FORCE_INLINE void Config_StoreSettings() {}
|
FORCE_INLINE void Config_StoreSettings() {}
|
||||||
FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); }
|
FORCE_INLINE void Config_RetrieveSettings() { Config_ResetDefault(); Config_PrintSettings(); }
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@
|
||||||
// When first starting the main fan, run it at full speed for the
|
// When first starting the main fan, run it at full speed for the
|
||||||
// given number of milliseconds. This gets the fan spinning reliably
|
// given number of milliseconds. This gets the fan spinning reliably
|
||||||
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
|
// before setting a PWM value. (Does not work with software PWM for fan on Sanguinololu)
|
||||||
//#define FAN_KICKSTART_TIME 100
|
#define FAN_KICKSTART_TIME 1000
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -349,7 +349,3 @@ void temp_compensation_apply();
|
||||||
void temp_compensation_start();
|
void temp_compensation_start();
|
||||||
void wait_for_heater(long codenum);
|
void wait_for_heater(long codenum);
|
||||||
void serialecho_temperatures();
|
void serialecho_temperatures();
|
||||||
|
|
||||||
extern void save_print_to_eeprom();
|
|
||||||
extern void restore_print_from_eeprom();
|
|
||||||
extern void position_menu();
|
|
||||||
|
|
@ -1046,7 +1046,7 @@ void setup()
|
||||||
SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE);
|
SERIAL_ECHOLN((int)sizeof(block_t)*BLOCK_BUFFER_SIZE);
|
||||||
lcd_update_enable(false);
|
lcd_update_enable(false);
|
||||||
// loads data from EEPROM if available else uses defaults (and resets step acceleration rate)
|
// loads data from EEPROM if available else uses defaults (and resets step acceleration rate)
|
||||||
Config_RetrieveSettings();
|
bool previous_settings_retrieved = Config_RetrieveSettings();
|
||||||
SdFatUtil::set_stack_guard(); //writes magic number at the end of static variables to protect against overwriting static memory by stack
|
SdFatUtil::set_stack_guard(); //writes magic number at the end of static variables to protect against overwriting static memory by stack
|
||||||
tp_init(); // Initialize temperature loop
|
tp_init(); // Initialize temperature loop
|
||||||
plan_init(); // Initialize planner;
|
plan_init(); // Initialize planner;
|
||||||
|
|
@ -1210,6 +1210,12 @@ void setup()
|
||||||
lcd_show_fullscreen_message_and_wait_P(MSG_FOLLOW_CALIBRATION_FLOW);
|
lcd_show_fullscreen_message_and_wait_P(MSG_FOLLOW_CALIBRATION_FLOW);
|
||||||
}
|
}
|
||||||
for (int i = 0; i<4; i++) EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]);
|
for (int i = 0; i<4; i++) EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]);
|
||||||
|
|
||||||
|
//If eeprom version for storing parameters to eeprom using M500 changed, default settings are used. Inform user in this case
|
||||||
|
if (!previous_settings_retrieved) {
|
||||||
|
lcd_show_fullscreen_message_and_wait_P(MSG_DEFAULT_SETTINGS_LOADED);
|
||||||
|
}
|
||||||
|
|
||||||
lcd_update_enable(true);
|
lcd_update_enable(true);
|
||||||
|
|
||||||
// Store the currently running firmware into an eeprom,
|
// Store the currently running firmware into an eeprom,
|
||||||
|
|
@ -1380,6 +1386,7 @@ void get_command()
|
||||||
continue;
|
continue;
|
||||||
if(serial_char == '\n' ||
|
if(serial_char == '\n' ||
|
||||||
serial_char == '\r' ||
|
serial_char == '\r' ||
|
||||||
|
(serial_char == ':' && comment_mode == false) ||
|
||||||
serial_count >= (MAX_CMD_SIZE - 1) )
|
serial_count >= (MAX_CMD_SIZE - 1) )
|
||||||
{
|
{
|
||||||
if(!serial_count) { //if empty line
|
if(!serial_count) { //if empty line
|
||||||
|
|
@ -1388,7 +1395,6 @@ void get_command()
|
||||||
}
|
}
|
||||||
cmdbuffer[bufindw+serial_count+1] = 0; //terminate string
|
cmdbuffer[bufindw+serial_count+1] = 0; //terminate string
|
||||||
if(!comment_mode){
|
if(!comment_mode){
|
||||||
comment_mode = false; //for new command
|
|
||||||
if ((strchr_pointer = strstr(cmdbuffer+bufindw+1, "PRUSA")) == NULL && (strchr_pointer = strchr(cmdbuffer+bufindw+1, 'N')) != NULL) {
|
if ((strchr_pointer = strstr(cmdbuffer+bufindw+1, "PRUSA")) == NULL && (strchr_pointer = strchr(cmdbuffer+bufindw+1, 'N')) != NULL) {
|
||||||
if ((strchr_pointer = strchr(cmdbuffer+bufindw+1, 'N')) != NULL)
|
if ((strchr_pointer = strchr(cmdbuffer+bufindw+1, 'N')) != NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -3490,7 +3496,6 @@ void process_commands()
|
||||||
starttime=millis();
|
starttime=millis();
|
||||||
break;
|
break;
|
||||||
case 25: //M25 - Pause SD print
|
case 25: //M25 - Pause SD print
|
||||||
save_print_to_eeprom();
|
|
||||||
card.pauseSDPrint();
|
card.pauseSDPrint();
|
||||||
break;
|
break;
|
||||||
case 26: //M26 - Set SD index
|
case 26: //M26 - Set SD index
|
||||||
|
|
@ -5000,10 +5005,6 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
case 500: // M500 Store settings in EEPROM
|
case 500: // M500 Store settings in EEPROM
|
||||||
{
|
{
|
||||||
Config_StoreSettings();
|
Config_StoreSettings();
|
||||||
|
|
@ -6659,41 +6660,3 @@ void serialecho_temperatures() {
|
||||||
SERIAL_PROTOCOL_F(degBed(), 1);
|
SERIAL_PROTOCOL_F(degBed(), 1);
|
||||||
SERIAL_PROTOCOLLN("");
|
SERIAL_PROTOCOLLN("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void save_print_to_eeprom() {
|
|
||||||
|
|
||||||
eeprom_update_dword((uint32_t*)(EEPROM_FILE_POSITION), card.get_sdpos());
|
|
||||||
}
|
|
||||||
|
|
||||||
void restore_print_from_eeprom() {
|
|
||||||
char cmd[30];
|
|
||||||
char* c;
|
|
||||||
char filename[13];
|
|
||||||
char str[5] = ".gco";
|
|
||||||
for (int i = 0; i < 8; i++) {
|
|
||||||
filename[i] = eeprom_read_byte((uint8_t*)EEPROM_FILENAME + i);
|
|
||||||
}
|
|
||||||
filename[8] = '\0';
|
|
||||||
MYSERIAL.print(filename);
|
|
||||||
strcat(filename, str);
|
|
||||||
sprintf_P(cmd, PSTR("M23 %s"), filename);
|
|
||||||
for (c = &cmd[4]; *c; c++)
|
|
||||||
*c = tolower(*c);
|
|
||||||
enquecommand(cmd);
|
|
||||||
uint32_t position = eeprom_read_dword((uint32_t*)(EEPROM_FILE_POSITION));
|
|
||||||
SERIAL_ECHOPGM("Position read from eeprom:");
|
|
||||||
MYSERIAL.println(position);
|
|
||||||
|
|
||||||
card.setIndex(position);
|
|
||||||
enquecommand_P(PSTR("M24"));
|
|
||||||
sprintf_P(cmd, PSTR("M26 S%d"), position);
|
|
||||||
enquecommand(cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
void position_menu() {
|
|
||||||
SERIAL_ECHOPGM("Percent done:");
|
|
||||||
MYSERIAL.println(card.percentDone());
|
|
||||||
SERIAL_ECHOPGM("sdpos:");
|
|
||||||
MYSERIAL.println(card.get_sdpos());
|
|
||||||
}
|
|
||||||
|
|
@ -47,7 +47,6 @@ public:
|
||||||
FORCE_INLINE void setIndex(long index) {sdpos = index;file.seekSet(index);};
|
FORCE_INLINE void setIndex(long index) {sdpos = index;file.seekSet(index);};
|
||||||
FORCE_INLINE uint8_t percentDone(){if(!isFileOpen()) return 0; if(filesize) return sdpos/((filesize+99)/100); else return 0;};
|
FORCE_INLINE uint8_t percentDone(){if(!isFileOpen()) return 0; if(filesize) return sdpos/((filesize+99)/100); else return 0;};
|
||||||
FORCE_INLINE char* getWorkDirName(){workDir.getFilename(filename);return filename;};
|
FORCE_INLINE char* getWorkDirName(){workDir.getFilename(filename);return filename;};
|
||||||
FORCE_INLINE uint32_t get_sdpos() { if (!isFileOpen()) return 0; else return(sdpos); };
|
|
||||||
|
|
||||||
bool ToshibaFlashAir_isEnabled() const { return card.getFlashAirCompatible(); }
|
bool ToshibaFlashAir_isEnabled() const { return card.getFlashAirCompatible(); }
|
||||||
void ToshibaFlashAir_enable(bool enable) { card.setFlashAirCompatible(enable); }
|
void ToshibaFlashAir_enable(bool enable) { card.setFlashAirCompatible(enable); }
|
||||||
|
|
|
||||||
|
|
@ -856,7 +856,7 @@ const char MSG_DATE_CZ[] PROGMEM = "Datum:";
|
||||||
const char MSG_DATE_IT[] PROGMEM = "Data";
|
const char MSG_DATE_IT[] PROGMEM = "Data";
|
||||||
const char MSG_DATE_ES[] PROGMEM = "Fecha:";
|
const char MSG_DATE_ES[] PROGMEM = "Fecha:";
|
||||||
const char MSG_DATE_PL[] PROGMEM = "Data:";
|
const char MSG_DATE_PL[] PROGMEM = "Data:";
|
||||||
const char MSG_DATE_DE[] PROGMEM = "Datum:";
|
const char MSG_DATE_DE[] PROGMEM = "Datum";
|
||||||
const char MSG_DATE_NL[] PROGMEM = "Datum:";
|
const char MSG_DATE_NL[] PROGMEM = "Datum:";
|
||||||
const char * const MSG_DATE_LANG_TABLE[LANG_NUM] PROGMEM = {
|
const char * const MSG_DATE_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_DATE_EN,
|
MSG_DATE_EN,
|
||||||
|
|
@ -868,6 +868,11 @@ const char * const MSG_DATE_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_DATE_NL
|
MSG_DATE_NL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char MSG_DEFAULT_SETTINGS_LOADED_EN[] PROGMEM = "Default settings loaded";
|
||||||
|
const char * const MSG_DEFAULT_SETTINGS_LOADED_LANG_TABLE[1] PROGMEM = {
|
||||||
|
MSG_DEFAULT_SETTINGS_LOADED_EN
|
||||||
|
};
|
||||||
|
|
||||||
const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers";
|
const char MSG_DISABLE_STEPPERS_EN[] PROGMEM = "Disable steppers";
|
||||||
const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
|
const char MSG_DISABLE_STEPPERS_CZ[] PROGMEM = "Vypnout motory";
|
||||||
const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
|
const char MSG_DISABLE_STEPPERS_IT[] PROGMEM = "Disabilit motori";
|
||||||
|
|
@ -1813,7 +1818,7 @@ const char MSG_MEASURED_SKEW_CZ[] PROGMEM = "Merene zkoseni:";
|
||||||
const char MSG_MEASURED_SKEW_IT[] PROGMEM = "Incl. misurata:";
|
const char MSG_MEASURED_SKEW_IT[] PROGMEM = "Incl. misurata:";
|
||||||
const char MSG_MEASURED_SKEW_ES[] PROGMEM = "Inclin. medida:";
|
const char MSG_MEASURED_SKEW_ES[] PROGMEM = "Inclin. medida:";
|
||||||
const char MSG_MEASURED_SKEW_PL[] PROGMEM = "Zmier. sciecie:";
|
const char MSG_MEASURED_SKEW_PL[] PROGMEM = "Zmier. sciecie:";
|
||||||
const char MSG_MEASURED_SKEW_DE[] PROGMEM = "Symmetrie:";
|
const char MSG_MEASURED_SKEW_DE[] PROGMEM = "Schraeglauf:";
|
||||||
const char MSG_MEASURED_SKEW_NL[] PROGMEM = "Symmetrie:";
|
const char MSG_MEASURED_SKEW_NL[] PROGMEM = "Symmetrie:";
|
||||||
const char * const MSG_MEASURED_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
|
const char * const MSG_MEASURED_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_MEASURED_SKEW_EN,
|
MSG_MEASURED_SKEW_EN,
|
||||||
|
|
@ -3229,7 +3234,7 @@ const char MSG_SEVERE_SKEW_CZ[] PROGMEM = "Tezke zkoseni:";
|
||||||
const char MSG_SEVERE_SKEW_IT[] PROGMEM = "Inc. rilevante:";
|
const char MSG_SEVERE_SKEW_IT[] PROGMEM = "Inc. rilevante:";
|
||||||
const char MSG_SEVERE_SKEW_ES[] PROGMEM = "Inclin. severa:";
|
const char MSG_SEVERE_SKEW_ES[] PROGMEM = "Inclin. severa:";
|
||||||
const char MSG_SEVERE_SKEW_PL[] PROGMEM = "Ostre sciecie:";
|
const char MSG_SEVERE_SKEW_PL[] PROGMEM = "Ostre sciecie:";
|
||||||
const char MSG_SEVERE_SKEW_DE[] PROGMEM = "Schwere Asym.:";
|
const char MSG_SEVERE_SKEW_DE[] PROGMEM = "Schwerer Schr.:";
|
||||||
const char MSG_SEVERE_SKEW_NL[] PROGMEM = "Hevige Asym.:";
|
const char MSG_SEVERE_SKEW_NL[] PROGMEM = "Hevige Asym.:";
|
||||||
const char * const MSG_SEVERE_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
|
const char * const MSG_SEVERE_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_SEVERE_SKEW_EN,
|
MSG_SEVERE_SKEW_EN,
|
||||||
|
|
@ -3295,7 +3300,7 @@ const char MSG_SLIGHT_SKEW_CZ[] PROGMEM = "Lehke zkoseni:";
|
||||||
const char MSG_SLIGHT_SKEW_IT[] PROGMEM = "Incl. leggera:";
|
const char MSG_SLIGHT_SKEW_IT[] PROGMEM = "Incl. leggera:";
|
||||||
const char MSG_SLIGHT_SKEW_ES[] PROGMEM = "Inclin. ligera:";
|
const char MSG_SLIGHT_SKEW_ES[] PROGMEM = "Inclin. ligera:";
|
||||||
const char MSG_SLIGHT_SKEW_PL[] PROGMEM = "Lekkie sciecie:";
|
const char MSG_SLIGHT_SKEW_PL[] PROGMEM = "Lekkie sciecie:";
|
||||||
const char MSG_SLIGHT_SKEW_DE[] PROGMEM = "Geringe Asym.:";
|
const char MSG_SLIGHT_SKEW_DE[] PROGMEM = "Leichter Schr.:";
|
||||||
const char MSG_SLIGHT_SKEW_NL[] PROGMEM = "Geringe Asym.:";
|
const char MSG_SLIGHT_SKEW_NL[] PROGMEM = "Geringe Asym.:";
|
||||||
const char * const MSG_SLIGHT_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
|
const char * const MSG_SLIGHT_SKEW_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_SLIGHT_SKEW_EN,
|
MSG_SLIGHT_SKEW_EN,
|
||||||
|
|
@ -3795,7 +3800,7 @@ const char MSG_USED_CZ[] PROGMEM = "Pouzite behem tisku";
|
||||||
const char MSG_USED_IT[] PROGMEM = "Usati nella stampa";
|
const char MSG_USED_IT[] PROGMEM = "Usati nella stampa";
|
||||||
const char MSG_USED_ES[] PROGMEM = "Usado en impresion";
|
const char MSG_USED_ES[] PROGMEM = "Usado en impresion";
|
||||||
const char MSG_USED_PL[] PROGMEM = "Uzyte przy druku";
|
const char MSG_USED_PL[] PROGMEM = "Uzyte przy druku";
|
||||||
const char MSG_USED_DE[] PROGMEM = "Benutzt beim Druck";
|
const char MSG_USED_DE[] PROGMEM = "Beim Druck benutzte";
|
||||||
const char MSG_USED_NL[] PROGMEM = "Gebruikt bij print";
|
const char MSG_USED_NL[] PROGMEM = "Gebruikt bij print";
|
||||||
const char * const MSG_USED_LANG_TABLE[LANG_NUM] PROGMEM = {
|
const char * const MSG_USED_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_USED_EN,
|
MSG_USED_EN,
|
||||||
|
|
@ -3930,7 +3935,7 @@ const char MSG_Y_DISTANCE_FROM_MIN_CZ[] PROGMEM = "Y vzdalenost od min:";
|
||||||
const char MSG_Y_DISTANCE_FROM_MIN_IT[] PROGMEM = "Distanza Y da min:";
|
const char MSG_Y_DISTANCE_FROM_MIN_IT[] PROGMEM = "Distanza Y da min:";
|
||||||
const char MSG_Y_DISTANCE_FROM_MIN_ES[] PROGMEM = "Dist. Y desde min:";
|
const char MSG_Y_DISTANCE_FROM_MIN_ES[] PROGMEM = "Dist. Y desde min:";
|
||||||
const char MSG_Y_DISTANCE_FROM_MIN_PL[] PROGMEM = "Odleglosc Y od min.:";
|
const char MSG_Y_DISTANCE_FROM_MIN_PL[] PROGMEM = "Odleglosc Y od min.:";
|
||||||
const char MSG_Y_DISTANCE_FROM_MIN_DE[] PROGMEM = "Y Entfernung von min";
|
const char MSG_Y_DISTANCE_FROM_MIN_DE[] PROGMEM = "Y Entfernung vom min";
|
||||||
const char MSG_Y_DISTANCE_FROM_MIN_NL[] PROGMEM = "Y afstand van min";
|
const char MSG_Y_DISTANCE_FROM_MIN_NL[] PROGMEM = "Y afstand van min";
|
||||||
const char * const MSG_Y_DISTANCE_FROM_MIN_LANG_TABLE[LANG_NUM] PROGMEM = {
|
const char * const MSG_Y_DISTANCE_FROM_MIN_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_Y_DISTANCE_FROM_MIN_EN,
|
MSG_Y_DISTANCE_FROM_MIN_EN,
|
||||||
|
|
|
||||||
|
|
@ -151,6 +151,8 @@ extern const char* const MSG_CURRENT_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_CURRENT LANG_TABLE_SELECT(MSG_CURRENT_LANG_TABLE)
|
#define MSG_CURRENT LANG_TABLE_SELECT(MSG_CURRENT_LANG_TABLE)
|
||||||
extern const char* const MSG_DATE_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_DATE_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_DATE LANG_TABLE_SELECT(MSG_DATE_LANG_TABLE)
|
#define MSG_DATE LANG_TABLE_SELECT(MSG_DATE_LANG_TABLE)
|
||||||
|
extern const char* const MSG_DEFAULT_SETTINGS_LOADED_LANG_TABLE[1];
|
||||||
|
#define MSG_DEFAULT_SETTINGS_LOADED LANG_TABLE_SELECT_EXPLICIT(MSG_DEFAULT_SETTINGS_LOADED_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE)
|
#define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE)
|
||||||
extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM];
|
||||||
|
|
|
||||||
|
|
@ -210,6 +210,7 @@
|
||||||
#define(length=20, lines=8) MSG_MOVE_CARRIAGE_TO_THE_TOP "Kalibrieren von XYZ. Drehen Sie den Knopf, bis beide Z-Schlitten obere Anschaege erreichen. Klicken wenn beide ganz oben sind."
|
#define(length=20, lines=8) MSG_MOVE_CARRIAGE_TO_THE_TOP "Kalibrieren von XYZ. Drehen Sie den Knopf, bis beide Z-Schlitten obere Anschaege erreichen. Klicken wenn beide ganz oben sind."
|
||||||
#define(length=20, lines=8) MSG_MOVE_CARRIAGE_TO_THE_TOP_Z "Kalibrieren von Z. Drehen Sie den Knopf, bis beide Z-Schlitten obere Anschaege erreichen. Klicken wenn beide ganz oben sind."
|
#define(length=20, lines=8) MSG_MOVE_CARRIAGE_TO_THE_TOP_Z "Kalibrieren von Z. Drehen Sie den Knopf, bis beide Z-Schlitten obere Anschaege erreichen. Klicken wenn beide ganz oben sind."
|
||||||
|
|
||||||
|
<<<<<<< HEAD
|
||||||
#define(length=20, lines=8) MSG_CONFIRM_NOZZLE_CLEAN "Bitte reinigen Sie die Duese zur Kalibrierung. Klicken wenn sauber."
|
#define(length=20, lines=8) MSG_CONFIRM_NOZZLE_CLEAN "Bitte reinigen Sie die Duese zur Kalibrierung. Klicken wenn sauber."
|
||||||
#define(length=20, lines=8) MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Sind beide Z Schlitten ganz oben?"
|
#define(length=20, lines=8) MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Sind beide Z Schlitten ganz oben?"
|
||||||
|
|
||||||
|
|
@ -325,3 +326,34 @@
|
||||||
#define MSG_MEASURED_SKEW "Symmetrie:"
|
#define MSG_MEASURED_SKEW "Symmetrie:"
|
||||||
#define MSG_SLIGHT_SKEW "Geringe Asym.:"
|
#define MSG_SLIGHT_SKEW "Geringe Asym.:"
|
||||||
#define MSG_SEVERE_SKEW "Schwere Asym.:"
|
#define MSG_SEVERE_SKEW "Schwere Asym.:"
|
||||||
|
=======
|
||||||
|
#define MSG_LOAD_ALL "Alle laden"
|
||||||
|
#define MSG_LOAD_FILAMENT_1 "Filament 1 laden"
|
||||||
|
#define MSG_LOAD_FILAMENT_2 "Filament 2 laden"
|
||||||
|
#define MSG_LOAD_FILAMENT_3 "Filament 3 laden"
|
||||||
|
#define MSG_LOAD_FILAMENT_4 "Filament 4 laden"
|
||||||
|
#define MSG_UNLOAD_FILAMENT_1 "Filam. 1 entladen"
|
||||||
|
#define MSG_UNLOAD_FILAMENT_2 "Filam. 2 entladen"
|
||||||
|
#define MSG_UNLOAD_FILAMENT_3 "Filam. 3 entladen"
|
||||||
|
#define MSG_UNLOAD_FILAMENT_4 "Filam. 4 entladen"
|
||||||
|
#define MSG_UNLOAD_ALL "Alles entladen"
|
||||||
|
#define MSG_PREPARE_FILAMENT "Filam. bereithalten"
|
||||||
|
#define MSG_ALL "Alle"
|
||||||
|
#define MSG_USED "Beim Druck benutzte"
|
||||||
|
#define MSG_CURRENT "Aktuelles"
|
||||||
|
#define MSG_CHOOSE_EXTRUDER "Waehlen Sie Extruder"
|
||||||
|
#define MSG_EXTRUDER "Extruder"
|
||||||
|
#define MSG_EXTRUDER_1 "Extruder 1"
|
||||||
|
#define MSG_EXTRUDER_2 "Extruder 2"
|
||||||
|
#define MSG_EXTRUDER_3 "Extruder 3"
|
||||||
|
#define MSG_EXTRUDER_4 "Extruder 4"
|
||||||
|
#define MSG_DATE "Datum"
|
||||||
|
#define MSG_XYZ_DETAILS "XYZ Kal. Details"
|
||||||
|
#define MSG_Y_DISTANCE_FROM_MIN "Y Entfernung vom min"
|
||||||
|
#define MSG_LEFT "Links:"
|
||||||
|
#define MSG_CENTER "Mitte:"
|
||||||
|
#define MSG_RIGHT "Rechts:"
|
||||||
|
#define MSG_MEASURED_SKEW "Schraeglauf:"
|
||||||
|
#define MSG_SLIGHT_SKEW "Leichter Schr.:"
|
||||||
|
#define MSG_SEVERE_SKEW "Schwerer Schr.:"
|
||||||
|
>>>>>>> refs/remotes/prusa3d/MK2
|
||||||
|
|
|
||||||
|
|
@ -273,15 +273,9 @@
|
||||||
|
|
||||||
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
|
#define MSG_MESH_BED_LEVELING "Mesh Bed Leveling"
|
||||||
#define MSG_MENU_CALIBRATION "Calibration"
|
#define MSG_MENU_CALIBRATION "Calibration"
|
||||||
<<<<<<< HEAD
|
|
||||||
#define(length=20) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]"
|
|
||||||
#define(length=20) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]"
|
|
||||||
#define(length=20) MSG_PRINTER_DISCONNECTED "Printer disconnected"
|
|
||||||
=======
|
|
||||||
#define(length=19, lines=1) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]"
|
#define(length=19, lines=1) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]"
|
||||||
#define(length=19, lines=1) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]"
|
#define(length=19, lines=1) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_ON "SD card [FlshAir]"
|
||||||
#define(length=20, lines=1) MSG_PRINTER_DISCONNECTED "Printer disconnected"
|
#define(length=20, lines=1) MSG_PRINTER_DISCONNECTED "Printer disconnected"
|
||||||
>>>>>>> refs/remotes/prusa3d/MK2
|
|
||||||
#define(length=20, lines=1) MSG_FINISHING_MOVEMENTS "Finishing movements"
|
#define(length=20, lines=1) MSG_FINISHING_MOVEMENTS "Finishing movements"
|
||||||
#define(length=20, lines=1) MSG_PRINT_PAUSED "Print paused"
|
#define(length=20, lines=1) MSG_PRINT_PAUSED "Print paused"
|
||||||
#define(length=20, lines=1) MSG_RESUMING_PRINT "Resuming print"
|
#define(length=20, lines=1) MSG_RESUMING_PRINT "Resuming print"
|
||||||
|
|
@ -320,3 +314,4 @@
|
||||||
#define(length=15, lines=1) MSG_MEASURED_SKEW "Measured skew:"
|
#define(length=15, lines=1) MSG_MEASURED_SKEW "Measured skew:"
|
||||||
#define(length=15, lines=1) MSG_SLIGHT_SKEW "Slight skew:"
|
#define(length=15, lines=1) MSG_SLIGHT_SKEW "Slight skew:"
|
||||||
#define(length=15, lines=1) MSG_SEVERE_SKEW "Severe skew:"
|
#define(length=15, lines=1) MSG_SEVERE_SKEW "Severe skew:"
|
||||||
|
#define(length=20, lines=4) MSG_DEFAULT_SETTINGS_LOADED "Default settings loaded"
|
||||||
|
|
|
||||||
|
|
@ -956,8 +956,6 @@ static void lcd_support_menu()
|
||||||
START_MENU();
|
START_MENU();
|
||||||
|
|
||||||
MENU_ITEM(back, MSG_MAIN, lcd_main_menu);
|
MENU_ITEM(back, MSG_MAIN, lcd_main_menu);
|
||||||
MENU_ITEM(submenu, PSTR("restore"), restore_print_from_eeprom);
|
|
||||||
MENU_ITEM(submenu, PSTR("position"), position_menu);
|
|
||||||
|
|
||||||
// Ideally this block would be optimized out by the compiler.
|
// Ideally this block would be optimized out by the compiler.
|
||||||
const uint8_t fw_string_len = strlen_P(FW_VERSION_STR_P());
|
const uint8_t fw_string_len = strlen_P(FW_VERSION_STR_P());
|
||||||
|
|
@ -2107,7 +2105,7 @@ void lcd_diag_show_end_stops()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void prusa_statistics(int _message) {
|
void prusa_statistics(int _message, uint8_t _fil_nr) {
|
||||||
|
|
||||||
|
|
||||||
switch (_message)
|
switch (_message)
|
||||||
|
|
@ -2176,14 +2174,18 @@ void prusa_statistics(int _message) {
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 4: // print succesfull
|
case 4: // print succesfull
|
||||||
SERIAL_ECHOLN("{[RES:1]");
|
SERIAL_ECHO("{[RES:1][FIL:");
|
||||||
|
MYSERIAL.print(int(_fil_nr));
|
||||||
|
SERIAL_ECHO("]");
|
||||||
prusa_stat_printerstatus(status_number);
|
prusa_stat_printerstatus(status_number);
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
farm_timer = 2;
|
farm_timer = 2;
|
||||||
break;
|
break;
|
||||||
case 5: // print not succesfull
|
case 5: // print not succesfull
|
||||||
SERIAL_ECHOLN("{[RES:0]");
|
SERIAL_ECHO("{[RES:0][FIL:");
|
||||||
|
MYSERIAL.print(int(_fil_nr));
|
||||||
|
SERIAL_ECHO("]");
|
||||||
prusa_stat_printerstatus(status_number);
|
prusa_stat_printerstatus(status_number);
|
||||||
prusa_stat_farm_number();
|
prusa_stat_farm_number();
|
||||||
SERIAL_ECHOLN("}");
|
SERIAL_ECHOLN("}");
|
||||||
|
|
@ -3664,8 +3666,91 @@ static void lcd_farm_no()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
unsigned char lcd_choose_color() {
|
||||||
|
//function returns index of currently chosen item
|
||||||
|
//following part can be modified from 2 to 255 items:
|
||||||
|
//-----------------------------------------------------
|
||||||
|
unsigned char items_no = 2;
|
||||||
|
const char *item[items_no];
|
||||||
|
item[0] = "Black";
|
||||||
|
item[1] = "Orange";
|
||||||
|
//-----------------------------------------------------
|
||||||
|
unsigned char active_rows;
|
||||||
|
static int first = 0;
|
||||||
|
int enc_dif = 0;
|
||||||
|
unsigned char cursor_pos = 1;
|
||||||
|
enc_dif = encoderDiff;
|
||||||
|
lcd_implementation_clear();
|
||||||
|
lcd.setCursor(0, 1);
|
||||||
|
lcd.print(">");
|
||||||
|
|
||||||
|
active_rows = items_no < 3 ? items_no : 3;
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
lcd_print_at_PGM(0, 0, PSTR("Choose color:"));
|
||||||
|
for (int i = 0; i < active_rows; i++) {
|
||||||
|
lcd.setCursor(1, i+1);
|
||||||
|
lcd.print(item[first + i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
manage_heater();
|
||||||
|
manage_inactivity(true);
|
||||||
|
|
||||||
|
if (abs((enc_dif - encoderDiff)) > 4) {
|
||||||
|
|
||||||
|
if ((abs(enc_dif - encoderDiff)) > 1) {
|
||||||
|
if (enc_dif > encoderDiff) {
|
||||||
|
cursor_pos--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (enc_dif < encoderDiff) {
|
||||||
|
cursor_pos++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cursor_pos > active_rows) {
|
||||||
|
cursor_pos = active_rows;
|
||||||
|
if (first < items_no - active_rows) {
|
||||||
|
first++;
|
||||||
|
lcd_implementation_clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cursor_pos < 1) {
|
||||||
|
cursor_pos = 1;
|
||||||
|
if (first > 0) {
|
||||||
|
first--;
|
||||||
|
lcd_implementation_clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lcd.setCursor(0, 1);
|
||||||
|
lcd.print(" ");
|
||||||
|
lcd.setCursor(0, 2);
|
||||||
|
lcd.print(" ");
|
||||||
|
lcd.setCursor(0, 3);
|
||||||
|
lcd.print(" ");
|
||||||
|
lcd.setCursor(0, cursor_pos);
|
||||||
|
lcd.print(">");
|
||||||
|
enc_dif = encoderDiff;
|
||||||
|
delay(100);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (lcd_clicked()) {
|
||||||
|
while (lcd_clicked());
|
||||||
|
delay(10);
|
||||||
|
while (lcd_clicked());
|
||||||
|
return(cursor_pos + first - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void lcd_confirm_print()
|
void lcd_confirm_print()
|
||||||
{
|
{
|
||||||
|
uint8_t filament_type;
|
||||||
int enc_dif = 0;
|
int enc_dif = 0;
|
||||||
int cursor_pos = 1;
|
int cursor_pos = 1;
|
||||||
int _ret = 0;
|
int _ret = 0;
|
||||||
|
|
@ -3714,14 +3799,14 @@ void lcd_confirm_print()
|
||||||
if (cursor_pos == 1)
|
if (cursor_pos == 1)
|
||||||
{
|
{
|
||||||
_ret = 1;
|
_ret = 1;
|
||||||
prusa_statistics(20);
|
filament_type = lcd_choose_color();
|
||||||
prusa_statistics(4);
|
prusa_statistics(4, filament_type);
|
||||||
}
|
}
|
||||||
if (cursor_pos == 2)
|
if (cursor_pos == 2)
|
||||||
{
|
{
|
||||||
_ret = 2;
|
_ret = 2;
|
||||||
prusa_statistics(20);
|
filament_type = lcd_choose_color();
|
||||||
prusa_statistics(5);
|
prusa_statistics(5, filament_type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4902,9 +4987,7 @@ static void menu_action_sdfile(const char* filename, char* longFilename)
|
||||||
for (c = &cmd[4]; *c; c++)
|
for (c = &cmd[4]; *c; c++)
|
||||||
*c = tolower(*c);
|
*c = tolower(*c);
|
||||||
enquecommand(cmd);
|
enquecommand(cmd);
|
||||||
for (int i = 0; i < 8; i++) {
|
|
||||||
eeprom_write_byte((uint8_t*)EEPROM_FILENAME+i, filename[i]);
|
|
||||||
}
|
|
||||||
enquecommand_P(PSTR("M24"));
|
enquecommand_P(PSTR("M24"));
|
||||||
lcd_return_to_status();
|
lcd_return_to_status();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,9 @@
|
||||||
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 prusa_statistics(int _message, uint8_t _col_nr = 0);
|
||||||
void lcd_confirm_print();
|
void lcd_confirm_print();
|
||||||
|
unsigned char lcd_choose_color();
|
||||||
void lcd_mylang();
|
void lcd_mylang();
|
||||||
bool lcd_detected(void);
|
bool lcd_detected(void);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -742,7 +742,6 @@ static void lcd_implementation_status_screen()
|
||||||
if (IS_SD_PRINTING)
|
if (IS_SD_PRINTING)
|
||||||
{
|
{
|
||||||
lcd.print(itostr3(card.percentDone()));
|
lcd.print(itostr3(card.percentDone()));
|
||||||
card.get_sdpos();
|
|
||||||
lcd.print('%');
|
lcd.print('%');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -1183,10 +1182,9 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char*
|
||||||
|
|
||||||
int i = 1;
|
int i = 1;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
int inter = 0;
|
|
||||||
char* longFilenameTMP = longFilename;
|
char* longFilenameTMP = longFilename;
|
||||||
|
|
||||||
while( ((c = *longFilenameTMP) != '\0') && (inter == 0) )
|
while((c = *longFilenameTMP) != '\0')
|
||||||
{
|
{
|
||||||
|
|
||||||
lcd.setCursor(i, row);
|
lcd.setCursor(i, row);
|
||||||
|
|
@ -1196,20 +1194,22 @@ static void lcd_implementation_drawmenu_sdfile_selected(uint8_t row, const char*
|
||||||
if(i==LCD_WIDTH) {
|
if(i==LCD_WIDTH) {
|
||||||
i=1;
|
i=1;
|
||||||
j++;
|
j++;
|
||||||
longFilenameTMP = longFilename;
|
longFilenameTMP = longFilename + j;
|
||||||
longFilenameTMP = longFilenameTMP+j;
|
|
||||||
n = LCD_WIDTH - 1;
|
n = LCD_WIDTH - 1;
|
||||||
for(int g = 0; ((g<300)&&(inter == 0)) ;g++){
|
for(int g = 0; g<300 ;g++){
|
||||||
if(LCD_CLICKED || ( enc_dif != encoderDiff )){
|
if(LCD_CLICKED || ( enc_dif != encoderDiff )){
|
||||||
|
longFilenameTMP = longFilename;
|
||||||
// inter = 1;
|
*(longFilenameTMP + LCD_WIDTH - 2) = '\0';
|
||||||
|
int i = 1;
|
||||||
|
int j = 0;
|
||||||
|
break;
|
||||||
}else{
|
}else{
|
||||||
delay(1);
|
if (j == 1) delay(3); //wait around 1.2 s to start scrolling text
|
||||||
|
delay(1); //then scroll with redrawing every 300 ms
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if(c!='\0'){
|
if(c!='\0'){
|
||||||
lcd.setCursor(i, row);
|
lcd.setCursor(i, row);
|
||||||
|
|
|
||||||
|
|
@ -416,4 +416,5 @@ THERMISTORS SETTINGS
|
||||||
#else
|
#else
|
||||||
#define DEFAULT_RETRACTION 1 //used for PINDA temp calibration and pause print
|
#define DEFAULT_RETRACTION 1 //used for PINDA temp calibration and pause print
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //__CONFIGURATION_PRUSA_H
|
#endif //__CONFIGURATION_PRUSA_H
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue