Explorar el Código

FSensor - M600 fix + cond. translation + tunning filter and params

Robert Pelnar hace 5 años
padre
commit
60b4db15e0

+ 0 - 3
Firmware/Marlin.h

@@ -411,9 +411,6 @@ extern void print_world_coordinates();
 extern void print_physical_coordinates();
 extern void print_mesh_bed_leveling_table();
 
-#ifdef PAT9125
-extern void fsensor_init();
-#endif //PAT9125
 
 //estimated time to end of the print
 extern uint16_t print_time_remaining();

+ 38 - 33
Firmware/Marlin_main.cpp

@@ -91,10 +91,9 @@
 #include "swi2c.h"
 #endif //SWI2C
 
-#ifdef PAT9125
-#include "pat9125.h"
+#ifdef FILAMENT_SENSOR
 #include "fsensor.h"
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 
 #ifdef TMC2130
 #include "tmc2130.h"
@@ -686,12 +685,6 @@ void crashdet_stop_and_save_print2()
 
 void crashdet_detected(uint8_t mask)
 {
-//	printf("CRASH_DETECTED");
-/*	while (!is_buffer_empty())
-	{
-		process_commands();
-	    cmdqueue_pop_front();
-	}*/
 	st_synchronize();
 	static uint8_t crashDet_counter = 0;
 	bool automatic_recovery_after_crash = true;
@@ -854,8 +847,10 @@ void factory_reset(char level, bool quiet)
             eeprom_update_word((uint16_t *)EEPROM_FERROR_COUNT_TOT, 0);
             eeprom_update_word((uint16_t *)EEPROM_POWER_COUNT_TOT, 0);
 
-            fsensor_enable();
+#ifdef FILAMENT_SENSOR
+			fsensor_enable();
             fsensor_autoload_set(true);
+#endif //FILAMENT_SENSOR
                        
             WRITE(BEEPER, HIGH);
             _delay_ms(100);
@@ -1185,8 +1180,10 @@ void setup()
 		tmc2130_current_h[E_AXIS] = 36;
 		tmc2130_current_r[E_AXIS] = 36;
 #endif //TMC2130
+#ifdef FILAMENT_SENSOR
 		//disabled filament autoload (PFW360)
 		fsensor_autoload_set(false);
+#endif //FILAMENT_SENSOR
 	}
 	MYSERIAL.begin(BAUDRATE);
 	fdev_setup_stream(uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE); //setup uart out stream
@@ -1438,9 +1435,9 @@ void setup()
 	// It does not make sense to load the correction matrix until the machine is homed.
 	world2machine_reset();
     
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	fsensor_init();
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 
 
 #if defined(CONTROLLERFAN_PIN) && (CONTROLLERFAN_PIN > -1)
@@ -1622,9 +1619,9 @@ void setup()
 	setup_fan_interrupt();
 #endif //DEBUG_DISABLE_FANCHECK
 
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	fsensor_setup_interrupt();
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 	for (int i = 0; i<4; i++) EEPROM_read_B(EEPROM_BOWDEN_LENGTH + i * 2, &bowden_length[i]); 
 	
 #ifndef DEBUG_DISABLE_STARTMSGS
@@ -1977,9 +1974,9 @@ void loop()
   isPrintPaused ? manage_inactivity(true) : manage_inactivity(false);
   checkHitEndstops();
   lcd_update(0);
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	fsensor_update();
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 #ifdef TMC2130
 	tmc2130_check_overtemp();
 	if (tmc2130_sg_crash)
@@ -3075,12 +3072,14 @@ void gcode_M701()
 
 #if defined (SNMM) || defined (SNMM_V2)
 	extr_adj(snmm_extruder);//loads current extruder
-#else
+#else //defined (SNMM) || defined (SNMM_V2)
 	enable_z();
 	custom_message = true;
 	custom_message_type = 2;
 
-	fsensor_oq_meassure_start();
+#ifdef FILAMENT_SENSOR
+	fsensor_oq_meassure_start(40);
+#endif //FILAMENT_SENSOR
 
 	lcd_setstatuspgm(_T(MSG_LOADING_FILAMENT));
 	current_position[E_AXIS] += 40;
@@ -3121,6 +3120,7 @@ void gcode_M701()
 	custom_message = false;
 	custom_message_type = 0;
 
+#ifdef FILAMENT_SENSOR
 	fsensor_oq_meassure_stop();
 
 	if (!fsensor_oq_result())
@@ -3131,7 +3131,8 @@ void gcode_M701()
 		if (disable)
 			fsensor_disable();
 	}
-#endif
+#endif //FILAMENT_SENSOR
+#endif //defined (SNMM) || defined (SNMM_V2)
 }
 /**
  * @brief Get serial number from 32U2 processor
@@ -3419,6 +3420,7 @@ void process_commands()
   } else if(code_seen('G'))
   {
 	gcode_in_progress = (int)code_value();
+//	printf_P(_N("BEGIN G-CODE=%u\n"), gcode_in_progress);
     switch (gcode_in_progress)
     {
     case 0: // G0 -> G1
@@ -4646,6 +4648,7 @@ void process_commands()
 	default:
 		printf_P(PSTR("Unknown G code: %s \n"), cmdbuffer + bufindr + CMDHDRSIZE);
     }
+//	printf_P(_N("END G-CODE=%u\n"), gcode_in_progress);
 	gcode_in_progress = 0;
   } // end if(code_seen('G'))
 
@@ -4662,6 +4665,7 @@ void process_commands()
 	  } else
 	  {
 	  mcode_in_progress = (int)code_value();
+//	printf_P(_N("BEGIN M-CODE=%u\n"), mcode_in_progress);
 
     switch(mcode_in_progress)
     {
@@ -6969,6 +6973,7 @@ Sigma_Exit:
 	default: 
 		printf_P(PSTR("Unknown M code: %s \n"), cmdbuffer + bufindr + CMDHDRSIZE);
     }
+//	printf_P(_N("END M-CODE=%u\n"), mcode_in_progress);
 	mcode_in_progress = 0;
 	}
   } // end if(code_seen('M')) (end of M codes)
@@ -7136,10 +7141,10 @@ Sigma_Exit:
 		dcode_2130(); break;
 #endif //TMC2130
 
-#ifdef PAT9125
-	case 9125: // D9125 - PAT9125
+#ifdef FILAMENT_SENSOR
+	case 9125: // D9125 - FILAMENT_SENSOR
 		dcode_9125(); break;
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 
 	}
   }
@@ -9108,14 +9113,14 @@ void M600_load_filament()
 	//load_filament_time = millis();
 	KEEPALIVE_STATE(PAUSED_FOR_USER);
 
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	fsensor_autoload_check_start();
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 	while(!lcd_clicked())
 	{
 		manage_heater();
 		manage_inactivity(true);
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 		if (fsensor_check_autoload())
 		{
 			tone(BEEPER, 1000);
@@ -9123,16 +9128,16 @@ void M600_load_filament()
 			noTone(BEEPER);
 			break;
 		}
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 	}
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	fsensor_autoload_check_stop();
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 	KEEPALIVE_STATE(IN_HANDLER);
 
-#ifdef PAT9125
-	fsensor_oq_meassure_start();
-#endif //PAT9125
+#ifdef FILAMENT_SENSOR
+	fsensor_oq_meassure_start(70);
+#endif //FILAMENT_SENSOR
 
 	M600_load_filament_movements();
 
@@ -9140,7 +9145,7 @@ void M600_load_filament()
 	delay_keep_alive(50);
 	noTone(BEEPER);
 
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	fsensor_oq_meassure_stop();
 
 	if (!fsensor_oq_result())
@@ -9151,7 +9156,7 @@ void M600_load_filament()
 		if (disable)
 			fsensor_disable();
 	}
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 
 }
 

+ 1 - 1
Firmware/config.h

@@ -22,7 +22,7 @@
 //#define PAT9125_I2C_ADDR  0x79  //ID=HI
 //#define PAT9125_I2C_ADDR  0x73  //ID=NC
 #define PAT9125_XRES      0
-#define PAT9125_YRES      200
+#define PAT9125_YRES      240
 
 //SM4 configuration
 #define SM4_DEFDELAY      500       //default step delay [us]

+ 43 - 33
Firmware/fsensor.cpp

@@ -13,11 +13,11 @@
 #define FSENSOR_ERR_MAX         10  //filament sensor maximum error count for runout detection
 
 //Optical quality meassurement params
-#define FSENSOR_OQ_MAX_ES      5    //maximum error sum while loading (length 95mm = 144chunks)
-#define FSENSOR_OQ_MAX_EM      1    //maximum error counter value while loading
+#define FSENSOR_OQ_MAX_ES      6    //maximum error sum while loading (length ~64mm = 100chunks)
+#define FSENSOR_OQ_MAX_EM      2    //maximum error counter value while loading
 #define FSENSOR_OQ_MIN_YD      2    //minimum yd per chunk (applied to avg value)
 #define FSENSOR_OQ_MAX_YD      200  //maximum yd per chunk (applied to avg value)
-#define FSENSOR_OQ_MAX_PD      3    //maximum positive deviation (= yd_max/yd_avg)
+#define FSENSOR_OQ_MAX_PD      4    //maximum positive deviation (= yd_max/yd_avg)
 #define FSENSOR_OQ_MAX_ND      5    //maximum negative deviation (= yd_avg/yd_min)
 #define FSENSOR_OQ_MAX_SH      13   //maximum shutter value
 
@@ -51,14 +51,18 @@ bool fsensor_enabled = true;
 bool fsensor_watch_runout = true;
 //not responding - is set if any communication error occured durring initialization or readout
 bool fsensor_not_responding = false;
+//printing saved
+bool fsensor_printing_saved = false;
 
 //number of errors, updated in ISR
 uint8_t fsensor_err_cnt = 0;
-//variable for accumolating step count
+//variable for accumolating step count (updated callbacks from stepper and ISR)
 int16_t fsensor_st_cnt = 0;
+//last dy value from pat9125 sensor (used in ISR)
+uint8_t fsensor_dy_old = 0;
 
 //log flag: 0=log disabled, 1=log enabled
-uint8_t fsensor_log = 1;
+uint8_t fsensor_log = 0;
 
 ////////////////////////////////////////////////////////////////////////////////
 //filament autoload variables
@@ -85,7 +89,7 @@ bool fsensor_oq_meassure = false;
 //skip-chunk counter, for accurate meassurement is necesary to skip first chunk...
 uint8_t  fsensor_oq_skipchunk;
 //number of samples from start of meassurement
-uint8_t fsensor_oq_cnt;
+uint8_t fsensor_oq_samples;
 //sum of steps in positive direction movements
 uint16_t fsensor_oq_st_sum;
 //sum of deltas in positive direction movements
@@ -114,20 +118,12 @@ void fsensor_init(void)
 		fsensor_not_responding = true;
 	}
 	else
-	{
 		fsensor_not_responding = false;
-	}
-	puts_P(PSTR("FSensor "));
 	if (fsensor)
-	{
 		fsensor_enable();
-		puts_P(PSTR("ENABLED\n"));
-	}
 	else
-	{
 		fsensor_disable();
-		puts_P(PSTR("DISABLED\n"));
-	}
+	printf_P(PSTR("FSensor %S\n"), (fsensor_enabled?PSTR("ENABLED"):PSTR("DISABLED\n")));
 }
 
 bool fsensor_enable(void)
@@ -142,6 +138,7 @@ bool fsensor_enable(void)
 	fsensor_watch_runout = true;
 	fsensor_oq_meassure = false;
 	fsensor_err_cnt = 0;
+	fsensor_dy_old = 0;
 	eeprom_update_byte((uint8_t*)EEPROM_FSENSOR, fsensor_enabled?0x01:0x00); 
 	FSensorStateMenu = fsensor_enabled?1:0;
 
@@ -246,7 +243,7 @@ bool fsensor_check_autoload(void)
 	if (fsensor_autoload_c != fsensor_autoload_c_old)
 		printf_P(PSTR("fsensor_check_autoload dy=%d c=%d sum=%d\n"), dy, fsensor_autoload_c, fsensor_autoload_sum);
 //	if ((fsensor_autoload_c >= 15) && (fsensor_autoload_sum > 30))
-	if ((fsensor_autoload_c >= 10) && (fsensor_autoload_sum > 20))
+	if ((fsensor_autoload_c >= 10) && (fsensor_autoload_sum > 15))
 	{
 		puts_P(_N("fsensor_check_autoload = true !!!\n"));
 		return true;
@@ -254,11 +251,11 @@ bool fsensor_check_autoload(void)
 	return false;
 }
 
-void fsensor_oq_meassure_start(void)
+void fsensor_oq_meassure_start(uint8_t skip)
 {
 	printf_P(PSTR("fsensor_oq_meassure_start\n"));
-	fsensor_oq_skipchunk = 10;
-	fsensor_oq_cnt = 0;
+	fsensor_oq_skipchunk = skip;
+	fsensor_oq_samples = 0;
 	fsensor_oq_st_sum = 0;
 	fsensor_oq_yd_sum = 0;
 	fsensor_oq_er_sum = 0;
@@ -274,12 +271,12 @@ void fsensor_oq_meassure_start(void)
 
 void fsensor_oq_meassure_stop(void)
 {
-	printf_P(PSTR("fsensor_oq_meassure_stop, %hhu samples\n"), fsensor_oq_cnt);
+	printf_P(PSTR("fsensor_oq_meassure_stop, %hhu samples\n"), fsensor_oq_samples);
 	printf_P(_N(" st_sum=%u yd_sum=%u er_sum=%u er_max=%hhu\n"), fsensor_oq_st_sum, fsensor_oq_yd_sum, fsensor_oq_er_sum, fsensor_oq_er_max);
-	printf_P(_N(" yd_min=%u yd_max=%u yd_avg=%u sh_avg=%u\n"), fsensor_oq_yd_min, fsensor_oq_yd_max, (uint16_t)((uint32_t)fsensor_oq_yd_sum * FSENSOR_CHUNK_LEN / fsensor_oq_st_sum), (uint16_t)(fsensor_oq_sh_sum / fsensor_oq_cnt));
+	printf_P(_N(" yd_min=%u yd_max=%u yd_avg=%u sh_avg=%u\n"), fsensor_oq_yd_min, fsensor_oq_yd_max, (uint16_t)((uint32_t)fsensor_oq_yd_sum * FSENSOR_CHUNK_LEN / fsensor_oq_st_sum), (uint16_t)(fsensor_oq_sh_sum / fsensor_oq_samples));
 	fsensor_oq_meassure = false;
-	fsensor_err_cnt = 0;
 	fsensor_watch_runout = true;
+	fsensor_err_cnt = 0;
 }
 
 const char _OK[] PROGMEM = "OK";
@@ -299,7 +296,7 @@ bool fsensor_oq_result(void)
 	printf_P(_N(" yd_max = %u %S\n"), fsensor_oq_yd_max, (res_yd_max?_OK:_NG));
 	bool res_yd_min = (fsensor_oq_yd_min >= (yd_avg / FSENSOR_OQ_MAX_ND));
 	printf_P(_N(" yd_min = %u %S\n"), fsensor_oq_yd_min, (res_yd_min?_OK:_NG));
-	uint8_t sh_avg = (fsensor_oq_sh_sum / fsensor_oq_cnt);
+	uint8_t sh_avg = (fsensor_oq_sh_sum / fsensor_oq_samples);
 	bool res_sh_avg = (sh_avg <= FSENSOR_OQ_MAX_SH);
 	printf_P(_N(" sh_avg = %hhu %S\n"), sh_avg, (res_sh_avg?_OK:_NG));
 	bool res = res_er_sum && res_er_max && res_yd_avg && res_yd_max && res_yd_min && res_sh_avg;
@@ -329,15 +326,16 @@ ISR(PCINT2_vect)
 	{ //movement
 		if (st_cnt > 0) //positive movement
 		{
-			if (pat9125_y <= 0)
-			{
+			if (pat9125_y < 0)
 				fsensor_err_cnt++;
-			}
-			else
+			else if (pat9125_y > 0)
 			{
 				if (fsensor_err_cnt)
 					fsensor_err_cnt--;
 			}
+			else //(pat9125_y == 0)
+				if (fsensor_dy_old <= 0)
+					fsensor_err_cnt++;
 			if (fsensor_oq_meassure)
 			{
 				if (fsensor_oq_skipchunk)
@@ -349,10 +347,10 @@ ISR(PCINT2_vect)
 				{
 					if (st_cnt == FSENSOR_CHUNK_LEN)
 					{
-						if (fsensor_oq_yd_min > pat9125_y) fsensor_oq_yd_min = (fsensor_oq_yd_min + pat9125_y) / 2;
-						if (fsensor_oq_yd_max < pat9125_y) fsensor_oq_yd_max = (fsensor_oq_yd_max + pat9125_y) / 2;
+						if (pat9125_y > 0) if (fsensor_oq_yd_min > pat9125_y) fsensor_oq_yd_min = (fsensor_oq_yd_min + pat9125_y) / 2;
+						if (pat9125_y >= 0) if (fsensor_oq_yd_max < pat9125_y) fsensor_oq_yd_max = (fsensor_oq_yd_max + pat9125_y) / 2;
 					}
-					fsensor_oq_cnt++;
+					fsensor_oq_samples++;
 					fsensor_oq_st_sum += st_cnt;
 					fsensor_oq_yd_sum += pat9125_y;
 					if (fsensor_err_cnt > old_err_cnt)
@@ -375,11 +373,13 @@ ISR(PCINT2_vect)
 	if (fsensor_log)
 	{
 		printf_P(_N("FSENSOR cnt=%d dy=%d err=%hhu %S\n"), st_cnt, pat9125_y, fsensor_err_cnt, (fsensor_err_cnt > old_err_cnt)?_N("NG!"):_N("OK"));
-		printf_P(_N("FSENSOR st_sum=%u yd_sum=%u er_sum=%u er_max=%hhu\n"), fsensor_oq_st_sum, fsensor_oq_yd_sum, fsensor_oq_er_sum, fsensor_oq_er_max);
+		if (fsensor_oq_meassure) printf_P(_N("FSENSOR st_sum=%u yd_sum=%u er_sum=%u er_max=%hhu yd_max=%u\n"), fsensor_oq_st_sum, fsensor_oq_yd_sum, fsensor_oq_er_sum, fsensor_oq_er_max, fsensor_oq_yd_max);
 	}
 #endif //DEBUG_FSENSOR_LOG
 
+	fsensor_dy_old = pat9125_y;
 	pat9125_y = 0;
+
 	_lock = false;
 	return;
 }
@@ -408,10 +408,19 @@ void fsensor_st_block_chunk(block_t* bl, int cnt)
 
 void fsensor_update(void)
 {
-	if (fsensor_enabled && fsensor_watch_runout)
-		if (fsensor_err_cnt > FSENSOR_ERR_MAX)
+	if (fsensor_enabled)
+	{
+		if (fsensor_printing_saved)
+		{
+			fsensor_printing_saved = false;
+			fsensor_watch_runout = true;
+			fsensor_err_cnt = 0;
+			fsensor_restore_print_and_continue();
+		}
+		else if (fsensor_watch_runout && (fsensor_err_cnt > FSENSOR_ERR_MAX))
 		{
 			fsensor_stop_and_save_print();
+			fsensor_printing_saved = true;
 
 			fsensor_err_cnt = 0;
 
@@ -437,6 +446,7 @@ void fsensor_update(void)
 				fsensor_watch_runout = false;
 			}
 		}
+	}
 }
 
 void fsensor_setup_interrupt(void)

+ 1 - 1
Firmware/fsensor.h

@@ -39,7 +39,7 @@ extern void fsensor_autoload_check_stop(void);
 extern bool fsensor_check_autoload(void);
 
 //optical quality meassurement support
-extern void fsensor_oq_meassure_start(void);
+extern void fsensor_oq_meassure_start(uint8_t skip);
 extern void fsensor_oq_meassure_stop(void);
 extern bool fsensor_oq_result(void);
 

+ 8 - 2
Firmware/pat9125.c

@@ -99,6 +99,9 @@ uint8_t pat9125_rd_reg(uint8_t addr);
 void pat9125_wr_reg(uint8_t addr, uint8_t data);
 uint8_t pat9125_wr_reg_verify(uint8_t addr, uint8_t data);
 
+extern FILE _uartout;
+#define uartout (&_uartout)
+
 
 uint8_t pat9125_init(void)
 {
@@ -162,8 +165,11 @@ uint8_t pat9125_init(void)
 	pat9125_PID1 = pat9125_rd_reg(PAT9125_PID1);
 	pat9125_PID2 = pat9125_rd_reg(PAT9125_PID2);
 #endif //PAT9125_NEW_INIT
-	pat9125_wr_reg(PAT9125_RES_X, 0);
-	pat9125_wr_reg(PAT9125_RES_Y, 200);
+
+	pat9125_wr_reg(PAT9125_RES_X, PAT9125_XRES);
+	pat9125_wr_reg(PAT9125_RES_Y, PAT9125_YRES);
+	fprintf_P(uartout, PSTR("PAT9125_RES_X=%hhu\n"), pat9125_rd_reg(PAT9125_RES_X));
+	fprintf_P(uartout, PSTR("PAT9125_RES_Y=%hhu\n"), pat9125_rd_reg(PAT9125_RES_Y));
 	return 1;
 }
 

+ 16 - 16
Firmware/stepper.cpp

@@ -36,10 +36,10 @@
 #include "tmc2130.h"
 #endif //TMC2130
 
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 #include "fsensor.h"
 int fsensor_counter = 0; //counter for e-steps
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 
 #ifdef DEBUG_STACK_MONITOR
 uint16_t SP_min = 0x21FF;
@@ -469,10 +469,10 @@ FORCE_INLINE void stepper_next_block()
 	}
 #endif
 
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
     fsensor_counter = 0;
     fsensor_st_block_begin(current_block);
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
     // The busy flag is set by the plan_get_current_block() call.
     // current_block->busy = true;
     // Initializes the trapezoid generator from the current block. Called whenever a new
@@ -760,9 +760,9 @@ FORCE_INLINE void stepper_tick_lowres()
 #ifdef LIN_ADVANCE
       ++ e_steps;
 #else
-  #ifdef PAT9125
+  #ifdef FILAMENT_SENSOR
       ++ fsensor_counter;
-  #endif //PAT9125
+  #endif //FILAMENT_SENSOR
       WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN);
 #endif
     }
@@ -825,9 +825,9 @@ FORCE_INLINE void stepper_tick_highres()
 #ifdef LIN_ADVANCE
       ++ e_steps;
 #else
-  #ifdef PAT9125
+  #ifdef FILAMENT_SENSOR
       ++ fsensor_counter;
-  #endif //PAT9125
+  #endif //FILAMENT_SENSOR
       WRITE(E0_STEP_PIN, INVERT_E_STEP_PIN);
 #endif
     }
@@ -900,9 +900,9 @@ FORCE_INLINE void isr() {
         estep_loops = (e_steps & 0x0ff00) ? 4 : e_steps;
         if (step_loops < estep_loops)
           estep_loops = step_loops;
-    #ifdef PAT9125
+    #ifdef FILAMENT_SENSOR
         fsensor_counter += estep_loops;
-    #endif //PAT9125
+    #endif //FILAMENT_SENSOR
         do {
           WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN);
           -- e_steps;
@@ -1026,9 +1026,9 @@ FORCE_INLINE void isr() {
       if (eISR_Rate == 0) {
         // There is not enough time to fit even a single additional tick.
         // Tick all the extruder ticks now.
-    #ifdef PAT9125
+    #ifdef FILAMENT_SENSOR
         fsensor_counter += e_steps;
-    #endif //PAT9125
+    #endif //FILAMENT_SENSOR
         MSerial.checkRx(); // Check for serial chars.
         do {
           WRITE_NC(E0_STEP_PIN, !INVERT_E_STEP_PIN);
@@ -1048,21 +1048,21 @@ FORCE_INLINE void isr() {
 
     // If current block is finished, reset pointer
     if (step_events_completed.wide >= current_block->step_event_count.wide) {
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
       fsensor_st_block_chunk(current_block, fsensor_counter);
 	    fsensor_counter = 0;
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
 
       current_block = NULL;
       plan_discard_current_block();
     }
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
   	else if (fsensor_counter >= fsensor_chunk_len)
   	{
       fsensor_st_block_chunk(current_block, fsensor_counter);
   	  fsensor_counter = 0;
   	}
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
   }
 
 #ifdef TMC2130

+ 18 - 15
Firmware/ultralcd.cpp

@@ -23,10 +23,6 @@
 
 #include "SdFatUtil.h"
 
-#ifdef PAT9125
-#include "pat9125.h"
-#endif //PAT9125
-
 #ifdef FILAMENT_SENSOR
 #include "fsensor.h"
 #endif //FILAMENT_SENSOR
@@ -221,9 +217,9 @@ static void lcd_menu_extruder_info();
 static void lcd_menu_xyz_y_min();
 static void lcd_menu_xyz_skew();
 static void lcd_menu_xyz_offset();
-#if defined(TMC2130) || defined(PAT9125)
+#if defined(TMC2130) || defined(FILAMENT_SENSOR)
 static void lcd_menu_fails_stats();
-#endif //TMC2130 or PAT9125
+#endif //TMC2130 or FILAMENT_SENSOR
 
 void lcd_finishstatus();
 
@@ -2008,7 +2004,7 @@ static void lcd_menu_extruder_info()
 	fan_speed_RPM[0] = 60*fan_speed[0];
     fan_speed_RPM[1] = 60*fan_speed[1];
     
-#ifdef PAT9125
+#ifdef FILAMENT_SENSOR
 	// Display X and Y difference from Filament sensor    
     // Display Light intensity from Filament sensor
     //  Frame_Avg register represents the average brightness of all pixels within a frame (324 pixels). This
@@ -2017,7 +2013,7 @@ static void lcd_menu_extruder_info()
     //  Shutter register is an index of LASER shutter time. It is automatically controlled by the chip's internal
     //  auto-exposure algorithm. When the chip is tracking on a good reflection surface, the Shutter is small.
     //  When the chip is tracking on a poor reflection surface, the Shutter is large. Value ranges from 0 to 46.
-    pat9125_update();
+/*    pat9125_update();
 	lcd_printf_P(_N(
 	  ESC_H(0,0)
 	  "Nozzle FAN: %4d RPM\n"
@@ -2029,8 +2025,8 @@ static void lcd_menu_extruder_info()
 	 fan_speed_RPM[1],
 	 pat9125_x, pat9125_y,
 	 pat9125_b, pat9125_s
-	);
-#else //PAT9125
+	);*/
+#else //FILAMENT_SENSOR
 	printf_P(_N(
 	  ESC_H(0,0)
 	  "Nozzle FAN: %4d RPM\n"
@@ -2039,12 +2035,12 @@ static void lcd_menu_extruder_info()
 	 fan_speed_RPM[0],
 	 fan_speed_RPM[1]
 	);
-#endif //PAT9125
+#endif //FILAMENT_SENSOR
     
     menu_back_if_clicked();
 }
 
-#if defined(TMC2130) && defined(PAT9125)
+#if defined(TMC2130) && defined(FILAMENT_SENSOR)
 static void lcd_menu_fails_stats_total()
 {
 //01234567890123456789
@@ -2091,7 +2087,7 @@ static void lcd_menu_fails_stats()
 	MENU_ITEM_SUBMENU_P(PSTR("Total"), lcd_menu_fails_stats_total);
 	MENU_END();
 }
-#elif defined(PAT9125)
+#elif defined(FILAMENT_SENSOR)
 /**
  * @brief Print last print and total filament run outs
  *
@@ -2114,6 +2110,13 @@ static void lcd_menu_fails_stats()
     lcd_printf_P(PSTR(ESC_H(0,0) "Last print failures" ESC_H(1,1) "Filam. runouts  %-3d" ESC_H(0,2) "Total failures" ESC_H(1,3) "Filam. runouts  %-3d"), filamentLast, filamentTotal);
     menu_back_if_clicked();
 }
+#else
+static void lcd_menu_fails_stats()
+{
+	MENU_BEGIN();
+	MENU_ITEM_BACK_P(_T(MSG_MAIN));
+	MENU_END();
+}
 #endif //TMC2130
 
 
@@ -5955,7 +5958,7 @@ static void lcd_main_menu()
 	if ( ((fsensor_autoload_enabled == true) && (fsensor_enabled == true)))
         MENU_ITEM_SUBMENU_P(_i("AutoLoad filament"), lcd_menu_AutoLoadFilament);////MSG_AUTOLOAD_FILAMENT c=17 r=0
 	else
-      #endif //PAT9125
+      #endif //FILAMENT_SENSOR
 		MENU_ITEM_FUNCTION_P(_T(MSG_LOAD_FILAMENT), lcd_LoadFilament);
 	MENU_ITEM_SUBMENU_P(_T(MSG_UNLOAD_FILAMENT), lcd_unLoadFilament);
     #endif
@@ -5970,7 +5973,7 @@ static void lcd_main_menu()
 	  MENU_ITEM_SUBMENU_P(_i("Statistics  "), lcd_menu_statistics);////MSG_STATISTICS c=0 r=0
   }
     
-#if defined(TMC2130) || defined(PAT9125)
+#if defined(TMC2130) || defined(FILAMENT_SENSOR)
   MENU_ITEM_SUBMENU_P(PSTR("Fail stats"), lcd_menu_fails_stats);
 #endif
 

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

@@ -264,13 +264,6 @@
 #define Z_HIGH_POWER 200
 #endif
 
-/*------------------------------------
- PAT9125 SETTINGS
- *------------------------------------*/
-
-#define PAT9125_XRES			0
-#define PAT9125_YRES			255
-
 /*------------------------------------
  BED SETTINGS
  *------------------------------------*/

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

@@ -264,13 +264,6 @@
 #define Z_HIGH_POWER 200
 #endif
 
-/*------------------------------------
- PAT9125 SETTINGS
- *------------------------------------*/
-
-#define PAT9125_XRES			0
-#define PAT9125_YRES			255
-
 /*------------------------------------
  BED SETTINGS
  *------------------------------------*/

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

@@ -379,13 +379,6 @@
 #define DEFAULT_PWM_MOTOR_CURRENT_LOUD  {400, 750, 750} // {XY,Z,E}
 #endif
 
-/*------------------------------------
- PAT9125 SETTINGS
- *------------------------------------*/
-
-#define PAT9125_XRES			0
-#define PAT9125_YRES			255
-
 /*------------------------------------
  BED SETTINGS
  *------------------------------------*/