Towards MMU2 without LCD

This commit is contained in:
Scott Lahteine 2020-10-28 00:26:27 -05:00
parent ca34edc5b0
commit 47ad2caab2
3 changed files with 178 additions and 181 deletions

View file

@ -105,8 +105,6 @@ int16_t MMU2::version = -1, MMU2::buildnr = -1;
millis_t MMU2::prev_request, MMU2::prev_P0_request;
char MMU2::rx_buffer[MMU_RX_SIZE], MMU2::tx_buffer[MMU_TX_SIZE];
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
struct E_Step {
float extrude; //!< extrude distance in mm
feedRate_t feedRate; //!< feed rate in mm/s
@ -121,8 +119,6 @@ char MMU2::rx_buffer[MMU_RX_SIZE], MMU2::tx_buffer[MMU_TX_SIZE];
#endif
;
#endif
MMU2::MMU2() {
rx_buffer[0] = '\0';
}
@ -906,9 +902,8 @@ void MMU2::filament_runout() {
DEBUG_ECHOLNPGM(" succeeded.");
return true;
}
#endif
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
#endif
// Load filament into MMU2
void MMU2::load_filament(const uint8_t index) {
@ -971,7 +966,7 @@ void MMU2::filament_runout() {
ENABLE_AXIS_E0();
current_position.e -= MMU2_FILAMENTCHANGE_EJECT_FEED;
line_to_current_position(2500 / 60);
line_to_current_position(MMM_TO_MMS(2500));
planner.synchronize();
command(MMU_CMD_E0 + index);
manage_response(false, false);
@ -1062,6 +1057,4 @@ void MMU2::filament_runout() {
DISABLE_AXIS_E0();
}
#endif // HAS_LCD_MENU && MMU2_MENUS
#endif // HAS_PRUSA_MMU2

View file

@ -49,13 +49,11 @@ public:
static uint8_t get_current_tool();
static void set_filament_type(const uint8_t index, const uint8_t type);
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
static bool unload();
static void load_filament(uint8_t);
static void load_all();
static bool load_filament_to_nozzle(const uint8_t index);
static bool eject_filament(const uint8_t index, const bool recover);
#endif
private:
static bool rx_str_P(const char* str);
@ -72,11 +70,9 @@ private:
static bool get_response();
static void manage_response(const bool move_axes, const bool turn_off_nozzle);
#if BOTH(HAS_LCD_MENU, MMU2_MENUS)
static void load_to_nozzle();
static void filament_ramming();
static void execute_extruder_sequence(const E_Step * sequence, int steps);
#endif
static void filament_runout();

View file

@ -874,6 +874,31 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#error "INDIVIDUAL_AXIS_HOMING_MENU is incompatible with DELTA kinematics."
#endif
/**
* Multi-Material-Unit requirements
*/
#if HAS_PRUSA_MMU2
#if EXTRUDERS != 5
#undef SINGLENOZZLE
#error "PRUSA_MMU2(S) requires exactly 5 EXTRUDERS. Please update your Configuration."
#elif DISABLED(NOZZLE_PARK_FEATURE)
#error "PRUSA_MMU2(S) requires NOZZLE_PARK_FEATURE. Enable it to continue."
#elif ENABLED(HAS_PRUSA_MMU2S) && DISABLED(FILAMENT_RUNOUT_SENSOR)
#error "PRUSA_MMU2S requires FILAMENT_RUNOUT_SENSOR. Enable it to continue."
#elif ENABLED(MMU_EXTRUDER_SENSOR) && DISABLED(FILAMENT_RUNOUT_SENSOR)
#error "MMU_EXTRUDER_SENSOR requires FILAMENT_RUNOUT_SENSOR. Enable it to continue."
#elif HAS_PRUSA_MMU2S && !HAS_LCD_MENU
#error "PRUSA_MMU2S requires an LCD supporting MarlinUI to be enabled."
#elif ENABLED(MMU_EXTRUDER_SENSOR) && !HAS_LCD_MENU
#error "MMU_EXTRUDER_SENSOR requires an LCD supporting MarlinUI to be enabled."
#elif DISABLED(ADVANCED_PAUSE_FEATURE)
static_assert(nullptr == strstr(MMU2_FILAMENT_RUNOUT_SCRIPT, "M600"), "ADVANCED_PAUSE_FEATURE is required to use M600 with PRUSA_MMU2(S) / SMUFF_EMU_MMU2(S).");
#endif
#endif
#if HAS_SMUFF && EXTRUDERS > 15
#error "Too many extruders for SMUFF_EMU_MMU2(S). (15 maximum)."
#endif
/**
* Options only for EXTRUDERS > 1
*/
@ -2958,23 +2983,6 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
#endif
#endif
/**
* Multi-Material-Unit requirements
*/
#if HAS_SMUFF && EXTRUDERS > 15
#error "Too many extruders for SMUFF_EMU_MMU2(S). (15 maximum)."
#elif HAS_PRUSA_MMU2
#if EXTRUDERS != 5
#error "PRUSA_MMU2 / PRUSA_MMU2S requires EXTRUDERS = 5."
#elif DISABLED(NOZZLE_PARK_FEATURE)
#error "PRUSA_MMU2 / PRUSA_MMU2S requires NOZZLE_PARK_FEATURE. Enable it to continue."
#elif EITHER(HAS_PRUSA_MMU2S, MMU_EXTRUDER_SENSOR) && DISABLED(FILAMENT_RUNOUT_SENSOR)
#error "PRUSA_MMU2S or MMU_EXTRUDER_SENSOR requires FILAMENT_RUNOUT_SENSOR. Enable it to continue."
#elif DISABLED(ADVANCED_PAUSE_FEATURE)
static_assert(nullptr == strstr(MMU2_FILAMENT_RUNOUT_SCRIPT, "M600"), "ADVANCED_PAUSE_FEATURE is required to use M600 with PRUSA_MMU2(S) / SMUFF_EMU_MMU2(S).");
#endif
#endif
/**
* Advanced PRINTCOUNTER settings
*/