diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 19635c178..07ed8594c 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -289,6 +289,7 @@ extern float min_pos[3]; extern float max_pos[3]; extern bool axis_known_position[3]; extern int fanSpeed; +extern uint8_t newFanSpeed; extern int8_t lcd_change_fil_state; extern float default_retraction; @@ -480,6 +481,7 @@ void force_high_power_mode(bool start_high_power_section); bool gcode_M45(bool onlyZ, int8_t verbosity_level); void gcode_M114(); +void gcode_M123(); void gcode_M701(); #define UVLO !(PINE & (1<<4)) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 9da891d87..2a0df6bfd 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -270,6 +270,7 @@ float extruder_offset[NUM_EXTRUDER_OFFSETS][EXTRUDERS] = { uint8_t active_extruder = 0; int fanSpeed=0; +uint8_t newFanSpeed = 0; #ifdef FWRETRACT bool retracted[EXTRUDERS]={false @@ -3166,6 +3167,11 @@ void gcode_M114() SERIAL_PROTOCOLLN(""); } +void gcode_M123() +{ + printf_P(_N("E0:%d RPM PRN1:%d RPM E0@:%u PRN1@:%d\n"), 60*fan_speed[active_extruder], 60*fan_speed[1], newFanSpeed, fanSpeed); +} + //! extracted code to compute z_shift for M600 in case of filament change operation //! requested from fsensors. //! The function ensures, that the printhead lifts to at least 25mm above the heat bed @@ -3606,6 +3612,7 @@ extern uint8_t st_backlash_y; //!@n M115 - Capabilities string //!@n M117 - display message //!@n M119 - Output Endstop status to serial port +//!@n M123 - Tachometer value //!@n M126 - Solenoid Air Valve Open (BariCUDA support by jmil) //!@n M127 - Solenoid Air Valve Closed (BariCUDA vent to atmospheric pressure by jmil) //!@n M128 - EtoP Open (BariCUDA EtoP = electricity to air pressure transducer by jmil) @@ -6965,7 +6972,14 @@ Sigma_Exit: #endif break; //!@todo update for all axes, use for loop - + + /*! + ### M123 - Tachometer value M123: Tachometer value + */ + case 123: + gcode_M123(); + break; + #ifdef BLINKM /*! diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 3b38c25cc..29e5427c4 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -522,7 +522,7 @@ void setExtruderAutoFanState(uint8_t state) //the fan to either On or Off during certain tests/errors. fanState = state; - uint8_t newFanSpeed = 0; + newFanSpeed = 0; if (fanState & 0x01) { #ifdef EXTRUDER_ALTFAN_DETECT