uvlo initial version
This commit is contained in:
parent
43d696659f
commit
c4be651d2b
|
|
@ -47,6 +47,8 @@
|
||||||
#define EEPROM_TEMP_CAL_ACTIVE (EEPROM_PROBE_TEMP_SHIFT - 1)
|
#define EEPROM_TEMP_CAL_ACTIVE (EEPROM_PROBE_TEMP_SHIFT - 1)
|
||||||
#define EEPROM_BOWDEN_LENGTH (EEPROM_TEMP_CAL_ACTIVE - 2*4) //4 x int for bowden lengths for multimaterial
|
#define EEPROM_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_UVLO (EEPROM_CALIBRATION_STATUS_PINDA - 1) //1 - uvlo during print
|
||||||
|
#define EEPROM_UVLO_CURRENT_POSITION (EEPROM_UVLO-2*4) // 2 x float for current_position in X and Y axes
|
||||||
|
|
||||||
// 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.
|
||||||
|
|
|
||||||
|
|
@ -352,3 +352,7 @@ 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();
|
||||||
|
|
||||||
|
void uvlo();
|
||||||
|
void recover_print();
|
||||||
|
#define UVLO !(PINE & (1<<4))
|
||||||
|
|
@ -1197,6 +1197,9 @@ void setup()
|
||||||
if (eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA) == 255) {
|
if (eeprom_read_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA) == 255) {
|
||||||
eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0);
|
eeprom_write_byte((uint8_t*)EEPROM_CALIBRATION_STATUS_PINDA, 0);
|
||||||
}
|
}
|
||||||
|
if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 255) {
|
||||||
|
eeprom_write_byte((uint8_t*)EEPROM_UVLO, 0);
|
||||||
|
}
|
||||||
|
|
||||||
check_babystep(); //checking if Z babystep is in allowed range
|
check_babystep(); //checking if Z babystep is in allowed range
|
||||||
|
|
||||||
|
|
@ -1217,12 +1220,18 @@ void setup()
|
||||||
// Show the message.
|
// Show the message.
|
||||||
lcd_show_fullscreen_message_and_wait_P(MSG_FOLLOW_CALIBRATION_FLOW);
|
lcd_show_fullscreen_message_and_wait_P(MSG_FOLLOW_CALIBRATION_FLOW);
|
||||||
}
|
}
|
||||||
|
if (eeprom_read_byte((uint8_t*)EEPROM_UVLO) == 1) { //previous print was terminated by UVLO
|
||||||
|
if (lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_RECOVER_PRINT)) recover_print();
|
||||||
|
}
|
||||||
|
|
||||||
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]);
|
||||||
lcd_update_enable(true);
|
lcd_update_enable(true);
|
||||||
|
|
||||||
// Store the currently running firmware into an eeprom,
|
// Store the currently running firmware into an eeprom,
|
||||||
// so the next time the firmware gets updated, it will know from which version it has been updated.
|
// so the next time the firmware gets updated, it will know from which version it has been updated.
|
||||||
update_current_firmware_version_to_eeprom();
|
update_current_firmware_version_to_eeprom();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void trace();
|
void trace();
|
||||||
|
|
@ -6619,3 +6628,41 @@ void serialecho_temperatures() {
|
||||||
SERIAL_PROTOCOL_F(degBed(), 1);
|
SERIAL_PROTOCOL_F(degBed(), 1);
|
||||||
SERIAL_PROTOCOLLN("");
|
SERIAL_PROTOCOLLN("");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void uvlo() {
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO, 1);
|
||||||
|
eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 0), current_position[X_AXIS]);
|
||||||
|
eeprom_update_float((float*)(EEPROM_UVLO_CURRENT_POSITION + 4), current_position[Y_AXIS]);
|
||||||
|
//current_position[Z_AXIS] += 3;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
st_synchronize();
|
||||||
|
while (1);*/
|
||||||
|
//WRITE(BEEPER, HIGH);
|
||||||
|
|
||||||
|
/*while (1) {
|
||||||
|
//first turn off heatbed
|
||||||
|
//DDRG |= (1 << DDG5); //set as output
|
||||||
|
PORTG &= ~(1 << 5); //set output low
|
||||||
|
//turn off nozzle
|
||||||
|
//DDRE |= (1 << DDE5);
|
||||||
|
PORTE &= ~(1 << 5);
|
||||||
|
WRITE(BEEPER, HIGH);
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
void recover_print() {
|
||||||
|
homeaxis(X_AXIS);
|
||||||
|
homeaxis(Y_AXIS);
|
||||||
|
current_position[X_AXIS] = eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 0));
|
||||||
|
current_position[Y_AXIS] = eeprom_read_float((float*)(EEPROM_BED_CALIBRATION_CENTER + 4));
|
||||||
|
plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], homing_feedrate[X_AXIS], active_extruder);
|
||||||
|
st_synchronize();
|
||||||
|
eeprom_update_byte((uint8_t*)EEPROM_UVLO, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2203,6 +2203,11 @@ const char * const MSG_REBOOT_LANG_TABLE[LANG_NUM] PROGMEM = {
|
||||||
MSG_REBOOT_DE
|
MSG_REBOOT_DE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const char MSG_RECOVER_PRINT_EN[] PROGMEM = "Blackout occured. Recover print?";
|
||||||
|
const char * const MSG_RECOVER_PRINT_LANG_TABLE[1] PROGMEM = {
|
||||||
|
MSG_RECOVER_PRINT_EN
|
||||||
|
};
|
||||||
|
|
||||||
const char MSG_RECTRACT_EN[] PROGMEM = "Rectract";
|
const char MSG_RECTRACT_EN[] PROGMEM = "Rectract";
|
||||||
const char * const MSG_RECTRACT_LANG_TABLE[1] PROGMEM = {
|
const char * const MSG_RECTRACT_LANG_TABLE[1] PROGMEM = {
|
||||||
MSG_RECTRACT_EN
|
MSG_RECTRACT_EN
|
||||||
|
|
|
||||||
|
|
@ -414,6 +414,8 @@ extern const char* const MSG_PRUSA3D_HOWTO_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_PRUSA3D_HOWTO LANG_TABLE_SELECT(MSG_PRUSA3D_HOWTO_LANG_TABLE)
|
#define MSG_PRUSA3D_HOWTO LANG_TABLE_SELECT(MSG_PRUSA3D_HOWTO_LANG_TABLE)
|
||||||
extern const char* const MSG_REBOOT_LANG_TABLE[LANG_NUM];
|
extern const char* const MSG_REBOOT_LANG_TABLE[LANG_NUM];
|
||||||
#define MSG_REBOOT LANG_TABLE_SELECT(MSG_REBOOT_LANG_TABLE)
|
#define MSG_REBOOT LANG_TABLE_SELECT(MSG_REBOOT_LANG_TABLE)
|
||||||
|
extern const char* const MSG_RECOVER_PRINT_LANG_TABLE[1];
|
||||||
|
#define MSG_RECOVER_PRINT LANG_TABLE_SELECT_EXPLICIT(MSG_RECOVER_PRINT_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_RECTRACT_LANG_TABLE[1];
|
extern const char* const MSG_RECTRACT_LANG_TABLE[1];
|
||||||
#define MSG_RECTRACT LANG_TABLE_SELECT_EXPLICIT(MSG_RECTRACT_LANG_TABLE, 0)
|
#define MSG_RECTRACT LANG_TABLE_SELECT_EXPLICIT(MSG_RECTRACT_LANG_TABLE, 0)
|
||||||
extern const char* const MSG_REFRESH_LANG_TABLE[1];
|
extern const char* const MSG_REFRESH_LANG_TABLE[1];
|
||||||
|
|
|
||||||
|
|
@ -302,4 +302,4 @@
|
||||||
#define(length=17, lines=1) MSG_EXTRUDER_2 "Extruder 2"
|
#define(length=17, lines=1) MSG_EXTRUDER_2 "Extruder 2"
|
||||||
#define(length=17, lines=1) MSG_EXTRUDER_3 "Extruder 3"
|
#define(length=17, lines=1) MSG_EXTRUDER_3 "Extruder 3"
|
||||||
#define(length=17, lines=1) MSG_EXTRUDER_4 "Extruder 4"
|
#define(length=17, lines=1) MSG_EXTRUDER_4 "Extruder 4"
|
||||||
|
#define(length=20, lines=2) MSG_RECOVER_PRINT "Blackout occured. Recover print?"
|
||||||
|
|
|
||||||
|
|
@ -399,8 +399,9 @@
|
||||||
|
|
||||||
#define BEEPER 84 // Beeper on AUX-4
|
#define BEEPER 84 // Beeper on AUX-4
|
||||||
#define LCD_PINS_RS 82
|
#define LCD_PINS_RS 82
|
||||||
#define LCD_PINS_ENABLE 18
|
|
||||||
#define LCD_PINS_D4 19
|
#define LCD_PINS_ENABLE 61
|
||||||
|
#define LCD_PINS_D4 59
|
||||||
#define LCD_PINS_D5 70
|
#define LCD_PINS_D5 70
|
||||||
#define LCD_PINS_D6 85
|
#define LCD_PINS_D6 85
|
||||||
#define LCD_PINS_D7 71
|
#define LCD_PINS_D7 71
|
||||||
|
|
@ -412,7 +413,7 @@
|
||||||
|
|
||||||
#define SDCARDDETECT 15
|
#define SDCARDDETECT 15
|
||||||
|
|
||||||
#define TACH_0 81
|
#define TACH_0 79
|
||||||
#define TACH_1 80
|
#define TACH_1 80
|
||||||
|
|
||||||
#endif //NEWPANEL
|
#endif //NEWPANEL
|
||||||
|
|
|
||||||
|
|
@ -333,6 +333,7 @@ FORCE_INLINE void trapezoid_generator_reset() {
|
||||||
// It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately.
|
// It pops blocks from the block_buffer and executes them by pulsing the stepper pins appropriately.
|
||||||
ISR(TIMER1_COMPA_vect)
|
ISR(TIMER1_COMPA_vect)
|
||||||
{
|
{
|
||||||
|
if (UVLO) uvlo();
|
||||||
// If there is no current block, attempt to pop one from the buffer
|
// If there is no current block, attempt to pop one from the buffer
|
||||||
if (current_block == NULL) {
|
if (current_block == NULL) {
|
||||||
// Anything in the buffer?
|
// Anything in the buffer?
|
||||||
|
|
|
||||||
|
|
@ -407,6 +407,9 @@ void setExtruderAutoFanState(int pin, bool state)
|
||||||
|
|
||||||
void countFanSpeed()
|
void countFanSpeed()
|
||||||
{
|
{
|
||||||
|
SERIAL_ECHOPGM("UVLO:");
|
||||||
|
MYSERIAL.println(UVLO);
|
||||||
|
|
||||||
fan_speed[0] = (fan_edge_counter[0] * (float(250) / (millis() - extruder_autofan_last_check)));
|
fan_speed[0] = (fan_edge_counter[0] * (float(250) / (millis() - extruder_autofan_last_check)));
|
||||||
fan_speed[1] = (fan_edge_counter[1] * (float(250) / (millis() - extruder_autofan_last_check)));
|
fan_speed[1] = (fan_edge_counter[1] * (float(250) / (millis() - extruder_autofan_last_check)));
|
||||||
|
|
||||||
|
|
@ -1456,6 +1459,7 @@ int read_max6675()
|
||||||
// Timer 0 is shared with millies
|
// Timer 0 is shared with millies
|
||||||
ISR(TIMER0_COMPB_vect)
|
ISR(TIMER0_COMPB_vect)
|
||||||
{
|
{
|
||||||
|
if (UVLO) uvlo();
|
||||||
//these variables are only accesible from the ISR, but static, so they don't lose their value
|
//these variables are only accesible from the ISR, but static, so they don't lose their value
|
||||||
static unsigned char temp_count = 0;
|
static unsigned char temp_count = 0;
|
||||||
static unsigned long raw_temp_0_value = 0;
|
static unsigned long raw_temp_0_value = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue