Browse Source

Merge pull request #1275 from PavelSindler/3_4_2_branch_merging

3_4_2 branch merging into MK3
mkbel 6 years ago
parent
commit
cdb06c65f3

+ 2 - 2
Firmware/Configuration.h

@@ -7,8 +7,8 @@
 #define STR(x) STR_HELPER(x)
 
 // Firmware version
-#define FW_VERSION "3.4.1"
-#define FW_COMMIT_NR   1356
+#define FW_VERSION "3.4.2"
+#define FW_COMMIT_NR   1360
 // FW_VERSION_UNKNOWN means this is an unofficial build.
 // The firmware should only be checked into github with this symbol.
 #define FW_DEV_VERSION FW_VERSION_UNKNOWN

+ 3 - 0
Firmware/Marlin_main.cpp

@@ -1019,6 +1019,9 @@ void setup()
 	}
 	MYSERIAL.begin(BAUDRATE);
 	fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream
+#ifndef W25X20CL
+	SERIAL_PROTOCOLLNPGM("start");
+#endif //W25X20CL
 	stdout = uartout;
 	SERIAL_ECHO_START;
 	printf_P(PSTR(" " FW_VERSION_FULL "\n"));

+ 28 - 3
Firmware/mmu.cpp

@@ -11,6 +11,7 @@
 #include "cardreader.h"
 #include "ultralcd.h"
 #include "sound.h"
+#include "printers.h"
 #include <avr/pgmspace.h>
 
 #define CHECK_FINDA ((IS_SD_PRINTING || is_usb_printing) && (mcode_in_progress != 600) && !saved_printing && e_active())
@@ -20,10 +21,9 @@
 #define MMU_CMD_TIMEOUT 300000ul //5min timeout for mmu commands (except P0)
 #define MMU_P0_TIMEOUT 3000ul //timeout for P0 command: 3seconds
 
-#define MMU_HWRESET
+#ifdef MMU_HWRESET
 #define MMU_RST_PIN 76
-
-#define MMU_REQUIRED_FW_BUILDNR 83
+#endif //MMU_HWRESET
 
 bool mmu_enabled = false;
 
@@ -94,8 +94,10 @@ int8_t mmu_rx_start(void)
 //initialize mmu2 unit - first part - should be done at begining of startup process
 void mmu_init(void)
 {
+#ifdef MMU_HWRESET
 	digitalWrite(MMU_RST_PIN, HIGH);
 	pinMode(MMU_RST_PIN, OUTPUT);              //setup reset pin
+#endif //MMU_HWRESET
 	uart2_init();                              //init uart2
 	_delay_ms(10);                             //wait 10ms for sure
 	mmu_reset();                               //reset mmu (HW or SW), do not wait for response
@@ -149,6 +151,29 @@ void mmu_loop(void)
 			bool version_valid = mmu_check_version();
 			if (!version_valid) mmu_show_warning();
 			else puts_P(PSTR("MMU version valid"));
+
+			if ((PRINTER_TYPE == PRINTER_MK3) || (PRINTER_TYPE == PRINTER_MK3_SNMM))
+			{
+#ifdef MMU_DEBUG
+				puts_P(PSTR("MMU <= 'P0'"));
+#endif //MMU_DEBUG
+				mmu_puts_P(PSTR("P0\n")); //send 'read finda' request
+				mmu_state = -4;
+			}
+			else
+			{
+#ifdef MMU_DEBUG
+				puts_P(PSTR("MMU <= 'M1'"));
+#endif //MMU_DEBUG
+				mmu_puts_P(PSTR("M1\n")); //set mmu mode to stealth
+				mmu_state = -5;
+			}
+
+		}
+		return;
+	case -5:
+		if (mmu_rx_ok() > 0)
+		{
 #ifdef MMU_DEBUG
 			puts_P(PSTR("MMU <= 'P0'"));
 #endif //MMU_DEBUG

+ 1 - 0
Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h

@@ -483,6 +483,7 @@
 
 //#define SUPPORT_VERBOSITY
 
+#define MMU_REQUIRED_FW_BUILDNR 132
 //#define MMU_DEBUG //print communication between MMU2 and printer on serial
 
 #endif //__CONFIGURATION_PRUSA_H

+ 1 - 0
Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h

@@ -484,6 +484,7 @@
 
 //#define SUPPORT_VERBOSITY
 
+#define MMU_REQUIRED_FW_BUILDNR 132
 //#define MMU_DEBUG //print communication between MMU2 and printer on serial
 
 #endif //__CONFIGURATION_PRUSA_H

+ 2 - 0
Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h

@@ -616,6 +616,8 @@
 
 //#define SUPPORT_VERBOSITY
 
+#define MMU_REQUIRED_FW_BUILDNR 83
+#define MMU_HWRESET
 //#define MMU_DEBUG //print communication between MMU2 and printer on serial
 
 #endif //__CONFIGURATION_PRUSA_H