Backports from MK3
- Remove attempted recovery from RX buffer full (just drop chars) - Use CRITICAL_SECTION in LCD menu sync - Remove M851 command and zprobe_zoffset (Use live-Z instead)
This commit is contained in:
parent
05a31ff2da
commit
bbf13db82a
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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("");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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; \
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
Loading…
Reference in New Issue