You must have missed a SDCARDDETECT. See in sdcard.cpp
void SDCard::automount() {
#if SDCARDDETECT > -1
if (READ(SDCARDDETECT) != SDCARDDETECTINVERTED) {
if (sdactive || sdmode == 100) { // Card removed
Com::printFLN(PSTR("SD card removed"));
#if UI_DISPLAY_TYPE != NO_DISPLAY
uid.executeAction(UI_ACTION_TOP_MENU, true);
#endif
unmount();
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_SD_REMOVED_ID));
}
} else {
if (!sdactive && sdmode != 100) {
UI_STATUS_UPD_F(Com::translatedF(UI_TEXT_SD_INSERTED_ID));
mount();
if (sdmode != 100) // send message only if we have success
Com::printFLN(PSTR("SD card inserted")); // Not translatable or host
// will not understand signal
#if UI_DISPLAY_TYPE != NO_DISPLAY
if (sdactive && !uid.isWizardActive()) { // Wizards have priority
Printer::setAutomount(true);
uid.executeAction(UI_ACTION_SD_PRINT + UI_ACTION_TOPMENU, true);
}
#endif
}
}
#endif
}
the code is only executed when that is the case. Alternatively just remove that code but that will prevent mounting options to appear, so better find the assignment to not -1.
Do autoleveling with G32 S2 to store result and activate compensation permanently. Should also work in CNC mode.