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

@ -5464,6 +5464,14 @@ eeprom_update_word((uint16_t*)EEPROM_NOZZLE_DIAMETER_uM,0xFFFF);
card.startFileprint(); card.startFileprint();
starttime=_millis(); 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; break;

View File

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