Merge nightly patches

This commit is contained in:
Scott Lahteine 2020-02-24 06:12:15 -06:00
commit 089cc68a04
53 changed files with 173 additions and 130 deletions

View File

@ -158,7 +158,7 @@
|| AXIS_DRIVER_TYPE(A,TMC5160) )
#define _OR_EAH(N,T) || AXIS_HAS_##T(E##N)
#define E_AXIS_HAS(T) (0 RREPEAT2(E_STEPPERS, _OR_EAH, T))
#define E_AXIS_HAS(T) (0 _OR_EAH(0,T) _OR_EAH(1,T) _OR_EAH(2,T) _OR_EAH(3,T) _OR_EAH(4,T) _OR_EAH(5,T) _OR_EAH(6,T) _OR_EAH(7,T))
#define ANY_AXIS_HAS(T) ( AXIS_HAS_##T(X) || AXIS_HAS_##T(X2) \
|| AXIS_HAS_##T(Y) || AXIS_HAS_##T(Y2) \

View File

@ -35,17 +35,17 @@
Babystep babystep;
volatile int16_t Babystep::steps[BS_TODO_AXIS(Z_AXIS) + 1];
volatile int16_t Babystep::steps[BS_AXIS_IND(Z_AXIS) + 1];
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
int16_t Babystep::axis_total[BS_TOTAL_AXIS(Z_AXIS) + 1];
int16_t Babystep::axis_total[BS_TOTAL_IND(Z_AXIS) + 1];
#endif
int16_t Babystep::accum;
void Babystep::step_axis(const AxisEnum axis) {
const int16_t curTodo = steps[BS_TODO_AXIS(axis)]; // get rid of volatile for performance
const int16_t curTodo = steps[BS_AXIS_IND(axis)]; // get rid of volatile for performance
if (curTodo) {
stepper.do_babystep((AxisEnum)axis, curTodo > 0);
if (curTodo > 0) steps[BS_TODO_AXIS(axis)]--; else steps[BS_TODO_AXIS(axis)]++;
if (curTodo > 0) steps[BS_AXIS_IND(axis)]--; else steps[BS_AXIS_IND(axis)]++;
}
}
@ -66,7 +66,7 @@ void Babystep::add_steps(const AxisEnum axis, const int16_t distance) {
accum += distance; // Count up babysteps for the UI
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
axis_total[BS_TOTAL_AXIS(axis)] += distance;
axis_total[BS_TOTAL_IND(axis)] += distance;
#endif
#if ENABLED(BABYSTEP_ALWAYS_AVAILABLE)
@ -112,7 +112,7 @@ void Babystep::add_steps(const AxisEnum axis, const int16_t distance) {
#else
BSA_ENABLE(Z_AXIS);
#endif
steps[BS_TODO_AXIS(axis)] += distance;
steps[BS_AXIS_IND(axis)] += distance;
#endif
#if ENABLED(BABYSTEP_ALWAYS_AVAILABLE)
gcode.reset_stepper_timeout();

View File

@ -32,32 +32,34 @@
#endif
#if IS_CORE || EITHER(BABYSTEP_XY, I2C_POSITION_ENCODERS)
#define BS_TODO_AXIS(A) A
#define BS_AXIS_IND(A) A
#define BS_AXIS(I) AxisEnum(I)
#else
#define BS_TODO_AXIS(A) 0
#define BS_AXIS_IND(A) 0
#define BS_AXIS(I) Z_AXIS
#endif
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
#if ENABLED(BABYSTEP_XY)
#define BS_TOTAL_AXIS(A) A
#define BS_TOTAL_IND(A) A
#else
#define BS_TOTAL_AXIS(A) 0
#define BS_TOTAL_IND(A) 0
#endif
#endif
class Babystep {
public:
static volatile int16_t steps[BS_TODO_AXIS(Z_AXIS) + 1];
static volatile int16_t steps[BS_AXIS_IND(Z_AXIS) + 1];
static int16_t accum; // Total babysteps in current edit
#if ENABLED(BABYSTEP_DISPLAY_TOTAL)
static int16_t axis_total[BS_TOTAL_AXIS(Z_AXIS) + 1]; // Total babysteps since G28
static int16_t axis_total[BS_TOTAL_IND(Z_AXIS) + 1]; // Total babysteps since G28
static inline void reset_total(const AxisEnum axis) {
if (true
#if ENABLED(BABYSTEP_XY)
&& axis == Z_AXIS
#endif
) axis_total[BS_TOTAL_AXIS(axis)] = 0;
) axis_total[BS_TOTAL_IND(axis)] = 0;
}
#endif
@ -65,7 +67,7 @@ public:
static void add_mm(const AxisEnum axis, const float &mm);
static inline bool has_steps() {
return steps[BS_TODO_AXIS(X_AXIS)] || steps[BS_TODO_AXIS(Y_AXIS)] || steps[BS_TODO_AXIS(Z_AXIS)];
return steps[BS_AXIS_IND(X_AXIS)] || steps[BS_AXIS_IND(Y_AXIS)] || steps[BS_AXIS_IND(Z_AXIS)];
}
//
@ -73,7 +75,7 @@ public:
// apply accumulated babysteps to the axes.
//
static inline void task() {
LOOP_LE_N(axis, BS_TODO_AXIS(Z_AXIS)) step_axis((AxisEnum)axis);
LOOP_LE_N(i, BS_AXIS_IND(Z_AXIS)) step_axis(BS_AXIS(i));
}
private:

View File

@ -35,7 +35,7 @@ void GcodeSuite::G92() {
bool sync_E = false, sync_XYZ = false;
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
const uint8_t subcode_G92 = parser.subcode;
#else
constexpr uint8_t subcode_G92 = 0;

View File

@ -131,7 +131,7 @@ void GcodeSuite::M290() {
#else
PSTR("Babystep Z")
#endif
, babystep.axis_total[BS_TODO_AXIS(Z_AXIS)]
, babystep.axis_total[BS_AXIS_IND(Z_AXIS)]
);
}
#endif

View File

@ -51,13 +51,13 @@ char *GCodeParser::command_ptr,
char GCodeParser::command_letter;
int GCodeParser::codenum;
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
uint8_t GCodeParser::subcode;
#endif
#if ENABLED(GCODE_MOTION_MODES)
int16_t GCodeParser::motion_mode_codenum = -1;
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
uint8_t GCodeParser::motion_mode_subcode;
#endif
#endif
@ -83,7 +83,7 @@ void GCodeParser::reset() {
string_arg = nullptr; // No whole line argument
command_letter = '?'; // No command letter
codenum = 0; // No command code
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
subcode = 0; // No command sub-code
#endif
#if ENABLED(FASTER_GCODE_PARSER)
@ -187,12 +187,12 @@ void GCodeParser::parse(char *p) {
do { codenum *= 10, codenum += *p++ - '0'; } while (NUMERIC(*p));
// Allow for decimal point in command
#if USE_GCODE_SUBCODES
if (*p == '.') {
p++;
while (NUMERIC(*p))
subcode *= 10, subcode += *p++ - '0';
}
#if ENABLED(USE_GCODE_SUBCODES)
if (*p == '.') {
p++;
while (NUMERIC(*p))
subcode *= 10, subcode += *p++ - '0';
}
#endif
// Skip all spaces to get to the first argument, or nul
@ -206,7 +206,7 @@ void GCodeParser::parse(char *p) {
)
) {
motion_mode_codenum = codenum;
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
motion_mode_subcode = subcode;
#endif
}
@ -225,7 +225,7 @@ void GCodeParser::parse(char *p) {
if (motion_mode_codenum < 0) return;
command_letter = 'G';
codenum = motion_mode_codenum;
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
subcode = motion_mode_subcode;
#endif
p--; // Back up one character to use the current parameter

View File

@ -85,13 +85,13 @@ public:
*string_arg, // string of command line
command_letter; // G, M, or T
static int codenum; // 123
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
static uint8_t subcode; // .1
#endif
#if ENABLED(GCODE_MOTION_MODES)
static int16_t motion_mode_codenum;
#if USE_GCODE_SUBCODES
#if ENABLED(USE_GCODE_SUBCODES)
static uint8_t motion_mode_subcode;
#endif
FORCE_INLINE static void cancel_motion_mode() { motion_mode_codenum = -1; }

View File

@ -526,42 +526,38 @@ void GCodeQueue::get_serial_commands() {
while (length < BUFSIZE && !card_eof) {
const int16_t n = card.get();
card_eof = card.eof();
if (n < 0) { SERIAL_ERROR_MSG(MSG_SD_ERR_READ); continue; }
const char sd_char = (char)n;
if (card_eof || n < 0 || sd_char == '\n' || sd_char == '\r') {
if (sd_char == '\n' || sd_char == '\r' || card_eof) {
// Reset stream state, terminate the buffer, and commit a non-empty command
if (!process_line_done(sd_input_state, command_buffer[index_w], sd_count)) {
_commit_command(false); // Can handle last line missing a newline terminator
#if ENABLED(POWER_LOSS_RECOVERY)
recovery.cmd_sdpos = card.getIndex(); // Prime for the next _commit_command
#endif
}
if (card_eof) {
card.printingHasFinished();
card.fileHasFinished(); // Handle end of file reached
if (IS_SD_PRINTING())
sd_count = 0; // If a sub-file was printing, continue from call point
else {
SERIAL_ECHOLNPGM(MSG_FILE_PRINTED);
if (!IS_SD_PRINTING()) { // Was it the main job file?
SERIAL_ECHOLNPGM(MSG_FILE_PRINTED); // Tell the host the file is printed.
#if ENABLED(PRINTER_EVENT_LEDS)
printerEventLEDs.onPrintCompleted();
printerEventLEDs.onPrintCompleted(); // Change LED color for Print Completed
#if HAS_RESUME_CONTINUE
enqueue_now_P(PSTR("M0 S"
enqueue_now_P(PSTR("M0 S" // Display "Click to Continue..."
#if HAS_LCD_MENU
"1800"
"1800" // ...for 30 minutes with LCD
#else
"60"
"60" // ...for 1 minute with no LCD
#endif
));
#endif
#endif
}
}
else if (n < 0)
SERIAL_ERROR_MSG(MSG_SD_ERR_READ);
// Terminate the buffer, reset the input state, continue for empty line
if (process_line_done(sd_input_state, command_buffer[index_w], sd_count))
continue;
_commit_command(false);
#if ENABLED(POWER_LOSS_RECOVERY)
recovery.cmd_sdpos = card.getIndex(); // Prime for the next _commit_command
#endif
}
else
process_stream_char(sd_char, sd_input_state, command_buffer[index_w], sd_count);

View File

@ -361,6 +361,15 @@
#define HAS_ADC_BUTTONS ENABLED(ADC_KEYPAD)
#define HAS_DGUS_LCD ANY(DGUS_LCD_UI_ORIGIN, DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_HIPRECY)
#if HAS_GRAPHICAL_LCD
#ifndef LCD_PIXEL_WIDTH
#define LCD_PIXEL_WIDTH 128
#endif
#ifndef LCD_PIXEL_HEIGHT
#define LCD_PIXEL_HEIGHT 64
#endif
#endif
/**
* Extruders have some combination of stepper motors and hotends
* so we separate these concepts into the defines:

View File

@ -2110,7 +2110,9 @@
#endif
// Add commands that need sub-codes to this list
#define USE_GCODE_SUBCODES ANY(G38_PROBE_TARGET, CNC_COORDINATE_SYSTEMS, POWER_LOSS_RECOVERY)
#if ANY(G38_PROBE_TARGET, CNC_COORDINATE_SYSTEMS, POWER_LOSS_RECOVERY)
#define USE_GCODE_SUBCODES
#endif
// Parking Extruder
#if ENABLED(PARKING_EXTRUDER)

View File

@ -42,7 +42,7 @@
* version was tagged.
*/
#ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2020-02-23"
#define STRING_DISTRIBUTION_DATE "2020-02-24"
#endif
/**

View File

@ -25,7 +25,7 @@
#include <U8glib.h>
#ifndef U8G_HAL_LINKS
#ifndef U8G_HAL_LINKS // Defined by LPC1768/9 environments in platform.ini
#ifdef __SAM3X8E__
@ -75,6 +75,7 @@
#define U8G_COM_ST7920_HAL_HW_SPI u8g_com_arduino_st7920_hw_spi_fn
#endif
// This can't be invoked from the current platformio.ini
#ifdef TARGET_LPC1768
uint8_t u8g_com_HAL_LPC1768_ssd_hw_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr);
#endif

View File

@ -59,8 +59,6 @@
#include "HAL_LCD_com_defines.h"
#define LCD_PIXEL_WIDTH 128
#define LCD_PIXEL_HEIGHT 64
#define PAGE_HEIGHT 8
/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */

View File

@ -196,13 +196,6 @@
#endif
#endif
#ifndef LCD_PIXEL_WIDTH
#define LCD_PIXEL_WIDTH 128
#endif
#ifndef LCD_PIXEL_HEIGHT
#define LCD_PIXEL_HEIGHT 64
#endif
// LCD_FULL_PIXEL_WIDTH =
// LCD_PIXEL_OFFSET_X + (LCD_PIXEL_WIDTH * 2) + LCD_PIXEL_OFFSET_X
#if ENABLED(FSMC_GRAPHICAL_TFT)

View File

@ -154,4 +154,4 @@ u8g_dev_t u8g_dev_st7920_128x64_rrd_sw_spi = { u8g_dev_rrd_st7920_128x64_fn, &u8
#endif
#endif // U8GLIB_ST7920
#endif // __AVR__ && !U8G_HAL_LINKS
#endif // !U8G_HAL_LINKS && (__AVR__ || ARDUINO_ARCH_STM32 || ARDUINO_ARCH_ESP32)

View File

@ -31,12 +31,9 @@
#define ST7920_DAT_PIN LCD_PINS_ENABLE
#define ST7920_CS_PIN LCD_PINS_RS
//#define PAGE_HEIGHT 8 //128 byte framebuffer
#define PAGE_HEIGHT 16 //256 byte framebuffer
//#define PAGE_HEIGHT 32 //512 byte framebuffer
#define LCD_PIXEL_WIDTH 128
#define LCD_PIXEL_HEIGHT 64
//#define PAGE_HEIGHT 8 // 128 byte framebuffer
#define PAGE_HEIGHT 16 // 256 byte framebuffer
//#define PAGE_HEIGHT 32 // 512 byte framebuffer
#include <U8glib.h>

View File

@ -785,7 +785,7 @@ namespace ExtUI {
#if HAS_BED_PROBE
return probe.offset.z;
#elif ENABLED(BABYSTEP_DISPLAY_TOTAL)
return (planner.steps_to_mm[Z_AXIS] * babystep.axis_total[BS_TODO_AXIS(Z_AXIS)]);
return (planner.steps_to_mm[Z_AXIS] * babystep.axis_total[BS_AXIS_IND(Z_AXIS)]);
#else
return 0.0;
#endif

View File

@ -151,7 +151,7 @@ namespace Language_an {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retraccion auto.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Cambear filamento");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Cambear filamento *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Encetan. tarcheta");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Encetan. tarcheta");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambiar tarcheta");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z fuera");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reset BLTouch");

View File

@ -136,7 +136,7 @@ namespace Language_bg {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Автоoткат");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Смяна нишка");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Смяна нишка *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Иниц. SD-Карта");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Иниц. SD-Карта");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Смяна SD-Карта");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z-сондата е извадена");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Z Отстояние");

View File

@ -146,7 +146,7 @@ namespace Language_ca {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Auto retraccio");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Canvia filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Canvia filament *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inicialitza SD");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Inicialitza SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Canvia SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z fora");
PROGMEM Language_Str MSG_BLTOUCH_RESET = _UxGT("Reinicia BLTouch");

View File

@ -369,7 +369,7 @@ namespace Language_cz {
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Vysunout filament *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Vysunout vše");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Načíst médium");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Načíst médium");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Vyměnit médium");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Vysunout médium");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z mimo podl");

View File

@ -343,7 +343,7 @@ namespace Language_de {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Filament entladen");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Filament entladen *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Alles entladen");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Medium initial."); // Manually initialize the SD-card via user interface
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Medium initial."); // Manually initialize the SD-card via user interface
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Medium getauscht"); // SD-card changed by user. For machines with no autocarddetect. Both send "M21"
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Medium freigeben"); // if Marlin gets confused - M22
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z-Sonde außerhalb");

View File

@ -162,7 +162,7 @@ namespace Language_el {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Αυτόματη ανάσυρση");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Αλλαγή νήματος");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Αλλαγή νήματος *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Προετοιμασία κάρτας SD"); //SHORTEN
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Προετοιμασία κάρτας SD"); //SHORTEN
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Αλλαγή κάρτας SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Διερεύνηση Z εκτός Επ.Εκτύπωσης"); //SHORTEN
PROGMEM Language_Str MSG_YX_UNHOMED = _UxGT("Επαναφορά Χ/Υ πριν από Ζ"); //SHORTEN

View File

@ -164,7 +164,7 @@ namespace Language_el_gr {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Αυτόματη ανάσυρση");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Αλλαγή νήματος");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Αλλαγή νήματος *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Προετοιμασία κάρτας SD");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Προετοιμασία κάρτας SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Αλλαγή κάρτας SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Διερεύνηση Z εκτός κλίνης");
PROGMEM Language_Str MSG_YX_UNHOMED = _UxGT("Επαναφορά Χ/Υ πριν από Ζ");

View File

@ -370,7 +370,7 @@ namespace Language_en {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Unload Filament");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Unload Filament *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Unload All");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Init. Media");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Attach Media");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Change Media");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Release Media");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z Probe Past Bed");

View File

@ -337,7 +337,7 @@ namespace Language_es {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Descargar filamento");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Descargar fil. *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Descargar todo");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Iniciar SD/USB");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Iniciar SD/USB");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambiar SD/USB");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Lanzar SD/USB");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z fuera cama");

View File

@ -221,7 +221,7 @@ namespace Language_eu {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Harizpia deskargatu");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Harizpia deskargatu *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Erabat deskargatu");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Hasieratu SD-a");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Hasieratu SD-a");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Aldatu txartela");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z zunda kanpora");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Okertze faktorea");

