Browse Source

Wait for ok after U0 (unload current filament) command.

PavelSindler 6 years ago
parent
commit
b13ff8e424
2 changed files with 8 additions and 2 deletions
  1. 7 2
      Firmware/mmu.cpp
  2. 1 0
      Firmware/mmu.h

+ 7 - 2
Firmware/mmu.cpp

@@ -180,6 +180,12 @@ void mmu_loop(void)
 				mmu_puts_P(PSTR("C0\n")); //send continue loading
 				mmu_state = 3;
 			}
+			else if (mmu_cmd == MMU_CMD_U0)
+			{
+				printf_P(PSTR("MMU <= 'U0'\n"));
+				mmu_puts_P(PSTR("U0\n")); //send continue loading
+				mmu_state = 3;
+			}
 			mmu_cmd = 0;
 		}
 		else if ((mmu_last_response + 1000) < millis()) //request every 1s
@@ -588,9 +594,8 @@ void extr_unload()
 		current_position[E_AXIS] -= 80;
 		plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 2500 / 60, active_extruder);
 		st_synchronize();
-		printf_P(PSTR("U0\n"));
-		fprintf_P(uart2io, PSTR("U0\n"));
 
+		mmu_command(MMU_CMD_U0);
 		// get response
 		manage_response(false, true);
 

+ 1 - 0
Firmware/mmu.h

@@ -29,6 +29,7 @@ extern int16_t mmu_buildnr;
 #define MMU_CMD_L3   0x23
 #define MMU_CMD_L4   0x24
 #define MMU_CMD_C0   0x30
+#define MMU_CMD_U0   0x40
 
 extern int mmu_puts_P(const char* str);