| 
															
																@@ -23,8 +23,6 @@ static_assert(EXTRUDERS==1); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 namespace MMU2 { 
															 | 
															
															 | 
															
																 namespace MMU2 { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-void execute_extruder_sequence(const E_Step *sequence, int steps); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 template<typename F> 
															 | 
															
															 | 
															
																 template<typename F> 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 void waitForHotendTargetTemp(uint16_t delay, F f){ 
															 | 
															
															 | 
															
																 void waitForHotendTargetTemp(uint16_t delay, F f){ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     while (((degTargetHotend(active_extruder) - degHotend(active_extruder)) > 5)) { 
															 | 
															
															 | 
															
																     while (((degTargetHotend(active_extruder) - degHotend(active_extruder)) > 5)) { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -357,7 +355,7 @@ bool MMU2::tool_change(char code, uint8_t slot) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     case 'c': { 
															 | 
															
															 | 
															
																     case 'c': { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         waitForHotendTargetTemp(100, []{}); 
															 | 
															
															 | 
															
																         waitForHotendTargetTemp(100, []{}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        execute_extruder_sequence((const E_Step *)load_to_nozzle_sequence, sizeof(load_to_nozzle_sequence) / sizeof (load_to_nozzle_sequence[0])); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        execute_load_to_nozzle_sequence((const E_Step *)load_to_nozzle_sequence, sizeof(load_to_nozzle_sequence) / sizeof (load_to_nozzle_sequence[0])); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } break; 
															 | 
															
															 | 
															
																     } break; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -508,7 +506,7 @@ bool MMU2::load_filament_to_nozzle(uint8_t slot) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         ToolChangeCommon(slot); 
															 | 
															
															 | 
															
																         ToolChangeCommon(slot); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																         // Finish loading to the nozzle with finely tuned steps. 
															 | 
															
															 | 
															
																         // Finish loading to the nozzle with finely tuned steps. 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        execute_extruder_sequence((const E_Step *)load_to_nozzle_sequence, sizeof(load_to_nozzle_sequence) / sizeof (load_to_nozzle_sequence[0])); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        execute_load_to_nozzle_sequence((const E_Step *)load_to_nozzle_sequence, sizeof(load_to_nozzle_sequence) / sizeof (load_to_nozzle_sequence[0])); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         Sound_MakeSound(e_SOUND_TYPE_StandardConfirm); 
															 | 
															
															 | 
															
																         Sound_MakeSound(e_SOUND_TYPE_StandardConfirm); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     lcd_update_enable(true); 
															 | 
															
															 | 
															
																     lcd_update_enable(true); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -839,6 +837,13 @@ void MMU2::execute_extruder_sequence(const E_Step *sequence, uint8_t steps) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 } 
															 | 
															
															 | 
															
																 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+void MMU2::execute_load_to_nozzle_sequence(const E_Step *sequence, uint8_t steps) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    st_synchronize(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    // Compensate for configurable Extra Loading Distance 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    current_position[E_AXIS] -= logic.ExtraLoadDistance(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    execute_extruder_sequence(sequence, steps); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+} 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 void MMU2::ReportError(ErrorCode ec, ErrorSource res) { 
															 | 
															
															 | 
															
																 void MMU2::ReportError(ErrorCode ec, ErrorSource res) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     // Due to a potential lossy error reporting layers linked to this hook 
															 | 
															
															 | 
															
																     // Due to a potential lossy error reporting layers linked to this hook 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     // we'd better report everything to make sure especially the error states 
															 | 
															
															 | 
															
																     // we'd better report everything to make sure especially the error states 
															 |