View File

@ -340,7 +340,7 @@ namespace Language_fr {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Retrait filament");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Retrait filament *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Retirer tout");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Charger le média");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Charger le média");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Actualiser média");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Retirer le média");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonde Z hors lit");

View File

@ -143,7 +143,7 @@ namespace Language_gl {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("Retraccion auto.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Cambiar filamen.");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Cambiar filamen. *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Iniciando SD");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Iniciando SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambiar SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda-Z sen cama");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("Comprobar BLTouch");

View File

@ -112,7 +112,7 @@ namespace Language_hr {
PROGMEM Language_Str MSG_STOPPED = _UxGT("ZAUSTAVLJEN. ");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Promijeni filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Promijeni filament *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Init. SD karticu");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Init. SD karticu");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Promijeni SD karticu");
PROGMEM Language_Str MSG_HEATING_FAILED_LCD = _UxGT("Grijanje neuspješno");
PROGMEM Language_Str MSG_HEATING = _UxGT("Grijanje...");

View File

@ -38,6 +38,7 @@ namespace Language_it {
PROGMEM Language_Str LANGUAGE = _UxGT("Italian");
PROGMEM Language_Str WELCOME_MSG = MACHINE_NAME _UxGT(" pronto.");
PROGMEM Language_Str MSG_MARLIN = _UxGT("Marlin");
PROGMEM Language_Str MSG_YES = _UxGT("SI");
PROGMEM Language_Str MSG_NO = _UxGT("NO");
PROGMEM Language_Str MSG_BACK = _UxGT("Indietro");
@ -255,6 +256,16 @@ namespace Language_it {
PROGMEM Language_Str MSG_LCD_OFF = _UxGT("Off");
PROGMEM Language_Str MSG_PID_AUTOTUNE = _UxGT("PID Autotune");
PROGMEM Language_Str MSG_PID_AUTOTUNE_E = _UxGT("PID Autotune *");
PROGMEM Language_Str MSG_PID_P = _UxGT("PID-P");
PROGMEM Language_Str MSG_PID_P_E = _UxGT("PID-P *");
PROGMEM Language_Str MSG_PID_I = _UxGT("PID-I");
PROGMEM Language_Str MSG_PID_I_E = _UxGT("PID-I *");
PROGMEM Language_Str MSG_PID_D = _UxGT("PID-D");
PROGMEM Language_Str MSG_PID_D_E = _UxGT("PID-D *");
PROGMEM Language_Str MSG_PID_C = _UxGT("PID-C");
PROGMEM Language_Str MSG_PID_C_E = _UxGT("PID-C *");
PROGMEM Language_Str MSG_PID_F = _UxGT("PID-F");
PROGMEM Language_Str MSG_PID_F_E = _UxGT("PID-F *");
PROGMEM Language_Str MSG_SELECT = _UxGT("Seleziona");
PROGMEM Language_Str MSG_SELECT_E = _UxGT("Seleziona *");
PROGMEM Language_Str MSG_ACC = _UxGT("Accel");
@ -357,7 +368,7 @@ namespace Language_it {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Rimuovi filamento");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Rimuovi filamento *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Rimuovi tutto");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inizializ. media");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Inizializ. media");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Cambia media");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Rilascia media");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z probe fuori piatto");

