diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 2364fb474..11d98e337 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -59,6 +59,12 @@ #define EEPROM_BED_CORRECTION_REAR_RIGHT (EEPROM_BED_CORRECTION_FRONT_RIGHT - 1) #define EEPROM_BED_CORRECTION_REAR_LEFT (EEPROM_BED_CORRECTION_REAR_RIGHT - 1) +// FILAMENT_RUNOUT_SENSOR +#define EEPROM_FIL_RUNOUT_ACTIVE (EEPROM_BED_CORRECTION_REAR_RIGHT - 1) //0 - filament runout sensor disabled; 1 - .. activated +#define EEPROM_FIL_RUNOUT_INVERTING (EEPROM_FIL_RUNOUT_ACTIVE - 1) //0 - filament runout sensor inverted; 1 - .. normal +#define EEPROM_ENDSTOPPULLUP_FIL_RUNOUT (EEPROM_FIL_RUNOUT_INVERTING - 1) //0 - filament runout sensor pullup; 0 - .. normal +// end FILAMENT_RUNOUT_SENSOR + // Currently running firmware, each digit stored as uint16_t. // The flavor differentiates a dev, alpha, beta, release candidate or a release version. #define EEPROM_FIRMWARE_VERSION_END (FW_PRUSA3D_MAGIC_LEN+8) @@ -89,7 +95,7 @@ #define SERIAL_PORT 0 // This determines the communication speed of the printer -#define BAUDRATE 115200 +#define BAUDRATE 250000 // This enables the serial port associated to the Bluetooth interface //#define BTENABLED // Enable BT interface on AT90USB devices @@ -706,7 +712,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of * Note may require analog pins to be defined for different motherboards **********************************************************************/ // Uncomment below to enable -//#define FILAMENT_SENSOR +#define FILAMENT_SENSOR #define FILAMENT_SENSOR_EXTRUDER_NUM 0 //The number of the extruder that has the filament sensor (0,1,2) #define MEASUREMENT_DELAY_CM 14 //measurement delay in cm. This is the distance from filament sensor to middle of barrel diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 76274b292..733784698 100644 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -294,6 +294,11 @@ extern int bowden_length[4]; extern bool is_usb_printing; extern bool homing_flag; extern bool temp_cal_active; +// FILAMENT_RUNOUT_SENSOR +extern bool fil_runout_active; +extern bool FIL_RUNOUT_INVERTING; +extern bool ENDSTOPPULLUP_FIL_RUNOUT; +// end FILAMENT_RUNOUT_SENSOR extern bool loading_flag; extern unsigned int usb_printing_counter; diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index f3fb139ee..f3925fefa 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -257,6 +257,13 @@ bool homing_flag = false; bool temp_cal_active = false; +// FILAMENT_RUNOUT_SENSOR +bool fil_runout_active = false; +bool FIL_RUNOUT_INVERTING = false; +bool fil_funout_inv = false; +bool ENDSTOPPULLUP_FIL_RUNOUT = false; +// end FILAMENT_RUNOUT_SENSOR + unsigned long kicktime = millis()+100000; unsigned int usb_printing_counter; @@ -1270,6 +1277,15 @@ void setup() for (int i = 0; i < 4; i++) EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]); #endif //DEBUG_DISABLE_STARTMSGS + +// FILAMENT_RUNOUT_SENSOR +#ifdef FILAMENT_RUNOUT_SENSOR + fil_runout_active = eeprom_read_byte((uint8_t*)EEPROM_FIL_RUNOUT_ACTIVE); + FIL_RUNOUT_INVERTING = eeprom_read_byte((uint8_t*)EEPROM_FIL_RUNOUT_INVERTING); + ENDSTOPPULLUP_FIL_RUNOUT = eeprom_read_byte((uint8_t*)EEPROM_ENDSTOPPULLUP_FIL_RUNOUT); +#endif + // end FILAMENT_RUNOUT_SENSOR + lcd_update_enable(true); // Store the currently running firmware into an eeprom, @@ -2302,8 +2318,13 @@ bool gcode_M45(bool onlyZ) { void process_commands() { - #ifdef FILAMENT_RUNOUT_SUPPORT - SET_INPUT(FR_SENS); + #ifdef FILAMENT_RUNOUT_SENSOR + SET_INPUT(FIL_RUNOUT_PIN); + if (ENDSTOPPULLUP_FIL_RUNOUT) { + pinMode(FIL_RUNOUT_PIN, INPUT_PULLUP); + } else { + pinMode(FIL_RUNOUT_PIN, INPUT); + } #endif #ifdef CMDBUFFER_DEBUG @@ -2433,7 +2454,7 @@ void process_commands() return; } else if (code_seen("SERIAL HIGH")) { MYSERIAL.println("SERIAL HIGH"); - MYSERIAL.begin(1152000); + MYSERIAL.begin(250000); return; } else if(code_seen("Beat")) { // Kick farm link timer @@ -2458,10 +2479,8 @@ void process_commands() case 1: // G1 if(Stopped == false) { - #ifdef FILAMENT_RUNOUT_SUPPORT - - if(READ(FR_SENS)){ - + #ifdef FILAMENT_RUNOUT_SENSOR + if((READ(FIL_RUNOUT_PIN) ^ FIL_RUNOUT_INVERTING == 0) && fil_runout_active) { feedmultiplyBckp=feedmultiply; float target[4]; float lastpos[4]; @@ -4822,7 +4841,28 @@ Sigma_Exit: } SERIAL_PROTOCOLLN(""); #endif - break; +// FILAMENT_RUNOUT_SENSOR +// #if fil_runout_active && defined(FIL_RUNOUT_PIN) && FIL_RUNOUT_PIN > -1 + #if defined(FIL_RUNOUT_PIN) && FIL_RUNOUT_PIN > -1 + if (fil_runout_active == true) { + SERIAL_PROTOCOLRPGM(MSG_FIL_RUNOUT_SETTINGS); + if(READ(FIL_RUNOUT_PIN)^FIL_RUNOUT_INVERTING){ + SERIAL_PROTOCOLRPGM(MSG_ENDSTOP_HIT); + }else{ + SERIAL_PROTOCOLRPGM(MSG_ENDSTOP_OPEN); + } + SERIAL_PROTOCOLLN(""); + } +//Debug +// SERIAL_PROTOCOL(fil_runout_active); +// SERIAL_PROTOCOL(FIL_RUNOUT_INVERTING); +// SERIAL_PROTOCOL(ENDSTOPPULLUP_FIL_RUNOUT); +// SERIAL_PROTOCOLLN(""); +//end Debug info + #endif +// end FILAMENT_RUNOUT_SENSOR + + break; //TODO: update for all axis, use for loop #ifdef BLINKM case 150: // M150 @@ -5270,7 +5310,7 @@ Sigma_Exit: { float temp = 150.0; int e=0; - int c=5; + int c=8; if (code_seen('E')) e=code_value(); if (e<0) temp=70; diff --git a/Firmware/language_all.cpp b/Firmware/language_all.cpp index 9cb02e13d..647d0ab05 100644 --- a/Firmware/language_all.cpp +++ b/Firmware/language_all.cpp @@ -549,7 +549,7 @@ const char * const MSG_CALIBRATE_E_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_CALIBRATE_E_DE }; -const char MSG_CALIBRATE_PINDA_EN[] PROGMEM = "Calibrate"; +const char MSG_CALIBRATE_PINDA_EN[] PROGMEM = "PINDA Temp. cal."; const char MSG_CALIBRATE_PINDA_CZ[] PROGMEM = "Zkalibrovat"; const char MSG_CALIBRATE_PINDA_IT[] PROGMEM = "Calibrare"; const char MSG_CALIBRATE_PINDA_ES[] PROGMEM = "Calibrar"; @@ -564,7 +564,7 @@ const char * const MSG_CALIBRATE_PINDA_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_CALIBRATE_PINDA_DE }; -const char MSG_CALIBRATION_PINDA_MENU_EN[] PROGMEM = "Temp. calibration"; +const char MSG_CALIBRATION_PINDA_MENU_EN[] PROGMEM = "PINDA Temp. cal."; const char MSG_CALIBRATION_PINDA_MENU_CZ[] PROGMEM = "Teplot. kalibrace"; const char MSG_CALIBRATION_PINDA_MENU_IT[] PROGMEM = "Taratura temp."; const char MSG_CALIBRATION_PINDA_MENU_ES[] PROGMEM = "Calibracion temp."; @@ -848,6 +848,16 @@ const char * const MSG_DWELL_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_DWELL_DE }; +const char MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF_EN[] PROGMEM = "FR Pullup [OFF]"; +const char * const MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF_LANG_TABLE[1] PROGMEM = { + MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF_EN +}; + +const char MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON_EN[] PROGMEM = "FR Pullup [ON]"; +const char * const MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON_LANG_TABLE[1] PROGMEM = { + MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON_EN +}; + const char MSG_ENDSTOPS_HIT_EN[] PROGMEM = "endstops hit: "; const char * const MSG_ENDSTOPS_HIT_LANG_TABLE[1] PROGMEM = { MSG_ENDSTOPS_HIT_EN @@ -1152,6 +1162,19 @@ const char * const MSG_FILE_INCOMPLETE_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_FILE_INCOMPLETE_EN, MSG_FILE_INCOMPLETE_EN, MSG_FILE_INCOMPLETE_DE +const char MSG_FILAMENT_RUNOUT_SUPPORT_EN[] PROGMEM = "Fil.Runout S"; +const char * const MSG_FILAMENT_RUNOUT_SUPPORT_LANG_TABLE[1] PROGMEM = { + MSG_FILAMENT_RUNOUT_SUPPORT_EN +}; + +const char MSG_FILAMENT_RUNOUT_SUPPORT_HIT_EN[] PROGMEM = "Filament detected"; +const char * const MSG_FILAMENT_RUNOUT_SUPPORT_HIT_LANG_TABLE[1] PROGMEM = { + MSG_FILAMENT_RUNOUT_SUPPORT_HIT_EN +}; + +const char MSG_FILAMENT_RUNOUT_SUPPORT_OPEN_EN[] PROGMEM = "Filament runout"; +const char * const MSG_FILAMENT_RUNOUT_SUPPORT_OPEN_LANG_TABLE[1] PROGMEM = { + MSG_FILAMENT_RUNOUT_SUPPORT_OPEN_EN }; const char MSG_FILE_PRINTED_EN[] PROGMEM = "Done printing file"; @@ -1179,6 +1202,31 @@ const char * const MSG_FIL_ADJUSTING_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_FIL_ADJUSTING_DE }; +const char MSG_FIL_RUNOUT_ACTIVE_OFF_EN[] PROGMEM = "Sens Runout [OFF]"; +const char * const MSG_FIL_RUNOUT_ACTIVE_OFF_LANG_TABLE[1] PROGMEM = { + MSG_FIL_RUNOUT_ACTIVE_OFF_EN +}; + +const char MSG_FIL_RUNOUT_ACTIVE_ON_EN[] PROGMEM = "Sens Runout [ON]"; +const char * const MSG_FIL_RUNOUT_ACTIVE_ON_LANG_TABLE[1] PROGMEM = { + MSG_FIL_RUNOUT_ACTIVE_ON_EN +}; + +const char MSG_FIL_RUNOUT_INVERTING_OFF_EN[] PROGMEM = "FR_Sens[S to VCC]"; +const char * const MSG_FIL_RUNOUT_INVERTING_OFF_LANG_TABLE[1] PROGMEM = { + MSG_FIL_RUNOUT_INVERTING_OFF_EN +}; + +const char MSG_FIL_RUNOUT_INVERTING_ON_EN[] PROGMEM = "FR_Sens[S to GND]"; +const char * const MSG_FIL_RUNOUT_INVERTING_ON_LANG_TABLE[1] PROGMEM = { + MSG_FIL_RUNOUT_INVERTING_ON_EN +}; + +const char MSG_FIL_RUNOUT_SETTINGS_EN[] PROGMEM = "Filament Runout S"; +const char * const MSG_FIL_RUNOUT_SETTINGS_LANG_TABLE[1] PROGMEM = { + MSG_FIL_RUNOUT_SETTINGS_EN +}; + const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_EN[] PROGMEM = "Iteration "; const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_CZ[] PROGMEM = "Iterace "; const char MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_IT[] PROGMEM = "Reiterazione "; @@ -2080,6 +2128,39 @@ const char * const MSG_PICK_Z_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_PICK_Z_DE }; +const char MSG_PID_BED_EN[] PROGMEM = "PID bed cal. "; +const char MSG_PID_BED_DE[] PROGMEM = "PID Bett Kalibrier. "; +const char * const MSG_PID_BED_LANG_TABLE[LANG_NUM] PROGMEM = { + MSG_PID_BED_EN, + MSG_PID_BED_EN, + MSG_PID_BED_EN, + MSG_PID_BED_EN, + MSG_PID_BED_EN, + MSG_PID_BED_DE +}; + +const char MSG_PID_BED_FINISHED_EN[] PROGMEM = "PID bed cal. done "; +const char MSG_PID_BED_FINISHED_DE[] PROGMEM = "PID Bett Kal. fertig"; +const char * const MSG_PID_BED_FINISHED_LANG_TABLE[LANG_NUM] PROGMEM = { + MSG_PID_BED_FINISHED_EN, + MSG_PID_BED_FINISHED_EN, + MSG_PID_BED_FINISHED_EN, + MSG_PID_BED_FINISHED_EN, + MSG_PID_BED_FINISHED_EN, + MSG_PID_BED_FINISHED_DE +}; + +const char MSG_PID_BED_RUNNING_EN[] PROGMEM = "PID bed cal. "; +const char MSG_PID_BED_RUNNING_DE[] PROGMEM = "PID Bett Kal."; +const char * const MSG_PID_BED_RUNNING_LANG_TABLE[LANG_NUM] PROGMEM = { + MSG_PID_BED_RUNNING_EN, + MSG_PID_BED_RUNNING_EN, + MSG_PID_BED_RUNNING_EN, + MSG_PID_BED_RUNNING_EN, + MSG_PID_BED_RUNNING_EN, + MSG_PID_BED_RUNNING_DE +}; + const char MSG_PID_EXTRUDER_EN[] PROGMEM = "PID calibration"; const char MSG_PID_EXTRUDER_CZ[] PROGMEM = "PID kalibrace"; const char MSG_PID_EXTRUDER_IT[] PROGMEM = "Calibrazione PID"; @@ -2095,7 +2176,7 @@ const char * const MSG_PID_EXTRUDER_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_PID_EXTRUDER_DE }; -const char MSG_PID_FINISHED_EN[] PROGMEM = "PID cal. finished"; +const char MSG_PID_FINISHED_EN[] PROGMEM = "PID cal. finished "; const char MSG_PID_FINISHED_CZ[] PROGMEM = "PID kal. ukoncena"; const char MSG_PID_FINISHED_IT[] PROGMEM = "Cal. PID completa"; const char MSG_PID_FINISHED_ES[] PROGMEM = "Cal. PID terminada"; @@ -2125,7 +2206,7 @@ const char * const MSG_PID_RUNNING_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_PID_RUNNING_DE }; -const char MSG_PINDA_NOT_CALIBRATED_EN[] PROGMEM = "Temperature calibration has not been run yet"; +const char MSG_PINDA_NOT_CALIBRATED_EN[] PROGMEM = "PINDA temperature calibration has not been run yet"; const char MSG_PINDA_NOT_CALIBRATED_CZ[] PROGMEM = "Tiskarna nebyla teplotne zkalibrovana"; const char MSG_PINDA_NOT_CALIBRATED_IT[] PROGMEM = "Taratura della temperatura non ancora eseguita"; const char MSG_PINDA_NOT_CALIBRATED_ES[] PROGMEM = "La temperatura de calibracion no ha sido ajustada"; @@ -3285,7 +3366,7 @@ const char * const MSG_TEMPERATURE_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_TEMPERATURE_DE }; -const char MSG_TEMP_CALIBRATION_EN[] PROGMEM = "Temp. cal. "; +const char MSG_TEMP_CALIBRATION_EN[] PROGMEM = "PINDA Temp.cal. "; const char MSG_TEMP_CALIBRATION_CZ[] PROGMEM = "Tepl. kal. "; const char MSG_TEMP_CALIBRATION_IT[] PROGMEM = "Cal. temp. "; const char MSG_TEMP_CALIBRATION_ES[] PROGMEM = "Cal. temp. "; @@ -3300,7 +3381,7 @@ const char * const MSG_TEMP_CALIBRATION_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_TEMP_CALIBRATION_DE }; -const char MSG_TEMP_CALIBRATION_DONE_EN[] PROGMEM = "Temperature calibration is finished. Click to continue."; +const char MSG_TEMP_CALIBRATION_DONE_EN[] PROGMEM = "PINDA temperature calibration is finished. Click to continue."; const char MSG_TEMP_CALIBRATION_DONE_CZ[] PROGMEM = "Teplotni kalibrace dokoncena. Pokracujte stiskem tlacitka."; const char MSG_TEMP_CALIBRATION_DONE_IT[] PROGMEM = "Taratura temperatura terminata. Fare click per continuare."; const char MSG_TEMP_CALIBRATION_DONE_ES[] PROGMEM = "Calibracon temperatura terminada. Presionar para continuar."; @@ -3315,7 +3396,7 @@ const char * const MSG_TEMP_CALIBRATION_DONE_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_TEMP_CALIBRATION_DONE_DE }; -const char MSG_TEMP_CALIBRATION_OFF_EN[] PROGMEM = "Temp. cal. [OFF]"; +const char MSG_TEMP_CALIBRATION_OFF_EN[] PROGMEM = "PINDA T.cal.[OFF]"; const char MSG_TEMP_CALIBRATION_OFF_CZ[] PROGMEM = "Tepl. kal. [OFF]"; const char MSG_TEMP_CALIBRATION_OFF_IT[] PROGMEM = "Cal. temp. [OFF]"; const char MSG_TEMP_CALIBRATION_OFF_ES[] PROGMEM = "Cal. temp. [OFF]"; @@ -3330,7 +3411,7 @@ const char * const MSG_TEMP_CALIBRATION_OFF_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_TEMP_CALIBRATION_OFF_DE }; -const char MSG_TEMP_CALIBRATION_ON_EN[] PROGMEM = "Temp. cal. [ON]"; +const char MSG_TEMP_CALIBRATION_ON_EN[] PROGMEM = "PINDA T.cal. [ON]"; const char MSG_TEMP_CALIBRATION_ON_CZ[] PROGMEM = "Tepl. kal. [ON]"; const char MSG_TEMP_CALIBRATION_ON_IT[] PROGMEM = "Cal. temp. [ON]"; const char MSG_TEMP_CALIBRATION_ON_ES[] PROGMEM = "Cal. temp. [ON]"; diff --git a/Firmware/language_all.h b/Firmware/language_all.h index d27603675..80ec894f4 100644 --- a/Firmware/language_all.h +++ b/Firmware/language_all.h @@ -166,6 +166,10 @@ extern const char* const MSG_DISABLE_STEPPERS_LANG_TABLE[LANG_NUM]; #define MSG_DISABLE_STEPPERS LANG_TABLE_SELECT(MSG_DISABLE_STEPPERS_LANG_TABLE) extern const char* const MSG_DWELL_LANG_TABLE[LANG_NUM]; #define MSG_DWELL LANG_TABLE_SELECT(MSG_DWELL_LANG_TABLE) +extern const char* const MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF_LANG_TABLE[1]; +#define MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF_LANG_TABLE, 0) +extern const char* const MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON_LANG_TABLE[1]; +#define MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON LANG_TABLE_SELECT_EXPLICIT(MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON_LANG_TABLE, 0) extern const char* const MSG_ENDSTOPS_HIT_LANG_TABLE[1]; #define MSG_ENDSTOPS_HIT LANG_TABLE_SELECT_EXPLICIT(MSG_ENDSTOPS_HIT_LANG_TABLE, 0) extern const char* const MSG_ENDSTOP_HIT_LANG_TABLE[1]; @@ -232,12 +236,28 @@ extern const char* const MSG_FILE_CNT_LANG_TABLE[LANG_NUM]; #define MSG_FILE_CNT LANG_TABLE_SELECT(MSG_FILE_CNT_LANG_TABLE) extern const char* const MSG_FILE_INCOMPLETE_LANG_TABLE[LANG_NUM]; #define MSG_FILE_INCOMPLETE LANG_TABLE_SELECT(MSG_FILE_INCOMPLETE_LANG_TABLE) +extern const char* const MSG_FILAMENT_RUNOUT_SUPPORT_LANG_TABLE[1]; +#define MSG_FILAMENT_RUNOUT_SUPPORT LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_RUNOUT_SUPPORT_LANG_TABLE, 0) +extern const char* const MSG_FILAMENT_RUNOUT_SUPPORT_HIT_LANG_TABLE[1]; +#define MSG_FILAMENT_RUNOUT_SUPPORT_HIT LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_RUNOUT_SUPPORT_HIT_LANG_TABLE, 0) +extern const char* const MSG_FILAMENT_RUNOUT_SUPPORT_OPEN_LANG_TABLE[1]; +#define MSG_FILAMENT_RUNOUT_SUPPORT_OPEN LANG_TABLE_SELECT_EXPLICIT(MSG_FILAMENT_RUNOUT_SUPPORT_OPEN_LANG_TABLE, 0) extern const char* const MSG_FILE_PRINTED_LANG_TABLE[1]; #define MSG_FILE_PRINTED LANG_TABLE_SELECT_EXPLICIT(MSG_FILE_PRINTED_LANG_TABLE, 0) extern const char* const MSG_FILE_SAVED_LANG_TABLE[1]; #define MSG_FILE_SAVED LANG_TABLE_SELECT_EXPLICIT(MSG_FILE_SAVED_LANG_TABLE, 0) extern const char* const MSG_FIL_ADJUSTING_LANG_TABLE[LANG_NUM]; #define MSG_FIL_ADJUSTING LANG_TABLE_SELECT(MSG_FIL_ADJUSTING_LANG_TABLE) +extern const char* const MSG_FIL_RUNOUT_ACTIVE_OFF_LANG_TABLE[1]; +#define MSG_FIL_RUNOUT_ACTIVE_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_FIL_RUNOUT_ACTIVE_OFF_LANG_TABLE, 0) +extern const char* const MSG_FIL_RUNOUT_ACTIVE_ON_LANG_TABLE[1]; +#define MSG_FIL_RUNOUT_ACTIVE_ON LANG_TABLE_SELECT_EXPLICIT(MSG_FIL_RUNOUT_ACTIVE_ON_LANG_TABLE, 0) +extern const char* const MSG_FIL_RUNOUT_INVERTING_OFF_LANG_TABLE[1]; +#define MSG_FIL_RUNOUT_INVERTING_OFF LANG_TABLE_SELECT_EXPLICIT(MSG_FIL_RUNOUT_INVERTING_OFF_LANG_TABLE, 0) +extern const char* const MSG_FIL_RUNOUT_INVERTING_ON_LANG_TABLE[1]; +#define MSG_FIL_RUNOUT_INVERTING_ON LANG_TABLE_SELECT_EXPLICIT(MSG_FIL_RUNOUT_INVERTING_ON_LANG_TABLE, 0) +extern const char* const MSG_FIL_RUNOUT_SETTINGS_LANG_TABLE[1]; +#define MSG_FIL_RUNOUT_SETTINGS LANG_TABLE_SELECT_EXPLICIT(MSG_FIL_RUNOUT_SETTINGS_LANG_TABLE, 0) extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE[LANG_NUM]; #define MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION LANG_TABLE_SELECT(MSG_FIND_BED_OFFSET_AND_SKEW_ITERATION_LANG_TABLE) extern const char* const MSG_FIND_BED_OFFSET_AND_SKEW_LINE1_LANG_TABLE[LANG_NUM]; @@ -398,6 +418,12 @@ extern const char* const MSG_PAUSE_PRINT_LANG_TABLE[LANG_NUM]; #define MSG_PAUSE_PRINT LANG_TABLE_SELECT(MSG_PAUSE_PRINT_LANG_TABLE) extern const char* const MSG_PICK_Z_LANG_TABLE[LANG_NUM]; #define MSG_PICK_Z LANG_TABLE_SELECT(MSG_PICK_Z_LANG_TABLE) +extern const char* const MSG_PID_BED_LANG_TABLE[LANG_NUM]; +#define MSG_PID_BED LANG_TABLE_SELECT(MSG_PID_BED_LANG_TABLE) +extern const char* const MSG_PID_BED_FINISHED_LANG_TABLE[LANG_NUM]; +#define MSG_PID_BED_FINISHED LANG_TABLE_SELECT(MSG_PID_BED_FINISHED_LANG_TABLE) +extern const char* const MSG_PID_BED_RUNNING_LANG_TABLE[LANG_NUM]; +#define MSG_PID_BED_RUNNING LANG_TABLE_SELECT(MSG_PID_BED_RUNNING_LANG_TABLE) extern const char* const MSG_PID_EXTRUDER_LANG_TABLE[LANG_NUM]; #define MSG_PID_EXTRUDER LANG_TABLE_SELECT(MSG_PID_EXTRUDER_LANG_TABLE) extern const char* const MSG_PID_FINISHED_LANG_TABLE[LANG_NUM]; diff --git a/Firmware/language_de.h b/Firmware/language_de.h index db7d2e576..eaeb3f5f4 100644 --- a/Firmware/language_de.h +++ b/Firmware/language_de.h @@ -216,10 +216,14 @@ #define MSG_SET_TEMPERATURE "Temp. einsetzen" #define MSG_PID_FINISHED "PID Kalib. fertig" #define MSG_PID_RUNNING "PID Kalib." - +#define(length=20, lines=1) MSG_PID_BED "PID Bett Kalibrier. " +#define(length=20, lines=1) MSG_PID_BED_FINISHED "PID Bett Kal. fertig" +#define(length=20, lines=1) MSG_PID_BED_RUNNING "PID Bett Kal." #define MSG_CONFIRM_NOZZLE_CLEAN "Bitte reinigen Sie die Duese vor Kalibrierung. Klicken wenn sauber." #define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Sind beide Z Schlitten ganz oben?" +#define MSG_CONFIRM_NOZZLE_CLEAN "Bitte reinigen Sie die Duese vor Kalibrierung. Klicken wenn sauber." +#define MSG_CONFIRM_CARRIAGE_AT_THE_TOP "Sind beide Z Schlitten ganz oben?" #define MSG_FIND_BED_OFFSET_AND_SKEW_LINE1 "Suche Bett Kalibrierpunkt" #define MSG_FIND_BED_OFFSET_AND_SKEW_LINE2 " von 4" #define MSG_IMPROVE_BED_OFFSET_AND_SKEW_LINE1 "Genauigkeit verbessern bei Kalibrierpunkt" @@ -365,4 +369,4 @@ #define MSG_WIZARD_INSERT_CORRECT_FILAMENT "Bitte lade PLA Filament und starte den Drucker neu um den Assistenten fortzusetzen." #define MSG_PLA_FILAMENT_LOADED "Ist PLA Filament geladen?" #define MSG_PLEASE_LOAD_PLA "Bitte lade erst PLA filament." -#define MSG_FILE_CNT "Einige Dateien werden nicht sortiert, da das max. 100 Dateien pro Ordner ist." \ No newline at end of file +#define MSG_FILE_CNT "Einige Dateien werden nicht sortiert, da das max. 100 Dateien pro Ordner ist." diff --git a/Firmware/language_en.h b/Firmware/language_en.h index cd28e2a33..20bde0071 100644 --- a/Firmware/language_en.h +++ b/Firmware/language_en.h @@ -7,10 +7,10 @@ */ #define(length=20) WELCOME_MSG CUSTOM_MENDEL_NAME " ready." -#define MSG_SD_INSERTED "Card inserted" +#define(length=20) MSG_SD_INSERTED "Card inserted" #define MSG_SD_REMOVED "Card removed" #define MSG_MAIN "Main" -#define MSG_DISABLE_STEPPERS "Disable steppers" +#define(length=20) MSG_DISABLE_STEPPERS "Disable steppers" #define MSG_AUTO_HOME "Auto home" #define MSG_SET_HOME_OFFSETS "Set home offsets" #define MSG_SET_ORIGIN "Set origin" @@ -82,7 +82,6 @@ #define(length=17) MSG_UNLOAD_ALL "Unload all" #define(length=17) MSG_LOAD_ALL "Load all" - #define MSG_RECTRACT "Rectract" #define MSG_ERROR "ERROR:" #define(length=20) MSG_PREHEAT_NOZZLE "Preheat the nozzle!" @@ -135,6 +134,11 @@ #define MSG_M119_REPORT "Reporting endstop status" #define MSG_ENDSTOP_HIT "TRIGGERED" #define MSG_ENDSTOP_OPEN "open" +// FILAMENT_RUNOUT_SUPPORT +#define MSG_FILAMENT_RUNOUT_SUPPORT "Fil.Runout S" +#define MSG_FILAMENT_RUNOUT_SUPPORT_HIT "Filament detected" +#define MSG_FILAMENT_RUNOUT_SUPPORT_OPEN "Filament runout" +// end FILAMENT_RUNOUT_SUPPORT #define MSG_SD_CANT_OPEN_SUBDIR "Cannot open subdir" #define MSG_SD_INIT_FAIL "SD init fail" @@ -281,8 +285,8 @@ #define MSG_MESH_BED_LEVELING "Mesh Bed Leveling" #define MSG_MENU_CALIBRATION "Calibration" -#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=20, lines=1) MSG_TOSHIBA_FLASH_AIR_COMPATIBILITY_OFF "SD card [normal]" +#define(length=20, 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_FINISHING_MOVEMENTS "Finishing movements" #define(length=20, lines=1) MSG_PRINT_PAUSED "Print paused" @@ -291,15 +295,18 @@ #define(length=19, lines=1) MSG_SET_TEMPERATURE "Set temperature:" #define(length=20, lines=1) MSG_PID_FINISHED "PID cal. finished" #define(length=20, lines=1) MSG_PID_RUNNING "PID cal. " +#define(length=20, lines=1) MSG_PID_BED "PID bed cal. " +#define(length=20, lines=1) MSG_PID_BED_FINISHED "PID bed cal. done " +#define(length=20, lines=1) MSG_PID_BED_RUNNING "PID bed cal. " -#define(length=17, lines=1) MSG_CALIBRATE_PINDA "Calibrate" -#define(length=17, lines=1) MSG_CALIBRATION_PINDA_MENU "Temp. calibration" -#define(length=20, lines=4) MSG_PINDA_NOT_CALIBRATED "Temperature calibration has not been run yet" +#define(length=20, lines=1) MSG_CALIBRATE_PINDA "PINDA Temp. cal." +#define(length=20, lines=1) MSG_CALIBRATION_PINDA_MENU "PINDA Temp. cal." +#define(length=20, lines=4) MSG_PINDA_NOT_CALIBRATED "PINDA temperature calibration has not been run yet" #define(length=20, lines=1) MSG_PINDA_PREHEAT "PINDA Heating" -#define(length=20, lines=1) MSG_TEMP_CALIBRATION "Temp. cal. " -#define(length=20, lines=5) MSG_TEMP_CALIBRATION_DONE "Temperature calibration is finished. Click to continue." -#define(length=20, lines=1) MSG_TEMP_CALIBRATION_ON "Temp. cal. [ON]" -#define(length=20, lines=1) MSG_TEMP_CALIBRATION_OFF "Temp. cal. [OFF]" +#define(length=20, lines=1) MSG_TEMP_CALIBRATION "PINDA Temp.cal. " +#define(length=20, lines=5) MSG_TEMP_CALIBRATION_DONE "PINDA temperature calibration is finished. Click to continue." +#define(length=20, lines=1) MSG_TEMP_CALIBRATION_ON "PINDA T.cal. [ON]" +#define(length=20, lines=1) MSG_TEMP_CALIBRATION_OFF "PINDA T.cal.[OFF]" #define(length=20, lines=1) MSG_PREPARE_FILAMENT "Prepare new filament" #define(length=19, lines=1) MSG_ALL "All" #define(length=19, lines=1) MSG_USED "Used during print" @@ -350,3 +357,10 @@ #define(length=20, lines=2) MSG_PLA_FILAMENT_LOADED "Is PLA filament loaded?" #define(length=20, lines=2) MSG_PLEASE_LOAD_PLA "Please load PLA filament first." #define(length=20, lines=5) MSG_FILE_CNT "Some files will not be sorted. Max. No. of files in 1 folder for sorting is 100." +#define(length=20) MSG_FIL_RUNOUT_SETTINGS "Filament Runout S" +#define(length=20) MSG_FIL_RUNOUT_ACTIVE_ON "Sens Runout [ON]" +#define(length=20) MSG_FIL_RUNOUT_ACTIVE_OFF "Sens Runout [OFF]" +#define(length=20) MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON "FR Pullup [ON]" +#define(length=20) MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF "FR Pullup [OFF]" +#define(length=20) MSG_FIL_RUNOUT_INVERTING_OFF "FR_Sens[S to VCC]" +#define(length=20) MSG_FIL_RUNOUT_INVERTING_ON "FR_Sens[S to GND]" diff --git a/Firmware/pins.h b/Firmware/pins.h index cfd673397..d4b355caf 100644 --- a/Firmware/pins.h +++ b/Firmware/pins.h @@ -18,9 +18,9 @@ #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. #endif - - #define FR_SENS 21 - +// FILAMENT_RUNOUT_SUPPORT + #define FIL_RUNOUT_PIN 24 +// end FILAMENT_RUNOUT_SUPPORT #define X_STEP_PIN 37 #define X_DIR_PIN 48 @@ -29,6 +29,8 @@ #define X_MS2_PIN 41 #define Y_STEP_PIN 36 #define Y_DIR_PIN 49 + #define Y_MIN_PIN 11 + #define Y_MAX_PIN -1 #define Y_ENABLE_PIN 28 #define Y_MS1_PIN 69 #define Y_MS2_PIN 39 @@ -57,7 +59,7 @@ #define X_MIN_PIN 12 #define Y_MIN_PIN 11 #define Z_MIN_PIN 10 -#else +#els #define X_MIN_PIN -1 #define Y_MIN_PIN -1 #define Z_MIN_PIN -1 @@ -223,7 +225,9 @@ #error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. #endif - #define FR_SENS 21 +// FILAMENT_RUNOUT_SUPPORT + #define FIL_RUNOUT_PIN 24 +// end FILAMENT_RUNOUT_SUPPORT #ifdef SNMM @@ -240,6 +244,8 @@ #define X_MS2_PIN 41 #define Y_STEP_PIN 36 #define Y_DIR_PIN 49 + #define Y_MIN_PIN 11 + #define Y_MAX_PIN -1 #define Y_ENABLE_PIN 28 #define Y_MS1_PIN 69 #define Y_MS2_PIN 39 diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 9acdefe7e..3035d96d7 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -105,6 +105,14 @@ int8_t SDscrool = 0; int8_t SilentModeMenu = 0; +// FILAMENT_RUNOUT_SENSOR +#ifdef FILAMENT_RUNOUT_SENSOR +static void lcd_fil_runout_settings_menu(); +static void lcd_fil_runout_active_set(); +static void lcd_fil_runout_inverting_set(); +static void lcd_endstoppullup_fil_runout_set(); +#endif +// end FILAMENT_RUNOUT_SENSOR #ifdef SNMM uint8_t snmm_extruder = 0; #endif @@ -125,6 +133,7 @@ bool printer_connected = true; unsigned long display_time; //just timer for showing pid finished message on lcd; float pid_temp = DEFAULT_PID_TEMP; +float pid_bed_temp = DEFAULT_PID_BED_TEMP; bool long_press_active = false; long long_press_timer = millis(); @@ -1273,6 +1282,9 @@ void lcd_commands() #else lcd_commands_step = 5; #endif + #ifdef DEFAULT_PID_BED_TEMP + lcd_commands_step = lcd_commands_step+1; + #endif } } @@ -1317,7 +1329,49 @@ void lcd_commands() lcd_commands_type = 0; } } - +#ifdef DEFAULT_PID_BED_TEMP + if (lcd_commands_type == LCD_COMMAND_PID_BED) { + char cmd1[30]; + + if (lcd_commands_step == 0) { + custom_message_type = 3; + custom_message_state = 1; + custom_message = true; + lcdDrawUpdate = 3; + lcd_commands_step = 3; + } + if (lcd_commands_step == 3 && !blocks_queued()) { //PID calibration + strcpy(cmd1, "M303 E-1 S"); + strcat(cmd1, ftostr3(pid_bed_temp)); + enquecommand(cmd1); + lcd_setstatuspgm(MSG_PID_BED_RUNNING); + lcd_commands_step = 2; + } + if (lcd_commands_step == 2 && pid_tuning_finished) { //saving to eeprom + pid_tuning_finished = false; + custom_message_state = 0; + lcd_setstatuspgm(MSG_PID_BED_FINISHED); + strcpy(cmd1, "M304 P"); + strcat(cmd1, ftostr32(_Kp)); + strcat(cmd1, " I"); + strcat(cmd1, ftostr32(_Ki)); + strcat(cmd1, " D"); + strcat(cmd1, ftostr32(_Kd)); + enquecommand(cmd1); + enquecommand_P(PSTR("M500")); + display_time = millis(); + lcd_commands_step = 1; + } + if ((lcd_commands_step == 1) && ((millis()- display_time)>2000)) { //calibration finished message + lcd_setstatuspgm(WELCOME_MSG); + custom_message_type = 0; + custom_message = false; + pid_temp = DEFAULT_PID_BED_TEMP; + lcd_commands_step = 0; + lcd_commands_type = 0; + } + } +#endif } @@ -1430,8 +1484,8 @@ static void lcd_preheat_menu() MENU_ITEM(back, MSG_MAIN, lcd_main_menu); - MENU_ITEM(function, PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)), lcd_preheat_abs); MENU_ITEM(function, PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)), lcd_preheat_pla); + MENU_ITEM(function, PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)), lcd_preheat_abs); MENU_ITEM(function, PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)), lcd_preheat_pet); MENU_ITEM(function, PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)), lcd_preheat_hips); MENU_ITEM(function, PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)), lcd_preheat_pp); @@ -2186,6 +2240,26 @@ void pid_extruder() { } } +#ifdef DEFAULT_PID_BED_TEMP +void pid_bed() { + + lcd_implementation_clear(); + lcd.setCursor(1, 0); + lcd_printPGM(MSG_SET_TEMPERATURE); + pid_bed_temp += int(encoderPosition); + if (pid_bed_temp > BED_MAXTEMP) pid_bed_temp = BED_MAXTEMP; + if (pid_bed_temp < BED_MINTEMP) pid_bed_temp = BED_MINTEMP; + encoderPosition = 0; + lcd.setCursor(1, 2); + lcd.print(ftostr3(pid_bed_temp)); + if (lcd_clicked()) { + lcd_commands_type = LCD_COMMAND_PID_BED; + lcd_return_to_status(); + lcd_update(2); + } + +} +#endif void lcd_adjust_z() { int enc_dif = 0; @@ -2686,13 +2760,19 @@ void lcd_bed_calibration_show_result(BedSkewOffsetDetectionResultType result, ui static void lcd_show_end_stops() { lcd.setCursor(0, 0); - lcd_printPGM((PSTR("End stops diag"))); + lcd_printPGM((PSTR("End stops/sens diag"))); lcd.setCursor(0, 1); lcd_printPGM(((READ(X_MIN_PIN) ^ X_MIN_ENDSTOP_INVERTING) == 1) ? (PSTR("X1")) : (PSTR("X0"))); lcd.setCursor(0, 2); lcd_printPGM(((READ(Y_MIN_PIN) ^ Y_MIN_ENDSTOP_INVERTING) == 1) ? (PSTR("Y1")) : (PSTR("Y0"))); lcd.setCursor(0, 3); lcd_printPGM(((READ(Z_MIN_PIN) ^ Z_MIN_ENDSTOP_INVERTING) == 1) ? (PSTR("Z1")) : (PSTR("Z0"))); + // FILAMENT_RUNOUT_SENSOR + if (fil_runout_active) { + lcd.setCursor(4, 1); + lcd_printPGM(((READ(FIL_RUNOUT_PIN) ^ FIL_RUNOUT_INVERTING) == 1) ? (PSTR("FR_S1")) : (PSTR("FR_S0"))); + } + // end FILAMENT_RUNOUT_SENSOR } static void menu_show_end_stops() { @@ -3484,6 +3564,58 @@ void lcd_wizard(int state) { lcd_return_to_status(); lcd_update(2); } +// FR_FILAMENT_RUNOUT_SENSOR +void lcd_fil_runout_settings_menu() +{ + START_MENU(); + MENU_ITEM(back, MSG_SETTINGS, lcd_settings_menu); + // debug info + //lcd.setCursor(1, 5); + //lcd_printPGM((fil_runout_active == 1) ? (PSTR("S_ON ")) : (PSTR("S_OFF"))); + //lcd.setCursor(7, 5); + //lcd_printPGM((FIL_RUNOUT_INVERTING == 0) ? (PSTR("I_ON ")) : (PSTR("I_OFF"))); + //lcd.setCursor(13, 5); + //lcd_printPGM((ENDSTOPPULLUP_FIL_RUNOUT == 0) ? (PSTR("P_ON ")) : (PSTR("P_OFF"))); + // end debug info + if (fil_runout_active == false) { + MENU_ITEM(submenu, MSG_FIL_RUNOUT_ACTIVE_OFF, lcd_fil_runout_active_set); + } else { + MENU_ITEM(submenu, MSG_FIL_RUNOUT_ACTIVE_ON, lcd_fil_runout_active_set); + if (FIL_RUNOUT_INVERTING == false) { + MENU_ITEM(function, MSG_FIL_RUNOUT_INVERTING_OFF, lcd_fil_runout_inverting_set); + } else { + MENU_ITEM(function, MSG_FIL_RUNOUT_INVERTING_ON, lcd_fil_runout_inverting_set); + } + if (ENDSTOPPULLUP_FIL_RUNOUT == false ) { + MENU_ITEM(function, MSG_ENDSTOPPULLUP_FIL_RUNOUT_OFF, lcd_endstoppullup_fil_runout_set); + } else { + MENU_ITEM(function, MSG_ENDSTOPPULLUP_FIL_RUNOUT_ON, lcd_endstoppullup_fil_runout_set); + } + } + END_MENU(); +} + +void lcd_fil_runout_active_set() { + fil_runout_active = !fil_runout_active; + eeprom_update_byte((unsigned char *)EEPROM_FIL_RUNOUT_ACTIVE, fil_runout_active); + digipot_init(); + lcd_goto_menu(lcd_fil_runout_settings_menu, 1); + } + +void lcd_fil_runout_inverting_set() { + FIL_RUNOUT_INVERTING = !FIL_RUNOUT_INVERTING; + eeprom_update_byte((unsigned char *)EEPROM_FIL_RUNOUT_INVERTING, FIL_RUNOUT_INVERTING); + digipot_init(); + lcd_goto_menu(lcd_fil_runout_settings_menu, 2); + } + void lcd_endstoppullup_fil_runout_set() { + ENDSTOPPULLUP_FIL_RUNOUT = !ENDSTOPPULLUP_FIL_RUNOUT; + eeprom_update_byte((unsigned char *)EEPROM_ENDSTOPPULLUP_FIL_RUNOUT, ENDSTOPPULLUP_FIL_RUNOUT); + digipot_init(); + lcd_goto_menu(lcd_fil_runout_settings_menu, 3); + } + +// end FILAMENT_RUNOUT_SENSOR static void lcd_settings_menu() { @@ -3539,8 +3671,12 @@ static void lcd_settings_menu() MENU_ITEM(submenu, PSTR("Farm number"), lcd_farm_no); MENU_ITEM(function, PSTR("Disable farm mode"), lcd_disable_farm_mode); } - - END_MENU(); +// FILAMENT_RUNOUT_SENSOR +#ifdef FIL_RUNOUT_PIN + MENU_ITEM(submenu, MSG_FIL_RUNOUT_SETTINGS, lcd_fil_runout_settings_menu); +#endif +// end FILAMENT_RUNOUT_SENSOR + END_MENU(); } static void lcd_calibration_menu() @@ -3575,6 +3711,9 @@ static void lcd_calibration_menu() MENU_ITEM(submenu, MSG_CALIBRATION_PINDA_MENU, lcd_pinda_calibration_menu); #endif //MK1BP MENU_ITEM(submenu, MSG_PID_EXTRUDER, pid_extruder); +#ifdef DEFAULT_PID_BED_TEMP + MENU_ITEM(submenu, MSG_PID_BED, pid_bed); +#endif MENU_ITEM(submenu, MSG_SHOW_END_STOPS, menu_show_end_stops); #ifndef MK1BP MENU_ITEM(gcode, MSG_CALIBRATE_BED_RESET, PSTR("M44")); diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 511ba6ae1..a9832bd1b 100644 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -86,6 +86,9 @@ #define LCD_COMMAND_LONG_PAUSE_RESUME 6 #define LCD_COMMAND_PID_EXTRUDER 7 #define LCD_COMMAND_V2_CAL 8 +#ifdef DEFAULT_PID_BED_TEMP + #define LCD_COMMAND_PID_BED 9 +#endif extern unsigned long lcd_timeoutToStatus; extern int lcd_commands_type; diff --git a/Firmware/ultralcd_implementation_hitachi_HD44780.h b/Firmware/ultralcd_implementation_hitachi_HD44780.h index 9a28c6f2c..a7883b041 100644 --- a/Firmware/ultralcd_implementation_hitachi_HD44780.h +++ b/Firmware/ultralcd_implementation_hitachi_HD44780.h @@ -984,7 +984,7 @@ static void lcd_implementation_status_screen() if (custom_message_type == 3) { lcd.print(lcd_status_message); if (pid_cycle <= pid_number_of_cycles && custom_message_state > 0) { - lcd.setCursor(10, 3); + lcd.setCursor(15, 3); lcd.print(itostr3(pid_cycle)); lcd.print('/'); @@ -996,7 +996,7 @@ static void lcd_implementation_status_screen() char progress[4]; lcd.setCursor(0, 3); lcd_printPGM(MSG_TEMP_CALIBRATION); - lcd.setCursor(12, 3); + lcd.setCursor(15, 3); sprintf(progress, "%d/6", custom_message_state); lcd.print(progress); } diff --git a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h index 39b9ceace..2a588b43a 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h @@ -147,9 +147,9 @@ CHANGE FILAMENT SETTINGS // Filament change configuration #define FILAMENTCHANGEENABLE #ifdef FILAMENTCHANGEENABLE -#define FILAMENTCHANGE_XPOS 211 -#define FILAMENTCHANGE_YPOS 0 -#define FILAMENTCHANGE_ZADD 2 +#define FILAMENTCHANGE_XPOS 0 +#define FILAMENTCHANGE_YPOS -2.2 +#define FILAMENTCHANGE_ZADD 20 #define FILAMENTCHANGE_FIRSTRETRACT -2 #define FILAMENTCHANGE_FINALRETRACT -80 @@ -170,9 +170,11 @@ ADDITIONAL FEATURES SETTINGS *------------------------------------*/ // Define Prusa filament runout sensor -//#define FILAMENT_RUNOUT_SUPPORT +#define FILAMENT_RUNOUT_SENSOR +// end Define Prusa filament runout sensor -#ifdef FILAMENT_RUNOUT_SUPPORT + +#ifdef FILAMENT_RUNOUT_SENSOR #define FILAMENT_RUNOUT_SENSOR 1 #endif @@ -397,6 +399,7 @@ THERMISTORS SETTINGS #define BUTTON_BLANKING_TIME 200 //time in ms for blanking after button release #define DEFAULT_PID_TEMP 210 +#define DEFAULT_PID_BED_TEMP 55 #ifdef SNMM #define DEFAULT_RETRACTION 4 //used for PINDA temp calibration and pause print