Compare commits
35 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1955eea1b8 | ||
|
42fa9fc570 | ||
|
130d0395d0 | ||
|
c5f1ff9ee1 | ||
|
089cc68a04 | ||
|
a254354e68 | ||
|
5e197df89a | ||
|
8ba5ef8cae | ||
|
9a51f29efa | ||
|
ebd2bcc177 | ||
|
9717b3044f | ||
|
2bcc2ec7d1 | ||
|
529d57bddf | ||
|
0ba18848af | ||
|
b2328d089a | ||
|
29ec868c4b | ||
|
1d431fe8d2 | ||
|
2b759b9e8d | ||
|
5f27f7de47 | ||
|
282f4678cd | ||
|
2471a8bb91 | ||
|
7bf3581b02 | ||
|
b9b29bf4c0 | ||
|
20df64814e | ||
|
34c92bbc17 | ||
|
c41f3f8582 | ||
|
8670df08a2 | ||
|
eeec4c27e7 | ||
|
730690ea03 | ||
|
3543873da7 | ||
|
c505626c42 | ||
|
484e1a624c | ||
|
ac3e27c026 | ||
|
1ab6f910b6 | ||
|
cfd49740eb |
@@ -789,11 +789,11 @@ sym: $(BUILD_DIR)/$(TARGET).sym
|
||||
# Do not try to reset an Arduino if it's not one
|
||||
upload: $(BUILD_DIR)/$(TARGET).hex
|
||||
ifeq (${AVRDUDE_PROGRAMMER}, arduino)
|
||||
stty hup < $(UPLOAD_PORT); true
|
||||
stty hup < $(UPLOAD_PORT); true
|
||||
endif
|
||||
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)
|
||||
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH)
|
||||
ifeq (${AVRDUDE_PROGRAMMER}, arduino)
|
||||
stty -hup < $(UPLOAD_PORT); true
|
||||
stty -hup < $(UPLOAD_PORT); true
|
||||
endif
|
||||
|
||||
# Display size of file.
|
||||
@@ -801,10 +801,10 @@ HEXSIZE = $(SIZE) --target=$(FORMAT) $(BUILD_DIR)/$(TARGET).hex
|
||||
ELFSIZE = $(SIZE) $(SIZE_FLAGS) $(BUILD_DIR)/$(TARGET).elf; \
|
||||
$(SIZE) $(BUILD_DIR)/$(TARGET).elf
|
||||
sizebefore:
|
||||
$P if [ -f $(BUILD_DIR)/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(HEXSIZE); echo; fi
|
||||
$P if [ -f $(BUILD_DIR)/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(HEXSIZE); echo; fi
|
||||
|
||||
sizeafter: build
|
||||
$P if [ -f $(BUILD_DIR)/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
|
||||
$P if [ -f $(BUILD_DIR)/$(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
|
||||
|
||||
|
||||
# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
|
||||
@@ -816,71 +816,71 @@ COFFCONVERT=$(OBJCOPY) --debugging \
|
||||
|
||||
|
||||
coff: $(BUILD_DIR)/$(TARGET).elf
|
||||
$(COFFCONVERT) -O coff-avr $(BUILD_DIR)/$(TARGET).elf $(TARGET).cof
|
||||
$(COFFCONVERT) -O coff-avr $(BUILD_DIR)/$(TARGET).elf $(TARGET).cof
|
||||
|
||||
|
||||
extcoff: $(TARGET).elf
|
||||
$(COFFCONVERT) -O coff-ext-avr $(BUILD_DIR)/$(TARGET).elf $(TARGET).cof
|
||||
$(COFFCONVERT) -O coff-ext-avr $(BUILD_DIR)/$(TARGET).elf $(TARGET).cof
|
||||
|
||||
|
||||
.SUFFIXES: .elf .hex .eep .lss .sym .bin
|
||||
.PRECIOUS: .o
|
||||
|
||||
.elf.hex:
|
||||
$(Pecho) " COPY $@"
|
||||
$P $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
|
||||
$(Pecho) " COPY $@"
|
||||
$P $(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
|
||||
|
||||
.elf.bin:
|
||||
$(Pecho) " COPY $@"
|
||||
$P $(OBJCOPY) -O binary -R .eeprom $< $@
|
||||
$(Pecho) " COPY $@"
|
||||
$P $(OBJCOPY) -O binary -R .eeprom $< $@
|
||||
|
||||
.elf.eep:
|
||||
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
|
||||
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
|
||||
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
|
||||
|
||||
# Create extended listing file from ELF output file.
|
||||
.elf.lss:
|
||||
$(OBJDUMP) -h -S $< > $@
|
||||
$(OBJDUMP) -h -S $< > $@
|
||||
|
||||
# Create a symbol table from ELF output file.
|
||||
.elf.sym:
|
||||
$(NM) -n $< > $@
|
||||
$(NM) -n $< > $@
|
||||
|
||||
# Link: create ELF output file from library.
|
||||
|
||||
$(BUILD_DIR)/$(TARGET).elf: $(OBJ) Configuration.h
|
||||
$(Pecho) " CXX $@"
|
||||
$P $(CC) $(LD_PREFIX) $(ALL_CXXFLAGS) -o $@ -L. $(OBJ) $(LDFLAGS) $(LD_SUFFIX)
|
||||
$(Pecho) " CXX $@"
|
||||
$P $(CC) $(LD_PREFIX) $(ALL_CXXFLAGS) -o $@ -L. $(OBJ) $(LDFLAGS) $(LD_SUFFIX)
|
||||
|
||||
# Object files that were found in "src" will be stored in $(BUILD_DIR)
|
||||
# in directories that mirror the structure of "src"
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c Configuration.h Configuration_adv.h $(MAKEFILE)
|
||||
$(Pecho) " CC $<"
|
||||
$P $(CC) -MMD -c $(ALL_CFLAGS) $(CWARN) $< -o $@
|
||||
$(Pecho) " CC $<"
|
||||
$P $(CC) -MMD -c $(ALL_CFLAGS) $(CWARN) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/%.o: %.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
|
||||
$(Pecho) " CXX $<"
|
||||
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $(CXXWARN) $< -o $@
|
||||
$(Pecho) " CXX $<"
|
||||
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $(CXXWARN) $< -o $@
|
||||
|
||||
# Object files for Arduino libs will be created in $(BUILD_DIR)/arduino
|
||||
|
||||
$(BUILD_DIR)/arduino/%.o: %.c Configuration.h Configuration_adv.h $(MAKEFILE)
|
||||
$(Pecho) " CC $<"
|
||||
$P $(CC) -MMD -c $(ALL_CFLAGS) $(LIBWARN) $< -o $@
|
||||
$(Pecho) " CC $<"
|
||||
$P $(CC) -MMD -c $(ALL_CFLAGS) $(LIBWARN) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/arduino/%.o: %.cpp Configuration.h Configuration_adv.h $(MAKEFILE)
|
||||
$(Pecho) " CXX $<"
|
||||
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $(LIBWARN) $< -o $@
|
||||
$(Pecho) " CXX $<"
|
||||
$P $(CXX) -MMD -c $(ALL_CXXFLAGS) $(LIBWARN) $< -o $@
|
||||
|
||||
$(BUILD_DIR)/arduino/%.o: %.S $(MAKEFILE)
|
||||
$(Pecho) " CXX $<"
|
||||
$P $(CXX) -MMD -c $(ALL_ASFLAGS) $< -o $@
|
||||
$(Pecho) " CXX $<"
|
||||
$P $(CXX) -MMD -c $(ALL_ASFLAGS) $< -o $@
|
||||
|
||||
# Target: clean project.
|
||||
clean:
|
||||
$(Pecho) " RMDIR $(BUILD_DIR)/"
|
||||
$P rm -rf $(BUILD_DIR)
|
||||
$(Pecho) " RMDIR $(BUILD_DIR)/"
|
||||
$P rm -rf $(BUILD_DIR)
|
||||
|
||||
|
||||
.PHONY: all build elf hex eep lss sym program coff extcoff clean depend sizebefore sizeafter
|
||||
|
@@ -28,7 +28,7 @@
|
||||
/**
|
||||
* Marlin release version identifier
|
||||
*/
|
||||
//#define SHORT_BUILD_VERSION "2.0.4"
|
||||
//#define SHORT_BUILD_VERSION "2.0.4.3"
|
||||
|
||||
/**
|
||||
* Verbose version identifier which should contain a reference to the location
|
||||
|
@@ -27,6 +27,7 @@
|
||||
#include <rom/rtc.h>
|
||||
#include <driver/adc.h>
|
||||
#include <esp_adc_cal.h>
|
||||
#include <HardwareSerial.h>
|
||||
|
||||
#include "../../inc/MarlinConfigPre.h"
|
||||
|
||||
@@ -105,6 +106,27 @@ void HAL_init_board() {
|
||||
#endif
|
||||
server.begin();
|
||||
#endif
|
||||
|
||||
// ESP32 uses a GPIO matrix that allows pins to be assigned to hardware serial ports.
|
||||
// The following code initializes hardware Serial1 and Serial2 to use user-defined pins
|
||||
// if they have been defined.
|
||||
#if defined(HARDWARE_SERIAL1_RX) && defined(HARDWARE_SERIAL1_TX)
|
||||
HardwareSerial Serial1(1);
|
||||
#ifdef TMC_BAUD_RATE // use TMC_BAUD_RATE for Serial1 if defined
|
||||
Serial1.begin(TMC_BAUD_RATE, SERIAL_8N1, HARDWARE_SERIAL1_RX, HARDWARE_SERIAL1_TX);
|
||||
#else // use default BAUDRATE if TMC_BAUD_RATE not defined
|
||||
Serial1.begin(BAUDRATE, SERIAL_8N1, HARDWARE_SERIAL1_RX, HARDWARE_SERIAL1_TX);
|
||||
#endif
|
||||
#endif
|
||||
#if defined(HARDWARE_SERIAL2_RX) && defined(HARDWARE_SERIAL2_TX)
|
||||
HardwareSerial Serial2(2);
|
||||
#ifdef TMC_BAUD_RATE // use TMC_BAUD_RATE for Serial1 if defined
|
||||
Serial2.begin(TMC_BAUD_RATE, SERIAL_8N1, HARDWARE_SERIAL2_RX, HARDWARE_SERIAL2_TX);
|
||||
#else // use default BAUDRATE if TMC_BAUD_RATE not defined
|
||||
Serial2.begin(BAUDRATE, SERIAL_8N1, HARDWARE_SERIAL2_RX, HARDWARE_SERIAL2_TX);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void HAL_idletask() {
|
||||
|
@@ -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) \
|
||||
|
@@ -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();
|
||||
|
@@ -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_L_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:
|
||||
|
@@ -1097,7 +1097,7 @@
|
||||
|
||||
bool tmc_enable_stallguard(TMC2209Stepper &st) {
|
||||
const bool stealthchop_was_enabled = !st.en_spreadCycle();
|
||||
|
||||
|
||||
st.TCOOLTHRS(0xFFFFF);
|
||||
st.en_spreadCycle(false);
|
||||
return stealthchop_was_enabled;
|
||||
|
@@ -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;
|
||||
|
@@ -102,7 +102,7 @@ void GcodeSuite::M0_M1() {
|
||||
#endif
|
||||
|
||||
if (ms > 0) ms += millis(); // wait until this time for a click
|
||||
while (wait_for_user && (ms > 0 || PENDING(millis(), ms))) idle();
|
||||
while (wait_for_user || (ms > 0 && PENDING(millis(), ms))) idle();
|
||||
|
||||
#if HAS_LEDS_OFF_FLAG
|
||||
printerEventLEDs.onResumeAfterWait();
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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; }
|
||||
|
@@ -253,7 +253,7 @@ void GCodeQueue::ok_to_send() {
|
||||
while (NUMERIC_SIGNED(*p))
|
||||
SERIAL_ECHO(*p++);
|
||||
}
|
||||
SERIAL_ECHOPAIR_P(SP_P_STR, int(BLOCK_BUFFER_SIZE - planner.movesplanned() - 1));
|
||||
SERIAL_ECHOPAIR_P(SP_P_STR, int(planner.moves_free()));
|
||||
SERIAL_ECHOPAIR(" B", int(BUFSIZE - length));
|
||||
#endif
|
||||
SERIAL_EOL();
|
||||
@@ -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 && !card_eof) { 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);
|
||||
|
@@ -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:
|
||||
|
@@ -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)
|
||||
|
@@ -1361,8 +1361,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
||||
* Make sure Z_SAFE_HOMING point is reachable
|
||||
*/
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
static_assert(WITHIN(Z_SAFE_HOMING_X_POINT, X_MIN_BED, X_MAX_BED), "Z_SAFE_HOMING_X_POINT can't be reached by the nozzle.");
|
||||
static_assert(WITHIN(Z_SAFE_HOMING_Y_POINT, Y_MIN_BED, Y_MAX_BED), "Z_SAFE_HOMING_Y_POINT can't be reached by the nozzle.");
|
||||
static_assert(WITHIN(Z_SAFE_HOMING_X_POINT, X_MIN_POS, X_MAX_POS), "Z_SAFE_HOMING_X_POINT can't be reached by the nozzle.");
|
||||
static_assert(WITHIN(Z_SAFE_HOMING_Y_POINT, Y_MIN_POS, Y_MAX_POS), "Z_SAFE_HOMING_Y_POINT can't be reached by the nozzle.");
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -2474,6 +2474,86 @@ static_assert( _ARR_TEST(3,0) && _ARR_TEST(3,1) && _ARR_TEST(3,2)
|
||||
constexpr char _chr5 = USER_GCODE_5[strlen(USER_GCODE_5) - 1];
|
||||
static_assert(_chr5 != '\n' && _chr5 != '\r', "USER_GCODE_5 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_6
|
||||
constexpr char _chr6 = USER_GCODE_6[strlen(USER_GCODE_6) - 1];
|
||||
static_assert(_chr6 != '\n' && _chr6 != '\r', "USER_GCODE_6 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_7
|
||||
constexpr char _chr7 = USER_GCODE_7[strlen(USER_GCODE_7) - 1];
|
||||
static_assert(_chr7 != '\n' && _chr7 != '\r', "USER_GCODE_7 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_8
|
||||
constexpr char _chr8 = USER_GCODE_8[strlen(USER_GCODE_8) - 1];
|
||||
static_assert(_chr8 != '\n' && _chr8 != '\r', "USER_GCODE_8 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_9
|
||||
constexpr char _chr9 = USER_GCODE_9[strlen(USER_GCODE_9) - 1];
|
||||
static_assert(_chr9 != '\n' && _chr9 != '\r', "USER_GCODE_9 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_10
|
||||
constexpr char _chr10 = USER_GCODE_10[strlen(USER_GCODE_10) - 1];
|
||||
static_assert(_chr10 != '\n' && _chr10 != '\r', "USER_GCODE_10 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_11
|
||||
constexpr char _chr11 = USER_GCODE_11[strlen(USER_GCODE_11) - 1];
|
||||
static_assert(_chr11 != '\n' && _chr11 != '\r', "USER_GCODE_11 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_12
|
||||
constexpr char _chr12 = USER_GCODE_12[strlen(USER_GCODE_12) - 1];
|
||||
static_assert(_chr12 != '\n' && _chr12 != '\r', "USER_GCODE_12 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_13
|
||||
constexpr char _chr13 = USER_GCODE_13[strlen(USER_GCODE_13) - 1];
|
||||
static_assert(_chr13 != '\n' && _chr13 != '\r', "USER_GCODE_13 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_14
|
||||
constexpr char _chr14 = USER_GCODE_14[strlen(USER_GCODE_14) - 1];
|
||||
static_assert(_chr14 != '\n' && _chr14 != '\r', "USER_GCODE_14 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_15
|
||||
constexpr char _chr15 = USER_GCODE_15[strlen(USER_GCODE_15) - 1];
|
||||
static_assert(_chr15 != '\n' && _chr15 != '\r', "USER_GCODE_15 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_16
|
||||
constexpr char _chr16 = USER_GCODE_16[strlen(USER_GCODE_16) - 1];
|
||||
static_assert(_chr16 != '\n' && _chr16 != '\r', "USER_GCODE_16 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_17
|
||||
constexpr char _chr17 = USER_GCODE_17[strlen(USER_GCODE_17) - 1];
|
||||
static_assert(_chr17 != '\n' && _chr17 != '\r', "USER_GCODE_17 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_18
|
||||
constexpr char _chr18 = USER_GCODE_18[strlen(USER_GCODE_18) - 1];
|
||||
static_assert(_chr18 != '\n' && _chr18 != '\r', "USER_GCODE_18 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_19
|
||||
constexpr char _chr19 = USER_GCODE_19[strlen(USER_GCODE_19) - 1];
|
||||
static_assert(_chr19 != '\n' && _chr19 != '\r', "USER_GCODE_19 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_20
|
||||
constexpr char _chr20 = USER_GCODE_20[strlen(USER_GCODE_20) - 1];
|
||||
static_assert(_chr20 != '\n' && _chr20 != '\r', "USER_GCODE_20 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_21
|
||||
constexpr char _chr21 = USER_GCODE_21[strlen(USER_GCODE_21) - 1];
|
||||
static_assert(_chr21 != '\n' && _chr21 != '\r', "USER_GCODE_21 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_22
|
||||
constexpr char _chr22 = USER_GCODE_22[strlen(USER_GCODE_22) - 1];
|
||||
static_assert(_chr22 != '\n' && _chr22 != '\r', "USER_GCODE_22 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_23
|
||||
constexpr char _chr23 = USER_GCODE_23[strlen(USER_GCODE_23) - 1];
|
||||
static_assert(_chr23 != '\n' && _chr23 != '\r', "USER_GCODE_23 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_24
|
||||
constexpr char _chr24 = USER_GCODE_24[strlen(USER_GCODE_24) - 1];
|
||||
static_assert(_chr24 != '\n' && _chr24 != '\r', "USER_GCODE_24 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#ifdef USER_GCODE_25
|
||||
constexpr char _chr25 = USER_GCODE_25[strlen(USER_GCODE_25) - 1];
|
||||
static_assert(_chr25 != '\n' && _chr25 != '\r', "USER_GCODE_25 cannot have a newline at the end. Please remove it.");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(BACKLASH_COMPENSATION)
|
||||
|
@@ -25,7 +25,7 @@
|
||||
* Release version. Leave the Marlin version or apply a custom scheme.
|
||||
*/
|
||||
#ifndef SHORT_BUILD_VERSION
|
||||
#define SHORT_BUILD_VERSION "2.0.4"
|
||||
#define SHORT_BUILD_VERSION "2.0.4.3"
|
||||
#endif
|
||||
|
||||
/**
|
||||
@@ -42,7 +42,7 @@
|
||||
* version was tagged.
|
||||
*/
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2020-02-21"
|
||||
#define STRING_DISTRIBUTION_DATE "2020-02-24"
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -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
|
||||
|
@@ -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 */
|
||||
|
@@ -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)
|
||||
|
@@ -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)
|
||||
|
@@ -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>
|
||||
|
||||
|
@@ -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
|
||||
@@ -898,11 +898,11 @@ namespace ExtUI {
|
||||
float getPIDValues_Kp(const extruder_t tool) {
|
||||
return PID_PARAM(Kp, tool);
|
||||
}
|
||||
|
||||
|
||||
float getPIDValues_Ki(const extruder_t tool) {
|
||||
return unscalePID_i(PID_PARAM(Ki, tool));
|
||||
}
|
||||
|
||||
|
||||
float getPIDValues_Kd(const extruder_t tool) {
|
||||
return unscalePID_d(PID_PARAM(Kd, tool));
|
||||
}
|
||||
@@ -918,27 +918,27 @@ namespace ExtUI {
|
||||
thermalManager.PID_autotune(temp, (heater_ind_t)tool, 8, true);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
float getBedPIDValues_Kp() {
|
||||
return thermalManager.temp_bed.pid.Kp;
|
||||
}
|
||||
|
||||
|
||||
float getBedPIDValues_Ki() {
|
||||
return unscalePID_i(thermalManager.temp_bed.pid.Ki);
|
||||
}
|
||||
|
||||
|
||||
float getBedPIDValues_Kd() {
|
||||
return unscalePID_d(thermalManager.temp_bed.pid.Kd);
|
||||
}
|
||||
|
||||
|
||||
void setBedPIDValues(const float p, const float i, const float d) {
|
||||
thermalManager.temp_bed.pid.Kp = p;
|
||||
thermalManager.temp_bed.pid.Ki = scalePID_i(i);
|
||||
thermalManager.temp_bed.pid.Kd = scalePID_d(d);
|
||||
thermalManager.updatePID();
|
||||
}
|
||||
|
||||
|
||||
void startBedPIDTune(const float temp) {
|
||||
thermalManager.PID_autotune(temp, H_BED, 4, true);
|
||||
}
|
||||
|
@@ -256,7 +256,7 @@ namespace ExtUI {
|
||||
void setPIDValues(const float, const float, const float, extruder_t);
|
||||
void startPIDTune(const float, extruder_t);
|
||||
#endif
|
||||
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
float getBedPIDValues_Kp();
|
||||
float getBedPIDValues_Ki();
|
||||
|
@@ -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");
|
||||
|
@@ -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 Отстояние");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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
|
||||
|
@@ -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("Επαναφορά Χ/Υ πριν από Ζ");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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...");
|
||||
|
@@ -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");
|
||||
|
@@ -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"
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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");
|
||||
|
@@ -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-датчик вне стола");
|
||||
|
@@ -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.");
|
||||
|
@@ -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ü");
|
||||
|
@@ -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 Само-Тест");
|
||||
|
@@ -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
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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,19 +2529,19 @@ 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
|
||||
|
||||
#define BABYSTEP_CORE(A, B, INV, DIR) do{ \
|
||||
#define BABYSTEP_CORE(A, B, INV, DIR, ALT) do{ \
|
||||
const xy_byte_t old_dir = { _READ_DIR(A), _READ_DIR(B) }; \
|
||||
_ENABLE_AXIS(A); _ENABLE_AXIS(B); \
|
||||
DIR_WAIT_BEFORE(); \
|
||||
_APPLY_DIR(A, _INVERT_DIR(A)^DIR^INV); \
|
||||
_APPLY_DIR(B, _INVERT_DIR(B)^DIR^INV^(CORESIGN(1)<0)); \
|
||||
_APPLY_DIR(B, _INVERT_DIR(B)^DIR^INV^ALT); \
|
||||
DIR_WAIT_AFTER(); \
|
||||
_SAVE_START(); \
|
||||
_APPLY_STEP(A, !_INVERT_STEP_PIN(A), true); \
|
||||
@@ -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
|
||||
@@ -2560,21 +2570,21 @@ void Stepper::report_positions() {
|
||||
|
||||
case X_AXIS:
|
||||
#if CORE_IS_XY
|
||||
BABYSTEP_CORE(X, Y, false, direction);
|
||||
BABYSTEP_CORE(X, Y, 0, direction, 0);
|
||||
#elif CORE_IS_XZ
|
||||
BABYSTEP_CORE(X, Z, false, direction);
|
||||
BABYSTEP_CORE(X, Z, 0, direction, 0);
|
||||
#else
|
||||
BABYSTEP_AXIS(X, false, direction);
|
||||
BABYSTEP_AXIS(X, 0, direction);
|
||||
#endif
|
||||
break;
|
||||
|
||||
case Y_AXIS:
|
||||
#if CORE_IS_XY
|
||||
BABYSTEP_CORE(X, Y, false, direction);
|
||||
BABYSTEP_CORE(X, Y, 0, direction, (CORESIGN(1)<0));
|
||||
#elif CORE_IS_YZ
|
||||
BABYSTEP_CORE(Y, Z, false, direction);
|
||||
BABYSTEP_CORE(Y, Z, 0, direction, (CORESIGN(1)<0));
|
||||
#else
|
||||
BABYSTEP_AXIS(Y, false, direction);
|
||||
BABYSTEP_AXIS(Y, 0, direction);
|
||||
#endif
|
||||
break;
|
||||
|
||||
@@ -2583,9 +2593,9 @@ void Stepper::report_positions() {
|
||||
case Z_AXIS: {
|
||||
|
||||
#if CORE_IS_XZ
|
||||
BABYSTEP_CORE(X, Z, BABYSTEP_INVERT_Z, direction);
|
||||
BABYSTEP_CORE(X, Z, BABYSTEP_INVERT_Z, direction, (CORESIGN(1)<0));
|
||||
#elif CORE_IS_YZ
|
||||
BABYSTEP_CORE(Y, Z, BABYSTEP_INVERT_Z, direction);
|
||||
BABYSTEP_CORE(Y, Z, BABYSTEP_INVERT_Z, direction, (CORESIGN(1)<0));
|
||||
#elif DISABLED(DELTA)
|
||||
BABYSTEP_AXIS(Z, BABYSTEP_INVERT_Z, direction);
|
||||
|
||||
@@ -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
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -101,3 +101,10 @@
|
||||
#define SDSS 5
|
||||
#define USES_SHARED_SPI // SPI is shared by SD card with TMC SPI drivers
|
||||
|
||||
// Hardware serial pins
|
||||
// Add the following to Configuration.h or Configuration_adv.h to assign
|
||||
// specific pins to hardware Serial1.
|
||||
// Note: Serial2 can be defined using HARDWARE_SERIAL2_RX and HARDWARE_SERIAL2_TX but
|
||||
// MRR ESPA does not have enough spare pins for such reassignment.
|
||||
//#define HARDWARE_SERIAL1_RX 21
|
||||
//#define HARDWARE_SERIAL1_TX 22
|
||||
|
@@ -139,7 +139,7 @@
|
||||
#define BEEPER_PIN 151
|
||||
|
||||
//#define LCD_PINS_D5 150
|
||||
//#define LCD_PINS_D6 151
|
||||
//#define LCD_PINS_D6 152
|
||||
//#define LCD_PINS_D7 153
|
||||
|
||||
#else
|
||||
@@ -153,3 +153,13 @@
|
||||
#define BTN_ENC 14
|
||||
|
||||
#endif // HAS_GRAPHICAL_LCD
|
||||
|
||||
// Hardware serial pins
|
||||
// Add the following to Configuration.h or Configuration_adv.h to assign
|
||||
// specific pins to hardware Serial1 and Serial2.
|
||||
// Note: Serial2 can be defined using HARDWARE_SERIAL2_RX and HARDWARE_SERIAL2_TX but
|
||||
// MRR ESPA does not have enough spare pins for such reassignment.
|
||||
//#define HARDWARE_SERIAL1_RX 21
|
||||
//#define HARDWARE_SERIAL1_TX 22
|
||||
//#define HARDWARE_SERIAL2_RX 2
|
||||
//#define HARDWARE_SERIAL2_TX 4
|
||||
|
@@ -232,9 +232,19 @@
|
||||
* EXP2 EXP1
|
||||
*/
|
||||
#if HAS_SPI_LCD
|
||||
#define BTN_ENC P0_28 // (58) open-drain
|
||||
#if ENABLED(ANET_FULL_GRAPHICS_LCD)
|
||||
|
||||
#if ENABLED(CR10_STOCKDISPLAY)
|
||||
#define LCD_PINS_RS P1_23
|
||||
|
||||
#define BTN_EN1 P1_20
|
||||
#define BTN_EN2 P1_22
|
||||
#define BTN_ENC P1_18
|
||||
|
||||
#define LCD_PINS_ENABLE P1_21
|
||||
#define LCD_PINS_D4 P1_19
|
||||
|
||||
#elif ENABLED(CR10_STOCKDISPLAY)
|
||||
#define BTN_ENC P0_28 // (58) open-drain
|
||||
#define LCD_PINS_RS P1_22
|
||||
|
||||
#define BTN_EN1 P1_18
|
||||
@@ -244,6 +254,7 @@
|
||||
#define LCD_PINS_D4 P1_21
|
||||
|
||||
#else
|
||||
#define BTN_ENC P0_28 // (58) open-drain
|
||||
#define LCD_PINS_RS P1_19
|
||||
|
||||
#define BTN_EN1 P3_26 // (31) J3-2 & AUX-4
|
||||
|
@@ -36,8 +36,8 @@
|
||||
/*
|
||||
// Note that these are the "pins" that correspond to the analog inputs on the arduino mega.
|
||||
// These are not the same as the physical pin numbers
|
||||
AD0 = 54; AD1 = 55; AD2 = 56; AD3 = 57;
|
||||
AD4 = 58; AD5 = 59; AD6 = 60; AD7 = 61;
|
||||
AD0 = 54; AD1 = 55; AD2 = 56; AD3 = 57;
|
||||
AD4 = 58; AD5 = 59; AD6 = 60; AD7 = 61;
|
||||
AD8 = 62; AD9 = 63; AD10 = 64; AD11 = 65;
|
||||
AD12 = 66; AD13 = 67; AD14 = 68; AD15 = 69;
|
||||
*/
|
||||
@@ -61,7 +61,7 @@
|
||||
//
|
||||
#define X_STEP_PIN 55
|
||||
#define X_DIR_PIN 54
|
||||
#define X_ENABLE_PIN 60
|
||||
#define X_ENABLE_PIN 60
|
||||
|
||||
#define Y_STEP_PIN 57
|
||||
#define Y_DIR_PIN 56
|
||||
@@ -71,7 +71,7 @@
|
||||
#define Z_DIR_PIN 58
|
||||
#define Z_ENABLE_PIN 62
|
||||
|
||||
#define E0_STEP_PIN 67
|
||||
#define E0_STEP_PIN 67
|
||||
#define E0_DIR_PIN 24
|
||||
#define E0_ENABLE_PIN 26
|
||||
|
||||
@@ -103,10 +103,10 @@
|
||||
#endif
|
||||
|
||||
#define SDPOWER_PIN -1
|
||||
#define LED_PIN -1
|
||||
#define LED_PIN -1
|
||||
#define PS_ON_PIN -1
|
||||
#define KILL_PIN -1
|
||||
|
||||
|
||||
#define SSR_PIN 6
|
||||
|
||||
// SPI for Max6675 or Max31855 Thermocouple
|
||||
@@ -119,7 +119,7 @@
|
||||
//
|
||||
// SD Support
|
||||
//
|
||||
#define SD_DETECT_PIN 49
|
||||
#define SD_DETECT_PIN 49
|
||||
#define SDSS 53
|
||||
|
||||
//
|
||||
|
@@ -20,6 +20,12 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#if __GNUC__ > 8
|
||||
// The NXP platform updated GCC from 7.2.1 to 9.2.1
|
||||
// and this new warning apparently can be ignored.
|
||||
#pragma GCC diagnostic ignored "-Waddress-of-packed-member"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Arduino SdFat Library
|
||||
* Copyright (c) 2009 by William Greiman
|
||||
|
@@ -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
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user