Browse Source

Merge pull request #1 from prusa3d/MK3

get updates so MK3 branch will compile
rhounsell 4 years ago
parent
commit
f40663408f
3 changed files with 24 additions and 9 deletions
  1. 6 6
      Firmware/Marlin_main.cpp
  2. 13 1
      Firmware/ultralcd.cpp
  3. 5 2
      Firmware/util.cpp

+ 6 - 6
Firmware/Marlin_main.cpp

@@ -7309,17 +7309,17 @@ Sigma_Exit:
     // ----------------------------------------------
     /*!     
         Checks the parameters of the printer and gcode and performs compatibility check
-          - M862.1 [ P<nozzle_diameter> | Q ]
-          - M862.2 [ P<model_code> | Q ]
-          - M862.3 [ P<model_name> | Q ]
-          - M862.4 [ P<fw_version> | Q]
-          - M862.5 [ P<gcode_level> | Q]
+          - M862.1 { P<nozzle_diameter> | Q }
+          - M862.2 { P<model_code> | Q }
+          - M862.3 { P"<model_name>" | Q }
+          - M862.4 { P<fw_version> | Q }
+          - M862.5 { P<gcode_level> | Q }
 
         When run with P<> argument, the check is performed against the input value.
         When run with Q argument, the current value is shown.
 		  
         M862.3 accepts text identifiers of printer types too.
-        The syntax of M862.3 is (note the space between P and the printer type name and the quotes around the type):
+        The syntax of M862.3 is (note the quotes around the type):
 		
                 M862.3 P "MK3S"
 		  

+ 13 - 1
Firmware/ultralcd.cpp

@@ -4853,9 +4853,21 @@ void lcd_wizard(WizState state)
 	int wizard_event;
 	const char *msg = NULL;
 	while (!end) {
-		printf_P(PSTR("Wizard state: %d"), state);
+		printf_P(PSTR("Wizard state: %d\n"), state);
 		switch (state) {
 		case S::Run: //Run wizard?
+			
+			// 2019-08-07 brutal hack - solving the "viper" situation.
+			// It is caused by the fact, that tmc2130_st_isr makes a crash detection before the printers really starts.
+			// And thus it calles stop_and_save_print_to_ram which sets the saved_printing flag.
+			// Having this flag set during normal printing is lethal - mesh_plan_buffer_line exist in the middle of planning long travels
+			// which results in distorted print.
+			// This primarily happens when the printer is new and parked in 0,0
+			// So any new printer will fail the first layer calibration unless being reset or the Stop function gets called.
+			// We really must find a way to prevent the crash from happening before the printer is started - that would be the correct solution.
+			// Btw. the flag may even trigger the viper situation on normal start this way and the user won't be able to find out why.			
+			saved_printing = false;
+			
 			wizard_active = true;
 			wizard_event = lcd_show_multiscreen_message_yes_no_and_wait_P(_i("Hi, I am your Original Prusa i3 printer. Would you like me to guide you through the setup process?"), false, true);////MSG_WIZARD_WELCOME c=20 r=7
 			if (wizard_event) {

+ 5 - 2
Firmware/util.cpp

@@ -401,8 +401,11 @@ lcd_update_enable(true);           // display / status-line recovery
      case ClCheckMode::_Undef:
           break;
      }
-bSettings=false;                                  // flag ('fake parameter') for 'lcd_hw_setup_menu()' function
-menu_submenu(lcd_hw_setup_menu);
+if(!farm_mode)
+     {
+     bSettings=false;                             // flag ('fake parameter') for 'lcd_hw_setup_menu()' function
+     menu_submenu(lcd_hw_setup_menu);
+     }
 }
 
 void printer_model_check(uint16_t nPrinterModel)