RIP Bondtech long live the Extruder
This commit is contained in:
parent
37cde856e9
commit
edad625cf7
|
|
@ -46,12 +46,12 @@ 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 extruder 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_SELECT_EXTRUDER), _T(MSG_EXTRUDER)));
|
MMU2::mmu2.tool_change(strchr_pointer[index], choose_menu_P(_T(MSG_SELECT_EXTRUDER), _T(MSG_EXTRUDER)));
|
||||||
}
|
}
|
||||||
} else if (strchr_pointer[index] == 'c'){
|
} else if (strchr_pointer[index] == 'c'){
|
||||||
// load from bondtech gears to nozzle (nozzle should be preheated)
|
// load from extruder gears to nozzle (nozzle should be preheated)
|
||||||
if (MMU2::mmu2.Enabled()) {
|
if (MMU2::mmu2.Enabled()) {
|
||||||
MMU2::mmu2.tool_change(strchr_pointer[index], MMU2::mmu2.get_current_tool());
|
MMU2::mmu2.tool_change(strchr_pointer[index], MMU2::mmu2.get_current_tool());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ const char MSG_SELECT_FILAMENT[] PROGMEM_I1 = ISTR("Select filament:"); ////MSG_
|
||||||
const char MSG_LAST_PRINT[] PROGMEM_I1 = ISTR("Last print"); ////MSG_LAST_PRINT c=18
|
const char MSG_LAST_PRINT[] PROGMEM_I1 = ISTR("Last print"); ////MSG_LAST_PRINT c=18
|
||||||
const char MSG_LAST_PRINT_FAILURES[] PROGMEM_I1 = ISTR("Last print failures"); ////MSG_LAST_PRINT_FAILURES c=20
|
const char MSG_LAST_PRINT_FAILURES[] PROGMEM_I1 = ISTR("Last print failures"); ////MSG_LAST_PRINT_FAILURES c=20
|
||||||
const char MSG_LOAD_FILAMENT[] PROGMEM_I1 = ISTR("Load filament"); ////MSG_LOAD_FILAMENT c=17
|
const char MSG_LOAD_FILAMENT[] PROGMEM_I1 = ISTR("Load filament"); ////MSG_LOAD_FILAMENT c=17
|
||||||
const char MSG_LOAD_TO_BONDTECH[] PROGMEM_I1 = ISTR("Load to Bondtech"); ////MSG_LOAD_TO_BONDTECH c=18
|
const char MSG_LOAD_TO_EXTRUDER[] PROGMEM_I1 = ISTR("Load to Extruder"); ////MSG_LOAD_TO_EXTRUDER c=18
|
||||||
const char MSG_LOADING_FILAMENT[] PROGMEM_I1 = ISTR("Loading filament"); ////MSG_LOADING_FILAMENT c=20
|
const char MSG_LOADING_FILAMENT[] PROGMEM_I1 = ISTR("Loading filament"); ////MSG_LOADING_FILAMENT c=20
|
||||||
const char MSG_TESTING_FILAMENT[] PROGMEM_I1 = ISTR("Testing filament"); ////MSG_TESTING_FILAMENT c=20
|
const char MSG_TESTING_FILAMENT[] PROGMEM_I1 = ISTR("Testing filament"); ////MSG_TESTING_FILAMENT c=20
|
||||||
const char MSG_EJECT_FILAMENT[] PROGMEM_I1 = ISTR("Eject filament"); ////MSG_EJECT_FILAMENT c=17
|
const char MSG_EJECT_FILAMENT[] PROGMEM_I1 = ISTR("Eject filament"); ////MSG_EJECT_FILAMENT c=17
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ extern const char MSG_SELECT_FILAMENT[];
|
||||||
extern const char MSG_LAST_PRINT[];
|
extern const char MSG_LAST_PRINT[];
|
||||||
extern const char MSG_LAST_PRINT_FAILURES[];
|
extern const char MSG_LAST_PRINT_FAILURES[];
|
||||||
extern const char MSG_LOAD_FILAMENT[];
|
extern const char MSG_LOAD_FILAMENT[];
|
||||||
extern const char MSG_LOAD_TO_BONDTECH[];
|
extern const char MSG_LOAD_TO_EXTRUDER[];
|
||||||
extern const char MSG_LOADING_FILAMENT[];
|
extern const char MSG_LOADING_FILAMENT[];
|
||||||
extern const char MSG_TESTING_FILAMENT[];
|
extern const char MSG_TESTING_FILAMENT[];
|
||||||
extern const char MSG_M117_V2_CALIBRATION[];
|
extern const char MSG_M117_V2_CALIBRATION[];
|
||||||
|
|
|
||||||
|
|
@ -422,7 +422,7 @@ void FullScreenMsg(const char *pgmS, uint8_t slot){
|
||||||
lcd_print(slot + 1);
|
lcd_print(slot + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MMU2::load_to_bondtech(uint8_t index){
|
bool MMU2::load_to_extruder(uint8_t index){
|
||||||
FullScreenMsg(_T(MSG_TESTING_FILAMENT), index);
|
FullScreenMsg(_T(MSG_TESTING_FILAMENT), index);
|
||||||
tool_change(index);
|
tool_change(index);
|
||||||
st_synchronize();
|
st_synchronize();
|
||||||
|
|
@ -888,7 +888,7 @@ void MMU2::OnMMUProgressMsgSame(ProgressCode pc){
|
||||||
if (loadFilamentStarted) {
|
if (loadFilamentStarted) {
|
||||||
switch (WhereIsFilament()) {
|
switch (WhereIsFilament()) {
|
||||||
case FilamentState::AT_FSENSOR:
|
case FilamentState::AT_FSENSOR:
|
||||||
// fsensor triggered, finish FeedingToBondtech state
|
// fsensor triggered, finish FeedingToExtruder state
|
||||||
loadFilamentStarted = false;
|
loadFilamentStarted = false;
|
||||||
// After the MMU knows the FSENSOR is triggered it will:
|
// After the MMU knows the FSENSOR is triggered it will:
|
||||||
// 1. Push the filament by additional 30mm (see fsensorToNozzle)
|
// 1. Push the filament by additional 30mm (see fsensorToNozzle)
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ public:
|
||||||
/// It behaves very similarly like a ToolChange, but it doesn't load the filament
|
/// It behaves very similarly like a ToolChange, but it doesn't load the filament
|
||||||
/// all the way down to the nozzle. The sole purpose of this operation
|
/// all the way down to the nozzle. The sole purpose of this operation
|
||||||
/// is to check, that the filament will be ready for printing.
|
/// is to check, that the filament will be ready for printing.
|
||||||
bool load_to_bondtech(uint8_t index);
|
bool load_to_extruder(uint8_t index);
|
||||||
|
|
||||||
/// @returns the active filament slot index (0-4) or 0xff in case of no active tool
|
/// @returns the active filament slot index (0-4) or 0xff in case of no active tool
|
||||||
uint8_t get_current_tool() const;
|
uint8_t get_current_tool() const;
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ enum class ErrorCode : uint_fast16_t {
|
||||||
|
|
||||||
FINDA_VS_EEPROM_DISREPANCY = 0x8008, ///< E32776 FINDA is pressed but we have no such record in EEPROM - this can only happen at the start of the MMU and can be resolved by issuing an Unload command
|
FINDA_VS_EEPROM_DISREPANCY = 0x8008, ///< E32776 FINDA is pressed but we have no such record in EEPROM - this can only happen at the start of the MMU and can be resolved by issuing an Unload command
|
||||||
|
|
||||||
FSENSOR_TOO_EARLY = 0x8009, ///< E32777 FSensor triggered while doing FastFeedToBondtech - that means either:
|
FSENSOR_TOO_EARLY = 0x8009, ///< E32777 FSensor triggered while doing FastFeedToExtruder - that means either:
|
||||||
///< - the PTFE is too short
|
///< - the PTFE is too short
|
||||||
///< - a piece of filament was left inside - pushed in front of the loaded filament causing the fsensor trigger too early
|
///< - a piece of filament was left inside - pushed in front of the loaded filament causing the fsensor trigger too early
|
||||||
///< - fsensor is faulty producing bogus triggers
|
///< - fsensor is faulty producing bogus triggers
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ enum class ProgressCode : uint_fast8_t {
|
||||||
UnloadingToFinda, // P3
|
UnloadingToFinda, // P3
|
||||||
UnloadingToPulley, //P4
|
UnloadingToPulley, //P4
|
||||||
FeedingToFinda, // P5
|
FeedingToFinda, // P5
|
||||||
FeedingToBondtech, // P6
|
FeedingToExtruder, // P6
|
||||||
FeedingToNozzle, // P7
|
FeedingToNozzle, // P7
|
||||||
AvoidingGrind, // P8
|
AvoidingGrind, // P8
|
||||||
FinishingMoves, // P9
|
FinishingMoves, // P9
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ static const char progressDisengeIdler[] PROGMEM_I1 = ISTR("Disengaging idle
|
||||||
static const char progressUnloadFinda[] PROGMEM_I1 = ISTR("Unloading to FINDA");
|
static const char progressUnloadFinda[] PROGMEM_I1 = ISTR("Unloading to FINDA");
|
||||||
static const char progressUnloadPulley[] PROGMEM_I1 = ISTR("Unloading to pulley");
|
static const char progressUnloadPulley[] PROGMEM_I1 = ISTR("Unloading to pulley");
|
||||||
static const char progressFeedFinda[] PROGMEM_I1 = ISTR("Feeding to FINDA");
|
static const char progressFeedFinda[] PROGMEM_I1 = ISTR("Feeding to FINDA");
|
||||||
static const char progressFeedBondtech[] PROGMEM_I1 = ISTR("Feeding to extruder");
|
static const char progressFeedExtruder[] PROGMEM_I1 = ISTR("Feeding to extruder");
|
||||||
static const char progressFeedNozzle[] PROGMEM_I1 = ISTR("Feeding to nozzle");
|
static const char progressFeedNozzle[] PROGMEM_I1 = ISTR("Feeding to nozzle");
|
||||||
static const char progressAvoidGrind[] PROGMEM_I1 = ISTR("Avoiding grind");
|
static const char progressAvoidGrind[] PROGMEM_I1 = ISTR("Avoiding grind");
|
||||||
static const char progressFinishMoves[] PROGMEM_I1 = ISTR("Finishing moves");
|
static const char progressFinishMoves[] PROGMEM_I1 = ISTR("Finishing moves");
|
||||||
|
|
@ -40,7 +40,7 @@ static const char * const progressTexts[] PROGMEM = {
|
||||||
progressUnloadFinda,
|
progressUnloadFinda,
|
||||||
progressUnloadPulley,
|
progressUnloadPulley,
|
||||||
progressFeedFinda,
|
progressFeedFinda,
|
||||||
progressFeedBondtech,
|
progressFeedExtruder,
|
||||||
progressFeedNozzle,
|
progressFeedNozzle,
|
||||||
progressAvoidGrind,
|
progressAvoidGrind,
|
||||||
progressFinishMoves,
|
progressFinishMoves,
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ static void lcd_v2_calibration();
|
||||||
|
|
||||||
static void mmu_fil_eject_menu();
|
static void mmu_fil_eject_menu();
|
||||||
static void mmu_load_to_nozzle_menu();
|
static void mmu_load_to_nozzle_menu();
|
||||||
static void mmu_load_to_bondtech_menu();
|
static void mmu_load_to_extruder_menu();
|
||||||
static void preheat_or_continue();
|
static void preheat_or_continue();
|
||||||
|
|
||||||
#ifdef MMU_HAS_CUTTER
|
#ifdef MMU_HAS_CUTTER
|
||||||
|
|
@ -1846,7 +1846,7 @@ switch(eFilamentAction)
|
||||||
case FilamentAction::Load:
|
case FilamentAction::Load:
|
||||||
case FilamentAction::AutoLoad:
|
case FilamentAction::AutoLoad:
|
||||||
case FilamentAction::MmuLoad:
|
case FilamentAction::MmuLoad:
|
||||||
case FilamentAction::MmuLoadBondtech:
|
case FilamentAction::MmuLoadExtruder:
|
||||||
lcd_puts_P(_i("to load filament")); ////MSG_TO_LOAD_FIL c=20
|
lcd_puts_P(_i("to load filament")); ////MSG_TO_LOAD_FIL c=20
|
||||||
break;
|
break;
|
||||||
case FilamentAction::UnLoad:
|
case FilamentAction::UnLoad:
|
||||||
|
|
@ -1886,7 +1886,7 @@ switch(eFilamentAction)
|
||||||
enquecommand_P(PSTR("M702")); // unload filament
|
enquecommand_P(PSTR("M702")); // unload filament
|
||||||
break;
|
break;
|
||||||
case FilamentAction::MmuLoad:
|
case FilamentAction::MmuLoad:
|
||||||
case FilamentAction::MmuLoadBondtech:
|
case FilamentAction::MmuLoadExtruder:
|
||||||
case FilamentAction::MmuUnLoad:
|
case FilamentAction::MmuUnLoad:
|
||||||
case FilamentAction::MmuEject:
|
case FilamentAction::MmuEject:
|
||||||
case FilamentAction::MmuCut:
|
case FilamentAction::MmuCut:
|
||||||
|
|
@ -1958,11 +1958,11 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
||||||
menu_back(nLevel);
|
menu_back(nLevel);
|
||||||
menu_submenu(mmu_load_to_nozzle_menu);
|
menu_submenu(mmu_load_to_nozzle_menu);
|
||||||
break;
|
break;
|
||||||
case FilamentAction::MmuLoadBondtech:
|
case FilamentAction::MmuLoadExtruder:
|
||||||
nLevel = bFilamentPreheatState ? 1 : 2;
|
nLevel = bFilamentPreheatState ? 1 : 2;
|
||||||
bFilamentAction = true;
|
bFilamentAction = true;
|
||||||
menu_back(nLevel);
|
menu_back(nLevel);
|
||||||
menu_submenu(mmu_load_to_bondtech_menu);
|
menu_submenu(mmu_load_to_extruder_menu);
|
||||||
break;
|
break;
|
||||||
case FilamentAction::MmuUnLoad:
|
case FilamentAction::MmuUnLoad:
|
||||||
nLevel = bFilamentPreheatState ? 1 : 2;
|
nLevel = bFilamentPreheatState ? 1 : 2;
|
||||||
|
|
@ -2018,7 +2018,7 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed)
|
||||||
case FilamentAction::Load:
|
case FilamentAction::Load:
|
||||||
case FilamentAction::AutoLoad:
|
case FilamentAction::AutoLoad:
|
||||||
case FilamentAction::MmuLoad:
|
case FilamentAction::MmuLoad:
|
||||||
case FilamentAction::MmuLoadBondtech:
|
case FilamentAction::MmuLoadExtruder:
|
||||||
lcd_puts_P(_i("Preheating to load")); ////MSG_PREHEATING_TO_LOAD c=20
|
lcd_puts_P(_i("Preheating to load")); ////MSG_PREHEATING_TO_LOAD c=20
|
||||||
if (once) raise_z_above(MIN_Z_FOR_LOAD);
|
if (once) raise_z_above(MIN_Z_FOR_LOAD);
|
||||||
break;
|
break;
|
||||||
|
|
@ -5195,26 +5195,26 @@ static void mmu_cut_filament_menu() {
|
||||||
}
|
}
|
||||||
#endif //MMU_HAS_CUTTER
|
#endif //MMU_HAS_CUTTER
|
||||||
|
|
||||||
static inline void load_to_bondtech_all_wrapper(){
|
static inline void load_to_extruder_all_wrapper(){
|
||||||
for(uint8_t i = 0; i < 5; ++i){
|
for(uint8_t i = 0; i < 5; ++i){
|
||||||
MMU2::mmu2.load_to_bondtech(i);
|
MMU2::mmu2.load_to_extruder(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void load_to_bondtech_wrapper(uint8_t i){
|
static inline void load_to_extruder_wrapper(uint8_t i){
|
||||||
MMU2::mmu2.load_to_bondtech(i);
|
MMU2::mmu2.load_to_extruder(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mmu_load_to_bondtech_menu() {
|
static void mmu_load_to_extruder_menu() {
|
||||||
if (bFilamentAction) {
|
if (bFilamentAction) {
|
||||||
MENU_BEGIN();
|
MENU_BEGIN();
|
||||||
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
MENU_ITEM_BACK_P(_T(MSG_MAIN));
|
||||||
MENU_ITEM_FUNCTION_P(_i("Load all"), load_to_bondtech_all_wrapper); ////MSG_LOAD_ALL c=18
|
MENU_ITEM_FUNCTION_P(_i("Load all"), load_to_extruder_all_wrapper); ////MSG_LOAD_ALL c=18
|
||||||
for (uint8_t i = 0; i < MMU_FILAMENT_COUNT; i++)
|
for (uint8_t i = 0; i < MMU_FILAMENT_COUNT; i++)
|
||||||
MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), i + '1', load_to_bondtech_wrapper, i); ////MSG_LOAD_FILAMENT c=16
|
MENU_ITEM_FUNCTION_NR_P(_T(MSG_LOAD_FILAMENT), i + '1', load_to_extruder_wrapper, i); ////MSG_LOAD_FILAMENT c=16
|
||||||
MENU_END();
|
MENU_END();
|
||||||
} else {
|
} else {
|
||||||
eFilamentAction = FilamentAction::MmuLoadBondtech;
|
eFilamentAction = FilamentAction::MmuLoadExtruder;
|
||||||
preheat_or_continue();
|
preheat_or_continue();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -5603,7 +5603,7 @@ static void lcd_main_menu()
|
||||||
if ( ! ( IS_SD_PRINTING || usb_timer.running() || (lcd_commands_type == LcdCommands::Layer1Cal) ) ) {
|
if ( ! ( IS_SD_PRINTING || usb_timer.running() || (lcd_commands_type == LcdCommands::Layer1Cal) ) ) {
|
||||||
if (MMU2::mmu2.Enabled()) {
|
if (MMU2::mmu2.Enabled()) {
|
||||||
MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_FILAMENT), mmu_load_filament_menu);
|
MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_FILAMENT), mmu_load_filament_menu);
|
||||||
MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_TO_BONDTECH), mmu_load_to_bondtech_menu);
|
MENU_ITEM_SUBMENU_P(_T(MSG_LOAD_TO_EXTRUDER), mmu_load_to_extruder_menu);
|
||||||
MENU_ITEM_SUBMENU_P(_i("Load to nozzle"), mmu_load_to_nozzle_menu);////MSG_LOAD_TO_NOZZLE c=18
|
MENU_ITEM_SUBMENU_P(_i("Load to nozzle"), mmu_load_to_nozzle_menu);////MSG_LOAD_TO_NOZZLE c=18
|
||||||
MENU_ITEM_SUBMENU_P(_T(MSG_UNLOAD_FILAMENT), mmu_unload_filament);
|
MENU_ITEM_SUBMENU_P(_T(MSG_UNLOAD_FILAMENT), mmu_unload_filament);
|
||||||
MENU_ITEM_SUBMENU_P(_T(MSG_EJECT_FILAMENT), mmu_fil_eject_menu);
|
MENU_ITEM_SUBMENU_P(_T(MSG_EJECT_FILAMENT), mmu_fil_eject_menu);
|
||||||
|
|
|
||||||
|
|
@ -180,7 +180,7 @@ enum class FilamentAction : uint_least8_t
|
||||||
MmuUnLoad,
|
MmuUnLoad,
|
||||||
MmuEject,
|
MmuEject,
|
||||||
MmuCut,
|
MmuCut,
|
||||||
MmuLoadBondtech,
|
MmuLoadExtruder,
|
||||||
Preheat,
|
Preheat,
|
||||||
Lay1Cal,
|
Lay1Cal,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue