|
@@ -3268,6 +3268,56 @@ static void gcode_PRUSA_SN()
|
|
|
puts_P(_N("Not in farm mode."));
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+static void gcode_PRUSA_BadRAMBoFanTest(){
|
|
|
+
|
|
|
+#if !defined(DEBUG_DISABLE_FANCHECK) && defined(FANCHECK) && defined(TACH_1) && TACH_1 >-1 && defined(IR_SENSOR)
|
|
|
+ fan_measuring = false;
|
|
|
+ unsigned long tach1max = 0;
|
|
|
+ uint8_t tach1cntr = 0;
|
|
|
+ for( ; tach1cntr < 100; ++tach1cntr){
|
|
|
+
|
|
|
+ SET_OUTPUT(TACH_1);
|
|
|
+ WRITE(TACH_1, LOW);
|
|
|
+ _delay(20);
|
|
|
+ unsigned long tachMeasure = _micros();
|
|
|
+ cli();
|
|
|
+ SET_INPUT(TACH_1);
|
|
|
+
|
|
|
+
|
|
|
+ while( READ(TACH_1) == 0 ) ;
|
|
|
+ sei();
|
|
|
+ tachMeasure = _micros() - tachMeasure;
|
|
|
+ if( tach1max < tachMeasure )
|
|
|
+ tach1max = tachMeasure;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ SERIAL_PROTOCOLPGM("RAMBo FAN ");
|
|
|
+ if( tach1max > 500 ){
|
|
|
+
|
|
|
+ SERIAL_PROTOCOLLNPGM("BAD");
|
|
|
+ } else {
|
|
|
+ SERIAL_PROTOCOLLNPGM("OK");
|
|
|
+ }
|
|
|
+
|
|
|
+ SET_INPUT(TACH_1);
|
|
|
+ WRITE(TACH_1, HIGH);
|
|
|
+#endif
|
|
|
+}
|
|
|
|
|
|
#ifdef BACKLASH_X
|
|
|
extern uint8_t st_backlash_x;
|
|
@@ -3625,7 +3675,9 @@ void process_commands()
|
|
|
else if (code_seen("PRN")) {
|
|
|
printf_P(_N("%d"), status_number);
|
|
|
|
|
|
- }else if (code_seen("FAN")) {
|
|
|
+ } else if( code_seen("FANPINTST") ){
|
|
|
+ gcode_PRUSA_BadRAMBoFanTest();
|
|
|
+ }else if (code_seen("FAN")) {
|
|
|
printf_P(_N("E0:%d RPM\nPRN0:%d RPM\n"), 60*fan_speed[0], 60*fan_speed[1]);
|
|
|
}else if (code_seen("fn")) {
|
|
|
if (farm_mode) {
|