The following situation is now fixed, steps:
1. Load filament through LCD
2. Load to nozzle through LCD
3. Before filament reaches Fsensor => turn off the printer
4. Wait a few seconds and then turn the printer on again
5. Start a print through the SD card
6. Printer will unload and then re-load the filament

Previously in step 6, the printer would start a print without any
filament loaded.
This commit is contained in:
Guðni Már Gilbert 2022-06-11 08:27:39 +00:00 committed by D.R.racer
parent 46184a9447
commit 204b43dce4
2 changed files with 22 additions and 14 deletions

View File

@ -5448,24 +5448,32 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF);
### M24 - Start SD print <a href="https://reprap.org/wiki/G-code#M24:_Start.2Fresume_SD_print">M24: Start/resume SD print</a>
*/
case 24:
if (isPrintPaused)
lcd_resume_print();
else
if (isPrintPaused)
lcd_resume_print();
else
{
if (!card.get_sdpos())
{
if (!card.get_sdpos())
{
// A new print has started from scratch, reset stats
failstats_reset_print();
sdpos_atomic = 0;
#ifndef LA_NOCOMPAT
la10c_reset();
la10c_reset();
#endif
}
card.startFileprint();
starttime=_millis();
}
break;
card.startFileprint();
starttime=_millis();
if (MMU2::mmu2.Enabled())
{
if (MMU2::mmu2.FindaDetectsFilament() && !fsensor.getFilamentPresent())
{ // Filament only half way into the PTFE. Unload the filament.
MMU2::mmu2.unload();
// Tx and Tc gcodes take care of loading the filament to the nozzle.
}
}
}
break;
/*!
### M26 - Set SD index <a href="https://reprap.org/wiki/G-code#M26:_Set_SD_position">M26: Set SD position</a>

View File

@ -45,7 +45,7 @@ void TCodes(char *const strchr_pointer, uint8_t codeValue) {
if (IsInvalidTCode(strchr_pointer, index)){
TCodeInvalid();
} /*else if (strchr_pointer[index] == 'x'){
} else if (strchr_pointer[index] == 'x'){
// load to bondtech gears; if mmu is not present do nothing
if (MMU2::mmu2.Enabled()) {
MMU2::mmu2.tool_change(strchr_pointer[index], choose_menu_P(_T(MSG_CHOOSE_EXTRUDER), _T(MSG_EXTRUDER)));
@ -53,9 +53,9 @@ void TCodes(char *const strchr_pointer, uint8_t codeValue) {
} else if (strchr_pointer[index] == 'c'){
// load from bondtech gears to nozzle (nozzle should be preheated)
if (MMU2::mmu2.Enabled()) {
MMU2::mmu2.tool_change(strchr_pointer[index], 0);
MMU2::mmu2.tool_change(strchr_pointer[index], MMU2::mmu2.get_current_tool());
}
}*/ else {
} else {
SChooseFromMenu selectedSlot;
// if (strchr_pointer[index] == '?')
// selectedSlot = TCodeChooseFromMenu();