diff --git a/Marlin/Configuration_LulzBot.h b/Marlin/Configuration_LulzBot.h index 57ebf5c12..afa6fcabc 100644 --- a/Marlin/Configuration_LulzBot.h +++ b/Marlin/Configuration_LulzBot.h @@ -63,7 +63,7 @@ #error Angelfish_Aero // Titan AERO (Angelfish) #endif -#define LULZBOT_FW_VERSION ".2" +#define LULZBOT_FW_VERSION ".3" // Select options based on printer model @@ -644,4 +644,34 @@ u8g.drawStr(67,62,SHORT_BUILD_VERSION LULZBOT_FW_VERSION); \ } while( u8g.nextPage() ); +// Z Probe w/ Rewipe +#define LULZBOT_NUM_REWIPES 1 + +#define LULZBOT_PROBE_Z_WITH_REWIPE(speed) \ + do_probe_move(0, speed); /* probe; if we reach Z=0, the probe failed */ \ + for(int rewipes = 1; current_position[Z_AXIS] == 0; rewipes++) { \ + SERIAL_ERRORLNPGM(MSG_REWIPE); \ + LCD_MESSAGEPGM(MSG_REWIPE); \ + do_blocking_move_to_z(10, MMM_TO_MMS(speed)); /* raise nozzle */ \ + Nozzle::clean(0, 2, 0, 0); /* wipe nozzle */ \ + do_probe_move(0, speed); /* reprobe */ \ + if(rewipes >= LULZBOT_NUM_REWIPES) { /* max of tries */ \ + SERIAL_ERRORLNPGM("PROBE FAIL CLEAN NOZZLE"); /* cura listens for this message specifically */ \ + LCD_MESSAGEPGM(MSG_LEVEL_FAIL); /* use a more friendly message on the LCD */ \ + BUZZ(25, 880); BUZZ(50, 0); /* play tone */ \ + BUZZ(25, 880); BUZZ(50, 0); \ + BUZZ(25, 880); BUZZ(50, 0); \ + BUZZ(75, 880); BUZZ(50, 0); \ + BUZZ(75, 880); BUZZ(50, 0); \ + BUZZ(75, 880); BUZZ(50, 0); \ + BUZZ(25, 880); BUZZ(50, 0); \ + BUZZ(25, 880); BUZZ(50, 0); \ + BUZZ(25, 880); BUZZ(50, 0); \ + do_blocking_move_to_z(100, MMM_TO_MMS(Z_PROBE_SPEED_FAST)); /* raise head */ \ + card.stopSDPrint(); /* stop print job */ \ + clear_command_queue(); \ + print_job_timer.stop(); \ + return NAN; /* abort the leveling in progress */ \ + } \ + } #endif /* CONFIGURATION_LULZBOT */ diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index c7768a39b..d522bea0f 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -2243,7 +2243,11 @@ static void clean_up_after_endstop_or_probe_move() { #if ENABLED(PROBE_DOUBLE_TOUCH) // Do a first probe at the fast speed + #if defined(LULZBOT_PROBE_Z_WITH_REWIPE) + LULZBOT_PROBE_Z_WITH_REWIPE(Z_PROBE_SPEED_FAST); + #else do_probe_move(-(Z_MAX_LENGTH) - 10, Z_PROBE_SPEED_FAST); + #endif #if ENABLED(DEBUG_LEVELING_FEATURE) float first_probe_z = current_position[Z_AXIS]; @@ -2270,7 +2274,11 @@ static void clean_up_after_endstop_or_probe_move() { #endif // move down slowly to find bed + #if defined(LULZBOT_PROBE_Z_WITH_REWIPE) + LULZBOT_PROBE_Z_WITH_REWIPE(Z_PROBE_SPEED_SLOW); + #else do_probe_move(-(Z_MAX_LENGTH) - 10, Z_PROBE_SPEED_SLOW); + #endif #if ENABLED(DEBUG_LEVELING_FEATURE) if (DEBUGGING(LEVELING)) DEBUG_POS("<<< run_z_probe", current_position); diff --git a/Marlin/language_en.h b/Marlin/language_en.h index e18812f7c..345b01fda 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -156,6 +156,12 @@ #ifndef MSG_LEVEL_BED #define MSG_LEVEL_BED _UxGT("Level bed") #endif +#ifndef MSG_REWIPE + #define MSG_REWIPE _UxGT("Rewiping") +#endif +#ifndef MSG_LEVEL_FAIL + #define MSG_LEVEL_FAIL _UxGT("Please clean nozzle") +#endif #ifndef MSG_EDITING_STOPPED #define MSG_EDITING_STOPPED _UxGT("Mesh Editing Stopped") #endif diff --git a/README_LulzBot.md b/README_LulzBot.md index 29f852994..493e753b1 100644 --- a/README_LulzBot.md +++ b/README_LulzBot.md @@ -12,8 +12,10 @@ The source on this branch can compile firmware for the TAZ 6 and Mini, as well a To select what firmware to build, modify lines 6 and 7 of "Configuration_LulzBot.h" according to the instructions on line 39. -# Known Limitations: +# Known Issues: -1. There is no way to tune the FlexyDually properly right now, as Marlin 1.1.4 does not support separate ESTEPs per extruder. -2. The probe fail and rewipe/reprobe functionality is currently not implemented. -3. The Makefile does not work. Building must be done via the Arduino IDE (internal builds are being done with 1.8.3) \ No newline at end of file +1. The Makefile does not work. Building must be done via the Arduino IDE (internal builds are being done with 1.8.3) +2. There is no way to tune the FlexyDually properly right now, as Marlin 1.1.4 does not support separate ESTEPs per extruder. +3. Printer needs to be power cycled to clear "clean nozzle" state. +4. M114 not reporting complete version string. +5. LCD display will show "Heating" when cooling. \ No newline at end of file