diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 1340d732f..c99cc0324 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -10,7 +10,7 @@ // Firmware version #define FW_version "3.1.0" -#define FW_local_variant 5 +#define FW_local_variant 6 #define FW_report_version FW_version " r" STR(FW_local_variant) #define FW_PRUSA3D_MAGIC "PRUSA3DFW" @@ -467,7 +467,7 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of //=========================================================================== // Custom M code points -#define CUSTOM_M_CODES +//#define CUSTOM_M_CODES #ifdef CUSTOM_M_CODES #define CUSTOM_M_CODE_SET_Z_PROBE_OFFSET 851 #define Z_PROBE_OFFSET_RANGE_MIN -15 diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 5431a550f..7741df895 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1199,8 +1199,7 @@ void setup() card.initsd(); if (eeprom_read_dword((uint32_t*)(EEPROM_TOP - 4)) == 0x0ffffffff && - eeprom_read_dword((uint32_t*)(EEPROM_TOP - 8)) == 0x0ffffffff && - eeprom_read_dword((uint32_t*)(EEPROM_TOP - 12)) == 0x0ffffffff) { + eeprom_read_dword((uint32_t*)(EEPROM_TOP - 8)) == 0x0ffffffff) { // Maiden startup. The firmware has been loaded and first started on a virgin RAMBo board, // where all the EEPROM entries are set to 0x0ff. // Once a firmware boots up, it forces at least a language selection, which changes @@ -1468,21 +1467,12 @@ void get_command() if (!cmdqueue_could_enqueue_back(MAX_CMD_SIZE - 1)) return; - bool rx_buffer_full = false; //flag that serial rx buffer is full - while (MYSERIAL.available() > 0) { - if (MYSERIAL.available() == RX_BUFFER_SIZE - 1) { //compare number of chars buffered in rx buffer with rx buffer size - SERIAL_ECHOLNPGM("Full RX Buffer"); //if buffer was full, there is danger that reading of last gcode will not be completed - rx_buffer_full = true; //sets flag that buffer was full - } + char serial_char = MYSERIAL.read(); - if (selectedSerialPort == 1) { - selectedSerialPort = 0; - MYSERIAL.write(serial_char); - selectedSerialPort = 1; - } - TimeSent = millis(); - TimeNow = millis(); + + TimeSent = millis(); + TimeNow = millis(); if (serial_char < 0) // Ignore extended ASCII characters. These characters have no meaning in the G-code apart from the file names @@ -1636,13 +1626,6 @@ void get_command() } } - //add comment - if (rx_buffer_full == true && serial_count > 0) { //if rx buffer was full and string was not properly terminated - rx_buffer_full = false; - bufindw = bufindw - serial_count; //adjust tail of the buffer to prepare buffer for writing new command - serial_count = 0; - } - #ifdef SDSUPPORT if(!card.sdprinting || serial_count!=0){ // If there is a half filled buffer from serial line, wait until return before @@ -5559,8 +5542,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp { zprobe_zoffset = -value; // compare w/ line 278 of ConfigurationStore.cpp SERIAL_ECHO_START; - SERIAL_ECHOLNRPGM(CAT4(MSG_ZPROBE_ZOFFSET, " ", MSG_OK,PSTR(""))); - SERIAL_PROTOCOLLN(""); + SERIAL_ECHOLN(CAT4(MSG_ZPROBE_ZOFFSET, " ", MSG_OK,PSTR(""))); } else { @@ -5576,7 +5558,7 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp else { SERIAL_ECHO_START; - SERIAL_ECHOLNRPGM(CAT2(MSG_ZPROBE_ZOFFSET, PSTR(" : "))); + SERIAL_ECHO(CAT2(MSG_ZPROBE_ZOFFSET, PSTR(" : "))); SERIAL_ECHO(-zprobe_zoffset); SERIAL_PROTOCOLLN(""); } diff --git a/Firmware/language_all.cpp b/Firmware/language_all.cpp index fa36ef1cf..3f79d0599 100644 --- a/Firmware/language_all.cpp +++ b/Firmware/language_all.cpp @@ -3077,7 +3077,7 @@ const char * const MSG_SILENT_MODE_ON_LANG_TABLE[LANG_NUM] PROGMEM = { MSG_SILENT_MODE_ON_DE }; -const char MSG_SKEW_CORRECTION_EN[] PROGMEM = "Very small XY skew. Disable skew correction?"; +const char MSG_SKEW_CORRECTION_EN[] PROGMEM = "Very little skew detected. Disable correction?"; const char * const MSG_SKEW_CORRECTION_LANG_TABLE[1] PROGMEM = { MSG_SKEW_CORRECTION_EN }; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e4b540020..d65e5f4fc 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -364,10 +364,13 @@ uint8_t lcdDrawUpdate = 2; /* Set to none-zero when the LCD nee // float raw_Ki, raw_Kd; #endif -static void lcd_goto_menu(menuFunc_t menu, const uint32_t encoder = 0, const bool feedback = true, bool reset_menu_state = true) { +static void lcd_goto_menu(menuFunc_t menu, const uint32_t encoder = 0, const bool feedback = true, bool reset_menu_state = true) +{ + CRITICAL_SECTION_START if (currentMenu != menu) { currentMenu = menu; encoderPosition = encoder; + CRITICAL_SECTION_END if (reset_menu_state) { // Resets the global shared C union. // This ensures, that the menu entered will find out, that it shall initialize itself. @@ -379,6 +382,8 @@ static void lcd_goto_menu(menuFunc_t menu, const uint32_t encoder = 0, const boo #if defined(LCD_PROGRESS_BAR) && defined(SDSUPPORT) lcd_set_custom_characters(menu == lcd_status_screen); #endif + } else { + CRITICAL_SECTION_END } } @@ -5189,8 +5194,10 @@ void lcd_sdcard_menu() } \ static void menu_action_setting_edit_ ## _name (const char* pstr, _type* ptr, _type minValue, _type maxValue) \ { \ + CRITICAL_SECTION_START \ menuData.editMenuParentState.prevMenu = currentMenu; \ menuData.editMenuParentState.prevEncoderPosition = encoderPosition; \ + CRITICAL_SECTION_END \ \ lcdDrawUpdate = 2; \ menuData.editMenuParentState.editLabel = pstr; \ diff --git a/platformio.ini b/platformio.ini index 75638ef9e..b99eb102c 100644 --- a/platformio.ini +++ b/platformio.ini @@ -21,7 +21,7 @@ [platformio] src_dir = ./Firmware lib_dir = /opt/arduino-1.8.5/libraries -envs_dir = ./pbuild +build_dir = ./pbuild env_default = Prusa3D [env:Prusa3D]