View File

@ -166,7 +166,7 @@ namespace Language_jp_kana {
PROGMEM Language_Str MSG_CONTROL_RETRACT_RECOVERF = _UxGT("ホショウソクド mm/s"); // "UnRet V"
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("ジドウヒキコミ"); // "AutoRetr."
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("フィラメントコウカン"); // "Change filament"
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("メディアサイヨミコミ"); // "Init. SD card"
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("メディアサイヨミコミ"); // "Init. SD card"
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("メディアコウカン"); // "Change SD card"
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Zプローブ ベッドガイ"); // "Z probe out. bed"
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch ジコシンダン"); // "BLTouch Self-Test"

View File

@ -149,7 +149,7 @@ namespace Language_nl {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT("AutoRetr.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Verv. Filament");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Verv. Filament *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Init. SD kaart");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Init. SD kaart");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Verv. SD Kaart");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z probe uit. bed");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Zelf-Test");

View File

@ -350,7 +350,7 @@ namespace Language_pl {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Wyładuj Filament");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Wyładuj Filament *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Wyładuj wszystkie");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inicjal. karty SD");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Inicjal. karty SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Zmiana karty SD");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Zwolnienie karty");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z za stołem");

View File

@ -139,7 +139,7 @@ namespace Language_pt {
PROGMEM Language_Str MSG_AUTORETRACT = _UxGT(" AutoRetr.");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Trocar filamento");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Trocar filamento *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Inici. cartão SD");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Inici. cartão SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Trocar cartão SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sensor fora/base");
PROGMEM Language_Str MSG_ZPROBE_ZOFFSET = _UxGT("Desvio Z");

View File

@ -293,7 +293,7 @@ namespace Language_pt_br {
PROGMEM Language_Str MSG_FILAMENTLOAD_E = _UxGT("Carregar Filamento *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Descarreg. Filamento *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Descarregar Todos");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Iniciar SD");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Iniciar SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Trocar SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda fora da mesa");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Fator de Cisalho");

View File

@ -328,7 +328,7 @@ namespace Language_ru {
PROGMEM Language_Str MSG_FILAMENTLOAD_E = _UxGT("Загрузка филамента *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Выгрузка филамента *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Выгрузить всё");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Активировать SD");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Активировать SD");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Сменить SD карту");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Деактивировать SD");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z-датчик вне стола");

View File

@ -360,7 +360,7 @@ namespace Language_sk {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Vysunúť filament");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Vysunúť filament *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Vysunúť všetko");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Načítať SD kartu");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Načítať SD kartu");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Vymeniť SD kartu");
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Odpojiť SD kartu");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Sonda Z mimo podl.");

View File

@ -309,7 +309,7 @@ namespace Language_tr {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Filaman Çıkart");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Filaman Çıkart *");
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Tümünü Çıkart");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("SD Kart Başlatılıyor");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("SD Kart Başlatılıyor");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("SD Kart Değiştir");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z Prob Açık. Tabla");
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("Çarpıklık Faktörü");

