diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 31c863cc5aad..a1f2c03fd6cf 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -150,7 +150,7 @@ #endif // Name displayed in the LCD "Ready" message and Info menu -#define CUSTOM_MACHINE_NAME "UlTi Steel" +#define CUSTOM_MACHINE_NAME "UlTi Steel RE" // Printer's unique ID, used by some programs to differentiate between machines. // Choose your own or use a service like http://www.uuidgenerator.net/version4 @@ -422,7 +422,7 @@ * 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below. * 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below. */ -#define TEMP_SENSOR_0 1 +#define TEMP_SENSOR_0 13 #define TEMP_SENSOR_1 0 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_3 0 @@ -515,10 +515,10 @@ #define DEFAULT_Ki 3.12 #define DEFAULT_Kd 56.17 #else - // Ultimaker - #define DEFAULT_Kp 22.2 - #define DEFAULT_Ki 1.08 - #define DEFAULT_Kd 114 + //M303 E0 S180 C8 + #define DEFAULT_Kp 14.42 + #define DEFAULT_Ki 0.84 + #define DEFAULT_Kd 61.55 #endif // MakerGear @@ -571,10 +571,10 @@ #define DEFAULT_bedKp 32.27 #define DEFAULT_bedKi 6.45 #define DEFAULT_bedKd 107.67 -#else - #define DEFAULT_bedKp 97.56 - #define DEFAULT_bedKi 8.51 - #define DEFAULT_bedKd 279.73 +#else //M303 E-1 C8 S60 + #define DEFAULT_bedKp 46.80 + #define DEFAULT_bedKi 8.77 + #define DEFAULT_bedKd 166.47 #endif //120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+) @@ -602,7 +602,7 @@ * *** IT IS HIGHLY RECOMMENDED TO LEAVE THIS OPTION ENABLED! *** */ #define PREVENT_COLD_EXTRUSION -#define EXTRUDE_MINTEMP 185 +#define EXTRUDE_MINTEMP 170 /** * Prevent a single extrusion longer than EXTRUDE_MAXLENGTH. @@ -715,15 +715,14 @@ * TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE'] */ -#define X_DRIVER_TYPE TMC2208_STANDALONE -#define Y_DRIVER_TYPE TMC2208_STANDALONE -#define Z_DRIVER_TYPE TMC2208_STANDALONE +#define X_DRIVER_TYPE TMC2208 +#define Y_DRIVER_TYPE TMC2208 +#define Z_DRIVER_TYPE TMC2208 //#define X2_DRIVER_TYPE A4988 //#define Y2_DRIVER_TYPE A4988 //#define Z2_DRIVER_TYPE A4988 //#define Z3_DRIVER_TYPE A4988 -//#define Z4_DRIVER_TYPE A4988 -#define E0_DRIVER_TYPE TMC2208_STANDALONE +#define E0_DRIVER_TYPE TMC2208 //#define E1_DRIVER_TYPE A4988 //#define E2_DRIVER_TYPE A4988 //#define E3_DRIVER_TYPE A4988 @@ -775,7 +774,8 @@ * Override with M92 * X, Y, Z, E0 [, E1[, E2...]] */ -#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 1600, 148.50 } +//#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 1600, 148.50 } //default Ulti Extruder +#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 1600, 409.87 } //BMG EXTRUDER откалибровано формула=(значениевпрошивке * сколькодолжнобыловыйти) / скольковышло /** * Default Max Feed Rate (mm/s) @@ -1098,8 +1098,8 @@ // @section extruder // For direct drive extruder v9 set to true, for geared extruder set to false. -#define INVERT_E0_DIR false -#define INVERT_E1_DIR false +#define INVERT_E0_DIR true +#define INVERT_E1_DIR true #define INVERT_E2_DIR false #define INVERT_E3_DIR false #define INVERT_E4_DIR false @@ -1656,7 +1656,7 @@ * * :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek', 'el_gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ru':'Russian', 'sk':'Slovak', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)', 'test':'TEST' } */ -#define LCD_LANGUAGE en +#define LCD_LANGUAGE ru /** * LCD Character Set @@ -1808,7 +1808,7 @@ // // Note: Usually sold with a white PCB. // -#define REPRAP_DISCOUNT_SMART_CONTROLLER +//#define REPRAP_DISCOUNT_SMART_CONTROLLER // // Original RADDS LCD Display+Encoder+SDCardReader @@ -2015,12 +2015,11 @@ // FYSETC variant of the MINI12864 graphic controller with SD support // https://wiki.fysetc.com/Mini12864_Panel/ // -//#define FYSETC_MINI_12864_X_X // Type C/D/E/F. No tunable RGB Backlight by default -//#define FYSETC_MINI_12864_1_2 // Type C/D/E/F. Simple RGB Backlight (always on) -//#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight -//#define FYSETC_MINI_12864_2_1 // Type A/B. Neopixel RGB Backlight -//#define FYSETC_GENERIC_12864_1_1 // Larger display with basic ON/OFF backlight. - +//#define FYSETC_MINI_12864_X_X // Type C/D/E/F. No tunable RGB Backlight by default +//#define FYSETC_MINI_12864_1_2 // Type C/D/E/F. Simple RGB Backlight (always on) +//#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight +#define FYSETC_MINI_12864_2_1 // Type A/B. Neopixel RGB Backlight +#define DEFAULT_LCD_CONTRAST 255 изображение на экране пропадает. помогло сначала M250 C255 затем M150 P255 B255 R255 U255 W255 // // Factory display for Creality CR-10 // https://www.aliexpress.com/item/32833148327.html @@ -2234,10 +2233,10 @@ //#define RGBW_LED #if EITHER(RGB_LED, RGBW_LED) - //#define RGB_LED_R_PIN 34 - //#define RGB_LED_G_PIN 43 - //#define RGB_LED_B_PIN 35 - //#define RGB_LED_W_PIN -1 + #define RGB_LED_R_PIN 34 + #define RGB_LED_G_PIN 43 + #define RGB_LED_B_PIN 35 + #define RGB_LED_W_PIN -1 #endif // Support for Adafruit Neopixel LED driver diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 2be1c9b07eb1..5904def50095 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -439,15 +439,15 @@ /** * M355 Case Light on-off / brightness */ -//#define CASE_LIGHT_ENABLE +#define CASE_LIGHT_ENABLE #if ENABLED(CASE_LIGHT_ENABLE) - //#define CASE_LIGHT_PIN 4 // Override the default pin if needed + #define CASE_LIGHT_PIN P1_26 // включение подсветки кейса с экрана Override the default pin if needed //SKR 1.3 PIN Y+ SWITCH #define INVERT_CASE_LIGHT false // Set true if Case Light is ON when pin is LOW #define CASE_LIGHT_DEFAULT_ON true // Set default power-up state on - #define CASE_LIGHT_DEFAULT_BRIGHTNESS 105 // Set default power-up brightness (0-255, requires PWM pin) + #define CASE_LIGHT_DEFAULT_BRIGHTNESS 255 // Set default power-up brightness (0-255, requires PWM pin) //#define CASE_LIGHT_MAX_PWM 128 // Limit pwm - //#define CASE_LIGHT_MENU // Add Case Light options to the LCD menu - //#define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lighting. + #define CASE_LIGHT_MENU // Add Case Light options to the LCD menu + #define CASE_LIGHT_NO_BRIGHTNESS // Disable brightness control. Enable for non-PWM lighting. //#define CASE_LIGHT_USE_NEOPIXEL // Use Neopixel LED as case light, requires NEOPIXEL_LED. #if ENABLED(CASE_LIGHT_USE_NEOPIXEL) #define CASE_LIGHT_NEOPIXEL_COLOR { 255, 255, 255, 255 } // { Red, Green, Blue, White } @@ -728,7 +728,7 @@ //#define HOME_AFTER_DEACTIVATE // Require rehoming after steppers are deactivated // Minimum time that a segment needs to take if the buffer is emptied -#define DEFAULT_MINSEGMENTTIME 20000 // (ms) +#define DEFAULT_MINSEGMENTTIME 50000 // (ms) // If defined the movements slow down when the look ahead buffer is only half full #define SLOWDOWN @@ -943,23 +943,23 @@ * LED Control Menu * Add LED Control to the LCD menu */ - //#define LED_CONTROL_MENU + #define LED_CONTROL_MENU #if ENABLED(LED_CONTROL_MENU) #define LED_COLOR_PRESETS // Enable the Preset Color menu option #if ENABLED(LED_COLOR_PRESETS) #define LED_USER_PRESET_RED 255 // User defined RED value - #define LED_USER_PRESET_GREEN 128 // User defined GREEN value - #define LED_USER_PRESET_BLUE 0 // User defined BLUE value + #define LED_USER_PRESET_GREEN 255 // User defined GREEN value + #define LED_USER_PRESET_BLUE 255 // User defined BLUE value #define LED_USER_PRESET_WHITE 255 // User defined WHITE value #define LED_USER_PRESET_BRIGHTNESS 255 // User defined intensity - //#define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup + #define LED_USER_PRESET_STARTUP // Have the printer display the user preset color on startup #endif #endif #endif // HAS_LCD_MENU // Scroll a longer status message into view -//#define STATUS_MESSAGE_SCROLLING +#define STATUS_MESSAGE_SCROLLING // On the Info Screen, display XY with one decimal place when possible //#define LCD_DECIMAL_SMALL_XY @@ -968,7 +968,7 @@ #define LCD_TIMEOUT_TO_STATUS 60000 // Add an 'M73' G-code to set the current percentage -//#define LCD_SET_PROGRESS_MANUALLY +#define LCD_SET_PROGRESS_MANUALLY // Show the E position (filament used) during printing //#define LCD_SHOW_E_TOTAL @@ -1009,7 +1009,7 @@ // Since the FAT gets out of order with usage, SDCARD_SORT_ALPHA is recommended. #define SDCARD_RATHERRECENTFIRST - //#define SD_MENU_CONFIRM_START // Confirm the selected SD file before printing + #define SD_MENU_CONFIRM_START // Confirm the selected SD file before printing #define SD_SHOW_FILES_ON_MEDIA_INSERTED // https://github.com/ursoft/Marlin/issues/3 //#define MENU_ADDAUTOSTART // Add a menu option to run auto#.g files @@ -1083,7 +1083,7 @@ #endif // Enable this option to scroll long filenames in the SD card menu - //#define SCROLL_LONG_FILENAMES + #define SCROLL_LONG_FILENAMES // Leave the heaters on after Stop Print (not recommended!) //#define SD_ABORT_NO_COOLDOWN @@ -1481,11 +1481,7 @@ * See http://marlinfw.org/docs/features/lin_advance.html for full instructions. * Mention @Sebastianv650 on GitHub to alert the author of any issues. */ -#if (GITHUB_USER==URSOFT) - //#define LIN_ADVANCE -#else - //#define LIN_ADVANCE //conflicts with stealthChop (UltiSteel stock) mode of TMC2208 (E stops extruding at ~10 layer) -#endif +#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) //#define EXTRA_LIN_ADVANCE_K // Enable for second linear advance constants #define LIN_ADVANCE_K 0 // Unit: mm compression per 1mm/s extruder speed @@ -1651,7 +1647,7 @@ * * Override the default value based on the driver type set in Configuration.h. */ -#define MINIMUM_STEPPER_PULSE 2 +#define MINIMUM_STEPPER_PULSE 2 // если не работает 2, ставим 4 Если выше включили Linear Advance, необходимо также изменить значение MINIMUM_STEPPER_PULSE для работоспособности экструдера /** * Maximum stepping rate (in Hz) the stepper driver allows @@ -1681,7 +1677,7 @@ // The number of linear motions that can be in the plan at any give time. // THE BLOCK_BUFFER_SIZE NEEDS TO BE A POWER OF 2 (e.g. 8, 16, 32) because shifts and ors are used to do the ring-buffering. #if ENABLED(SDSUPPORT) - #define BLOCK_BUFFER_SIZE 64 // SD,LCD,Buttons take more memory, block buffer needs to be smaller + #define BLOCK_BUFFER_SIZE 32 // SD,LCD,Buttons take more memory, block buffer needs to be smaller #else #define BLOCK_BUFFER_SIZE 16 // maximize block buffer #endif @@ -1690,7 +1686,7 @@ // The ASCII buffer for serial input #define MAX_CMD_SIZE 96 -#define BUFSIZE 4 +#define BUFSIZE 32 // Transmission to Host Buffer Size // To save 386 bytes of PROGMEM (and TX_BUFFER_SIZE+3 bytes of RAM) set to 0. @@ -1699,7 +1695,7 @@ // For debug-echo: 128 bytes for the optimal speed. // Other output doesn't need to be that speedy. // :[0, 2, 4, 8, 16, 32, 64, 128, 256] -#define TX_BUFFER_SIZE 0 +#define TX_BUFFER_SIZE 32 // Host Receive Buffer Size // Without XON/XOFF flow control (see SERIAL_XON_XOFF below) 32 bytes should be enough. @@ -1994,14 +1990,14 @@ */ #if HAS_TRINAMIC - #define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current - #define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256 + #define HOLD_MULTIPLIER 0.6 // Scales down the holding current from run current Множитель тока в режиме удержания ШД + #define INTERPOLATE true // Interpolate X/Y/Z_MICROSTEPS to 256 Включает или выключает интерполяцию по ВСЕМ осям #if AXIS_IS_TMC(X) - #define X_CURRENT 800 // (mA) RMS current. Multiply by 1.414 for peak current. + #define X_CURRENT 890 // (mA) RMS current. Multiply by 1.414 for peak current. сюда пишем наш ток Irms, который мы посчитали ранее #define X_CURRENT_HOME X_CURRENT // (mA) RMS current for sensorless homing - #define X_MICROSTEPS 16 // 0..256 - #define X_RSENSE 0.11 + #define X_MICROSTEPS 16 // 0..256 количество микрошагов, поддерживается нативно до 256, не забываем изменить число шагов на мм + #define X_RSENSE 0.11 // Если на Ваших драйверах резистор Rsense отличается от стандартного R110, сюда вписываем номинал #define X_CHAIN_POS -1 // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ... #endif @@ -2014,7 +2010,7 @@ #endif #if AXIS_IS_TMC(Y) - #define Y_CURRENT 800 + #define Y_CURRENT 890 #define Y_CURRENT_HOME Y_CURRENT #define Y_MICROSTEPS 16 #define Y_RSENSE 0.11 @@ -2030,7 +2026,7 @@ #endif #if AXIS_IS_TMC(Z) - #define Z_CURRENT 800 + #define Z_CURRENT 550 #define Z_CURRENT_HOME Z_CURRENT #define Z_MICROSTEPS 16 #define Z_RSENSE 0.11 @@ -2062,14 +2058,14 @@ #endif #if AXIS_IS_TMC(E0) - #define E0_CURRENT 800 + #define E0_CURRENT 550 #define E0_MICROSTEPS 16 #define E0_RSENSE 0.11 #define E0_CHAIN_POS -1 #endif #if AXIS_IS_TMC(E1) - #define E1_CURRENT 800 + #define E1_CURRENT 550 #define E1_MICROSTEPS 16 #define E1_RSENSE 0.11 #define E1_CHAIN_POS -1 @@ -2220,7 +2216,7 @@ * M912 - Clear stepper driver overtemperature pre-warn condition flag. * M122 - Report driver parameters (Requires TMC_DEBUG) */ - //#define MONITOR_DRIVER_STATUS + #define MONITOR_DRIVER_STATUS #if ENABLED(MONITOR_DRIVER_STATUS) #define CURRENT_STEP_DOWN 50 // [mA] @@ -2235,17 +2231,16 @@ * STEALTHCHOP_(XY|Z|E) must be enabled to use HYBRID_THRESHOLD. * M913 X/Y/Z/E to live tune the setting */ - //#define HYBRID_THRESHOLD + #define HYBRID_THRESHOLD - #define X_HYBRID_THRESHOLD 100 // [mm/s] + #define X_HYBRID_THRESHOLD 120 // [mm/s] #define X2_HYBRID_THRESHOLD 100 - #define Y_HYBRID_THRESHOLD 100 + #define Y_HYBRID_THRESHOLD 120 #define Y2_HYBRID_THRESHOLD 100 - #define Z_HYBRID_THRESHOLD 3 + #define Z_HYBRID_THRESHOLD 10 #define Z2_HYBRID_THRESHOLD 3 #define Z3_HYBRID_THRESHOLD 3 - #define Z4_HYBRID_THRESHOLD 3 - #define E0_HYBRID_THRESHOLD 30 + #define E0_HYBRID_THRESHOLD 15 #define E1_HYBRID_THRESHOLD 30 #define E2_HYBRID_THRESHOLD 30 #define E3_HYBRID_THRESHOLD 30 @@ -2307,7 +2302,7 @@ * Enable M122 debugging command for TMC stepper drivers. * M122 S0/1 will enable continous reporting. */ - //#define TMC_DEBUG + #define TMC_DEBUG /** * You can set your own advanced settings by filling in predefined functions. diff --git a/Marlin/src/feature/pause.cpp b/Marlin/src/feature/pause.cpp index 2a423d786189..10a1ba6a96f6 100644 --- a/Marlin/src/feature/pause.cpp +++ b/Marlin/src/feature/pause.cpp @@ -422,7 +422,7 @@ bool pause_print(const float &retract, const xyz_pos_t &park_point, const float } #endif - //return false; // unable to reach safe temperature, but need pause + return false; // unable to reach safe temperature } // Indicate that the printer is paused diff --git a/Marlin/src/gcode/sdcard/M21_M22.cpp b/Marlin/src/gcode/sdcard/M21_M22.cpp index 6ec1ef2bff32..9362db0808e9 100644 --- a/Marlin/src/gcode/sdcard/M21_M22.cpp +++ b/Marlin/src/gcode/sdcard/M21_M22.cpp @@ -26,7 +26,6 @@ #include "../gcode.h" #include "../../sd/cardreader.h" -#include "../../lcd/ultralcd.h" /** * M21: Init SD Card @@ -36,14 +35,6 @@ void GcodeSuite::M21() { card.mount(); } /** * M22: Release SD Card */ -void GcodeSuite::M22() { - if(card.isPrinting()) { - SERIAL_ERROR_MSG("No M22 while print"); - } else { - card.release(); - void menu_media(); - if(MarlinUI::currentScreen == menu_media) MarlinUI::return_to_status(); - } -} +void GcodeSuite::M22() { card.release(); } #endif // SDSUPPORT diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp index d74629c19aca..d8131dbe5759 100644 --- a/Marlin/src/lcd/menu/menu_main.cpp +++ b/Marlin/src/lcd/menu/menu_main.cpp @@ -90,17 +90,6 @@ void menu_main() { #endif ; - #if ENABLED(ADVANCED_PAUSE_FEATURE) - #if E_STEPPERS == 1 && DISABLED(FILAMENT_LOAD_UNLOAD_GCODES) - if (thermalManager.targetHotEnoughToExtrude(active_extruder)) - GCODES_ITEM(MSG_FILAMENTCHANGE, PSTR("M600 B0")); - else - SUBMENU(MSG_FILAMENTCHANGE, []{ _menu_temp_filament_op(PAUSE_MODE_CHANGE_FILAMENT, 0); }); - #else - SUBMENU(MSG_FILAMENTCHANGE, menu_change_filament); - #endif - #endif - if (busy) { #if MACHINE_CAN_PAUSE ACTION_ITEM(MSG_PAUSE_PRINT, ui.pause_print); @@ -183,6 +172,17 @@ void menu_main() { #endif #endif + #if ENABLED(ADVANCED_PAUSE_FEATURE) + #if E_STEPPERS == 1 && DISABLED(FILAMENT_LOAD_UNLOAD_GCODES) + if (thermalManager.targetHotEnoughToExtrude(active_extruder)) + GCODES_ITEM(MSG_FILAMENTCHANGE, PSTR("M600 B0")); + else + SUBMENU(MSG_FILAMENTCHANGE, []{ _menu_temp_filament_op(PAUSE_MODE_CHANGE_FILAMENT, 0); }); + #else + SUBMENU(MSG_FILAMENTCHANGE, menu_change_filament); + #endif + #endif + #if ENABLED(LCD_INFO_MENU) SUBMENU(MSG_INFO_MENU, menu_info); #endif diff --git a/SyncOnboard/Program.cs b/SyncOnboard/Program.cs index f90f6d94a118..4c1614d1f8f9 100644 --- a/SyncOnboard/Program.cs +++ b/SyncOnboard/Program.cs @@ -85,7 +85,7 @@ private static void EnsureDestination() { if (client.DefaultRequestHeaders.Count() == 0) client.DefaultRequestHeaders.Add("X-Api-Key", OctoprintApiKey); //Octoprint M22 - Console.Write($"EnsureDestination: {server} M22:"); + Console.Write($"EnsureDestination: {server} M22..."); do { var content = new StringContent("{\"command\":\"release\"}", Encoding.UTF8, "application/json"); var response = client.PostAsync(server, content); @@ -103,21 +103,15 @@ private static void EnsureDestination() { } } // Local COM port M22 - Console.Write($"EnsureDestination: {ComPort} M22:"); - using (var mySerialPort = new SerialPort(ComPort, 250000, Parity.None, 8, StopBits.One)) { - mySerialPort.ReadTimeout = 1000; - mySerialPort.DtrEnable = true; + Console.Write($"EnsureDestination: {ComPort} M22"); + using (var mySerialPort = new SerialPort(ComPort, 250000)) { mySerialPort.Open(); + mySerialPort.ReadTimeout = 1000; byte[] data = Encoding.ASCII.GetBytes("M22\r\n"); var before = mySerialPort.ReadExisting(); mySerialPort.Write(data, 0, data.Length); - var after = mySerialPort.ReadExisting().Replace("\n", ""); - if (before.Length + after.Length > 0) { - Console.ForegroundColor = (after == "ok") ? ConsoleColor.Green : ConsoleColor.Red; - Console.Write($".{before}.{after}"); - Console.ResetColor(); - } - Console.WriteLine($". Pause 5 sec..."); + var after = mySerialPort.ReadExisting(); + Console.WriteLine($".{before}.{after} OK. Pause 5 sec..."); Thread.Sleep(5000); } } catch(Exception ex) {