View File

@ -157,7 +157,7 @@ namespace Language_uk {
PROGMEM Language_Str MSG_STOPPED = _UxGT("ЗУПИНЕНО. ");
PROGMEM Language_Str MSG_FILAMENTCHANGE = _UxGT("Зміна волокна");
PROGMEM Language_Str MSG_FILAMENTCHANGE_E = _UxGT("Зміна волокна *");
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Старт SD картки");
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Старт SD картки");
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Заміна SD карти");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z дет. не в межах");
PROGMEM Language_Str MSG_BLTOUCH_SELFTEST = _UxGT("BLTouch Само-Тест");

View File

@ -309,7 +309,7 @@ namespace Language_vi {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("Dỡ dây nhựa"); // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("Dỡ dây nhựa *"); // unload filament
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("Dỡ tất cả"); // Unload All
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("Khởi tạo phương tiện"); // Init. media
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("Khởi tạo phương tiện"); // Init. media
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("Thay phương tiện"); // Change midea
PROGMEM Language_Str MSG_RELEASE_MEDIA = _UxGT("Phát hành phương tiện");
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Đầu Dò Z qua bàn"); // Z Probe past bed

View File

@ -274,7 +274,7 @@ namespace Language_zh_CN {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("卸载丝料"); // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("卸载丝料 *"); // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("卸载全部"); // "Unload All"
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("初始化存储卡"); //"Init. SD card"
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("初始化存储卡"); //"Init. SD card"
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更换存储卡"); //"Change SD card"
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探针在热床之外"); //"Z probe out. bed" Z probe is not within the physical limits
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("偏斜因数"); // "Skew Factor"

View File

@ -274,7 +274,7 @@ namespace Language_zh_TW {
PROGMEM Language_Str MSG_FILAMENTUNLOAD = _UxGT("卸載絲料"); // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_E = _UxGT("卸載絲料 *"); // "Unload filament"
PROGMEM Language_Str MSG_FILAMENTUNLOAD_ALL = _UxGT("卸載全部"); // "Unload All"
PROGMEM Language_Str MSG_INIT_MEDIA = _UxGT("初始化記憶卡"); //"Init. SD card"
PROGMEM Language_Str MSG_ATTACH_MEDIA = _UxGT("初始化記憶卡"); //"Init. SD card"
PROGMEM Language_Str MSG_CHANGE_MEDIA = _UxGT("更換記憶卡"); //"Change SD card"
PROGMEM Language_Str MSG_ZPROBE_OUT = _UxGT("Z探針在熱床之外"); //"Z probe out. bed" Z probe is not within the physical limits
PROGMEM Language_Str MSG_SKEW_FACTOR = _UxGT("偏斜因數"); // "Skew Factor"

View File

@ -134,7 +134,7 @@ void menu_main() {
#if PIN_EXISTS(SD_DETECT)
ACTION_ITEM(MSG_NO_MEDIA, nullptr);
#else
GCODES_ITEM(MSG_INIT_MEDIA, M21_STR);
GCODES_ITEM(MSG_ATTACH_MEDIA, M21_STR);
ACTION_ITEM(MSG_MEDIA_RELEASED, nullptr);
#endif
}
@ -228,7 +228,7 @@ void menu_main() {
#if PIN_EXISTS(SD_DETECT)
ACTION_ITEM(MSG_NO_MEDIA, nullptr);
#else
GCODES_ITEM(MSG_INIT_MEDIA, M21_STR);
GCODES_ITEM(MSG_ATTACH_MEDIA, M21_STR);
ACTION_ITEM(MSG_MEDIA_RELEASED, nullptr);
#endif
}

View File

@ -81,7 +81,7 @@
#endif
lcd_put_u8str_P(GET_TEXT(MSG_BABYSTEP_TOTAL));
lcd_put_wchar(':');
lcd_put_u8str(LCD_Z_OFFSET_FUNC(spm * babystep.axis_total[BS_TOTAL_AXIS(axis)]));
lcd_put_u8str(LCD_Z_OFFSET_FUNC(spm * babystep.axis_total[BS_TOTAL_IND(axis)]));
}
#endif
}

View File

@ -81,6 +81,8 @@
Stepper stepper; // Singleton
#define BABYSTEPPING_EXTRA_DIR_WAIT
#if HAS_MOTOR_CURRENT_PWM
bool Stepper::initialized; // = false
#endif
@ -1367,8 +1369,8 @@ void Stepper::isr() {
#endif
#if ENABLED(INTEGRATED_BABYSTEPPING)
const bool do_babystep = (nextBabystepISR == 0); // 0 = Do Babystepping (XY)Z pulses
if (do_babystep) nextBabystepISR = babystepping_isr();
const bool is_babystep = (nextBabystepISR == 0); // 0 = Do Babystepping (XY)Z pulses
if (is_babystep) nextBabystepISR = babystepping_isr();
#endif
// ^== Time critical. NOTHING besides pulse generation should be above here!!!
@ -1376,7 +1378,7 @@ void Stepper::isr() {
if (!nextMainISR) nextMainISR = block_phase_isr(); // Manage acc/deceleration, get next block
#if ENABLED(INTEGRATED_BABYSTEPPING)
if (do_babystep) // Avoid ANY stepping too soon after baby-stepping
if (is_babystep) // Avoid ANY stepping too soon after baby-stepping
NOLESS(nextMainISR, (BABYSTEP_TICKS) / 8); // FULL STOP for 125µs after a baby-step
if (nextBabystepISR != BABYSTEP_NEVER) // Avoid baby-stepping too close to axis Stepping
@ -2507,6 +2509,14 @@ void Stepper::report_positions() {
#endif
#endif
#if ENABLED(BABYSTEPPING_EXTRA_DIR_WAIT)
#define EXTRA_DIR_WAIT_BEFORE DIR_WAIT_BEFORE
#define EXTRA_DIR_WAIT_AFTER DIR_WAIT_AFTER
#else
#define EXTRA_DIR_WAIT_BEFORE()
#define EXTRA_DIR_WAIT_AFTER()
#endif
#if DISABLED(DELTA)
#define BABYSTEP_AXIS(AXIS, INV, DIR) do{ \
@ -2519,9 +2529,9 @@ void Stepper::report_positions() {
_APPLY_STEP(AXIS, !_INVERT_STEP_PIN(AXIS), true); \
_PULSE_WAIT(); \
_APPLY_STEP(AXIS, _INVERT_STEP_PIN(AXIS), true); \
DIR_WAIT_BEFORE(); \
EXTRA_DIR_WAIT_BEFORE(); \
_APPLY_DIR(AXIS, old_dir); \
DIR_WAIT_AFTER(); \
EXTRA_DIR_WAIT_AFTER(); \
}while(0)
#elif IS_CORE
@ -2539,9 +2549,9 @@ void Stepper::report_positions() {
_PULSE_WAIT(); \
_APPLY_STEP(A, _INVERT_STEP_PIN(A), true); \
_APPLY_STEP(B, _INVERT_STEP_PIN(B), true); \
DIR_WAIT_BEFORE(); \
EXTRA_DIR_WAIT_BEFORE(); \
_APPLY_DIR(A, old_dir.a); _APPLY_DIR(B, old_dir.b); \
DIR_WAIT_AFTER(); \
EXTRA_DIR_WAIT_AFTER(); \
}while(0)
#endif
@ -2620,13 +2630,13 @@ void Stepper::report_positions() {
Z_STEP_WRITE(INVERT_Z_STEP_PIN);
// Restore direction bits
DIR_WAIT_BEFORE();
EXTRA_DIR_WAIT_BEFORE();
X_DIR_WRITE(old_dir.x);
Y_DIR_WRITE(old_dir.y);
Z_DIR_WRITE(old_dir.z);
DIR_WAIT_AFTER();
EXTRA_DIR_WAIT_AFTER();
#endif

View File

@ -117,7 +117,16 @@ enum StealthIndex : uint8_t { STEALTH_AXIS_XY, STEALTH_AXIS_Z, STEALTH_AXIS_E };
#endif
#ifndef TMC_BAUD_RATE
#define TMC_BAUD_RATE 115200
#if HAS_TMC_SW_SERIAL
// Reduce baud rate for boards not already overriding TMC_BAUD_RATE for software serial.
// Testing has shown that 115200 is not 100% reliable on AVR platforms, occasionally
// failing to read status properly. 32-bit platforms typically define an even lower
// TMC_BAUD_RATE, due to differences in how SoftwareSerial libraries work on different
// platforms.
#define TMC_BAUD_RATE 57600
#else
#define TMC_BAUD_RATE 115200
#endif
#endif
#if HAS_DRIVER(TMC2130)

View File

@ -1063,7 +1063,7 @@ uint16_t CardReader::get_num_Files() {
//
// Return from procedure or close out the Print Job
//
void CardReader::printingHasFinished() {
void CardReader::fileHasFinished() {
planner.synchronize();
file.close();
if (file_subcall_ctr > 0) { // Resume calling file after closing procedure

View File

@ -106,7 +106,7 @@ public:
// Print job
static void openAndPrintFile(const char *name); // (working directory)
static void printingHasFinished();
static void fileHasFinished();
static void getAbsFilename(char *dst);
static void startFileprint();
static void printFilename();

View File

@ -18,5 +18,20 @@ opt_set TX_BUFFER_SIZE 64
opt_add WEBSUPPORT
exec_test $1 $2 "ESP32 with WIFISUPPORT and WEBSUPPORT"
#
# Build with TMC drivers using hardware serial
#
restore_configs
opt_set MOTHERBOARD BOARD_ESPRESSIF_ESP32
opt_set X_DRIVER_TYPE TMC2209
opt_set Y_DRIVER_TYPE TMC2208
opt_set Z_DRIVER_TYPE TMC2209
opt_set E0_DRIVER_TYPE TMC2209
opt_set X_HARDWARE_SERIAL Serial1
opt_set Y_HARDWARE_SERIAL Serial1
opt_set Z_HARDWARE_SERIAL Serial1
opt_set E0_HARDWARE_SERIAL Serial1
exec_test $1 $2 "ESP32 with TMC Hardware Serial"
# cleanup
restore_configs