Compare commits
4 commits
0459407a8e
...
dc6f23e435
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc6f23e435 | ||
|
|
c7fc6eeb1e | ||
|
|
72c0437b48 | ||
|
|
a6377e5215 |
15 changed files with 121 additions and 74 deletions
1
.github/workflows/ci-build-tests.yml
vendored
1
.github/workflows/ci-build-tests.yml
vendored
|
|
@ -21,6 +21,7 @@ on:
|
|||
branches:
|
||||
- bugfix-2.1.x
|
||||
- 2.1.x
|
||||
- release-*
|
||||
paths-ignore:
|
||||
- config/**
|
||||
- data/**
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
* here we define this default string as the date where the latest release
|
||||
* version was tagged.
|
||||
*/
|
||||
//#define STRING_DISTRIBUTION_DATE "2025-06-23"
|
||||
//#define STRING_DISTRIBUTION_DATE "2025-06-29"
|
||||
|
||||
/**
|
||||
* The protocol for communication to the host. Protocol indicates communication
|
||||
|
|
|
|||
|
|
@ -87,7 +87,13 @@ void DigipotI2C::init() {
|
|||
Wire.begin();
|
||||
#endif
|
||||
// Set up initial currents as defined in Configuration_adv.h
|
||||
static const float digipot_motor_current[] PROGMEM = TERN(DIGIPOT_USE_RAW_VALUES, DIGIPOT_MOTOR_CURRENT, DIGIPOT_I2C_MOTOR_CURRENTS);
|
||||
static const float digipot_motor_current[] PROGMEM =
|
||||
#if ENABLED(DIGIPOT_USE_RAW_VALUES)
|
||||
DIGIPOT_MOTOR_CURRENT
|
||||
#else
|
||||
DIGIPOT_I2C_MOTOR_CURRENTS
|
||||
#endif
|
||||
;
|
||||
for (uint8_t i = 0; i < COUNT(digipot_motor_current); ++i)
|
||||
set_current(i, pgm_read_float(&digipot_motor_current[i]));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -420,8 +420,11 @@ void PrintJobRecovery::resume() {
|
|||
#endif
|
||||
|
||||
// Interpret the saved Z according to flags
|
||||
const float z_print = resume_pos.z,
|
||||
z_raised = z_print + info.zraise;
|
||||
const float z_print = resume_pos.z;
|
||||
|
||||
#if ANY(Z_HOME_TO_MAX, POWER_LOSS_RECOVER_ZHOME) || DISABLED(BELTPRINTER)
|
||||
const float z_raised = z_print + info.zraise;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Home the axes that can safely be homed, and
|
||||
|
|
|
|||
|
|
@ -290,12 +290,13 @@
|
|||
SString<50>(F(" driver overtemperature warning! ("), st.getMilliamps(), F("mA)")).echoln();
|
||||
}
|
||||
|
||||
template<typename TMC>
|
||||
void report_polled_driver_data(TMC &st, const TMC_driver_data &data) {
|
||||
const uint32_t pwm_scale = get_pwm_scale(st);
|
||||
st.printLabel();
|
||||
SString<60> report(':', pwm_scale);
|
||||
#if ENABLED(TMC_DEBUG)
|
||||
#if ENABLED(TMC_DEBUG)
|
||||
|
||||
template<typename TMC>
|
||||
void report_polled_driver_data(TMC &st, const TMC_driver_data &data) {
|
||||
const uint32_t pwm_scale = get_pwm_scale(st);
|
||||
st.printLabel();
|
||||
SString<60> report(':', pwm_scale);
|
||||
#if HAS_TMCX1X0_OR_2240 || HAS_TMC220x
|
||||
report.append('/', data.cs_actual);
|
||||
#endif
|
||||
|
|
@ -306,22 +307,21 @@
|
|||
else
|
||||
report += '-';
|
||||
#endif
|
||||
#endif
|
||||
report += '|';
|
||||
if (st.error_count) report += 'E'; // Error
|
||||
if (data.is_ot) report += 'O'; // Over-temperature
|
||||
if (data.is_otpw) report += 'W'; // over-temperature pre-Warning
|
||||
#if ENABLED(TMC_DEBUG)
|
||||
report += '|';
|
||||
if (st.error_count) report += 'E'; // Error
|
||||
if (data.is_ot) report += 'O'; // Over-temperature
|
||||
if (data.is_otpw) report += 'W'; // over-temperature pre-Warning
|
||||
if (data.is_stall) report += 'G'; // stallGuard
|
||||
if (data.is_stealth) report += 'T'; // stealthChop
|
||||
if (data.is_standstill) report += 'I'; // standstIll
|
||||
#endif
|
||||
if (st.flag_otpw) report += 'F'; // otpw Flag
|
||||
report += '|';
|
||||
if (st.otpw_count > 0) report += st.otpw_count;
|
||||
report += '\t';
|
||||
report.echo();
|
||||
}
|
||||
if (st.flag_otpw) report += 'F'; // otpw Flag
|
||||
report += '|';
|
||||
if (st.otpw_count > 0) report += st.otpw_count;
|
||||
report += '\t';
|
||||
report.echo();
|
||||
}
|
||||
|
||||
#endif // TMC_DEBUG
|
||||
|
||||
#if CURRENT_STEP_DOWN > 0
|
||||
|
||||
|
|
|
|||
|
|
@ -40,44 +40,44 @@
|
|||
* M920: Set Homing Current for one or more axes
|
||||
*
|
||||
* Parameters:
|
||||
* X[current] - Homing Current to use for X axis stepper(s)
|
||||
* Y[current] - Homing Current to use for Y axis stepper(s)
|
||||
* Z[current] - Homing Current to use for Z axis stepper(s)
|
||||
* A[current] - Homing Current to use for A axis stepper(s)
|
||||
* B[current] - Homing Current to use for B axis stepper(s)
|
||||
* C[current] - Homing Current to use for C axis stepper(s)
|
||||
* U[current] - Homing Current to use for U axis stepper(s)
|
||||
* V[current] - Homing Current to use for V axis stepper(s)
|
||||
* W[current] - Homing Current to use for W axis stepper(s)
|
||||
* X<current> - Homing Current to use for X axis stepper(s)
|
||||
* Y<current> - Homing Current to use for Y axis stepper(s)
|
||||
* Z<current> - Homing Current to use for Z axis stepper(s)
|
||||
* A<current> - Homing Current to use for A axis stepper(s)
|
||||
* B<current> - Homing Current to use for B axis stepper(s)
|
||||
* C<current> - Homing Current to use for C axis stepper(s)
|
||||
* U<current> - Homing Current to use for U axis stepper(s)
|
||||
* V<current> - Homing Current to use for V axis stepper(s)
|
||||
* W<current> - Homing Current to use for W axis stepper(s)
|
||||
*
|
||||
* I<index> - For multi-stepper axes, the zero-based index of the stepper to modify in each axis.
|
||||
* If omitted all steppers of each axis will be set to the given axis current.
|
||||
*/
|
||||
void GcodeSuite::M920() {
|
||||
bool report = true;
|
||||
const uint8_t index = parser.byteval(I_PARAM);
|
||||
const int8_t index = parser.intval(I_PARAM, -1);
|
||||
LOOP_NUM_AXES(i) if (parser.seen(AXIS_CHAR(i))) {
|
||||
const int16_t value = parser.value_int();
|
||||
report = false;
|
||||
switch (i) {
|
||||
#if X_HAS_HOME_CURRENT
|
||||
case X_AXIS:
|
||||
if (index < 1) homing_current_mA.X = value;
|
||||
TERN_(X2_HAS_HOME_CURRENT, if (!index || index == 1) homing_current_mA.X2 = value);
|
||||
if (index <= 0) homing_current_mA.X = value;
|
||||
TERN_(X2_HAS_HOME_CURRENT, if (index < 0 || index == 1) homing_current_mA.X2 = value);
|
||||
break;
|
||||
#endif
|
||||
#if Y_HAS_HOME_CURRENT
|
||||
case Y_AXIS:
|
||||
if (index < 1) homing_current_mA.Y = value;
|
||||
TERN_(Y2_HAS_HOME_CURRENT, if (!index || index == 1) homing_current_mA.Y2 = value);
|
||||
if (index <= 0) homing_current_mA.Y = value;
|
||||
TERN_(Y2_HAS_HOME_CURRENT, if (index < 0 || index == 1) homing_current_mA.Y2 = value);
|
||||
break;
|
||||
#endif
|
||||
#if Z_HAS_HOME_CURRENT
|
||||
case Z_AXIS:
|
||||
if (index < 1) homing_current_mA.Z = value;
|
||||
TERN_(Z2_HAS_HOME_CURRENT, if (!index || index == 1) homing_current_mA.Z2 = value);
|
||||
TERN_(Z3_HAS_HOME_CURRENT, if (!index || index == 2) homing_current_mA.Z3 = value);
|
||||
TERN_(Z4_HAS_HOME_CURRENT, if (!index || index == 3) homing_current_mA.Z4 = value);
|
||||
if (index <= 0) homing_current_mA.Z = value;
|
||||
TERN_(Z2_HAS_HOME_CURRENT, if (index < 0 || index == 1) homing_current_mA.Z2 = value);
|
||||
TERN_(Z3_HAS_HOME_CURRENT, if (index < 0 || index == 2) homing_current_mA.Z3 = value);
|
||||
TERN_(Z4_HAS_HOME_CURRENT, if (index < 0 || index == 3) homing_current_mA.Z4 = value);
|
||||
break;
|
||||
#endif
|
||||
OPTCODE(I_HAS_HOME_CURRENT, case I_AXIS: homing_current_mA.I = value; break)
|
||||
|
|
@ -97,7 +97,7 @@ void GcodeSuite::M920_report(const bool forReplay/*=true*/) {
|
|||
|
||||
report_heading(forReplay, F(STR_HOMING_CURRENT));
|
||||
|
||||
auto say_M920 = [](const bool forReplay, int16_t index=-1) {
|
||||
auto say_M920 = [](const bool forReplay, int8_t index=-1) {
|
||||
report_echo_start(forReplay);
|
||||
SERIAL_ECHOPGM(" M920");
|
||||
if (index >= 0) SERIAL_ECHOPGM(" " I_PARAM_STR, index);
|
||||
|
|
@ -113,6 +113,7 @@ void GcodeSuite::M920_report(const bool forReplay/*=true*/) {
|
|||
TERN_(Y_SENSORLESS, SERIAL_ECHOPGM_P(SP_Y_STR, homing_current_mA.Y));
|
||||
TERN_(Z_SENSORLESS, SERIAL_ECHOPGM_P(SP_Z_STR, homing_current_mA.Z));
|
||||
#if X2_SENSORLESS || Y2_SENSORLESS || Z2_SENSORLESS || Z3_SENSORLESS || Z4_SENSORLESS
|
||||
SERIAL_EOL();
|
||||
say_M920(forReplay);
|
||||
#endif
|
||||
TERN_(I_SENSORLESS, SERIAL_ECHOPGM_P(SP_I_STR, homing_current_mA.I));
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
* version was tagged.
|
||||
*/
|
||||
#ifndef STRING_DISTRIBUTION_DATE
|
||||
#define STRING_DISTRIBUTION_DATE "2025-06-23"
|
||||
#define STRING_DISTRIBUTION_DATE "2025-06-29"
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -853,9 +853,18 @@ void MarlinUI::draw_status_message(const bool blink) {
|
|||
if (printJobOngoing()) {
|
||||
char buffer[8];
|
||||
const duration_t remaint = get_remaining_time();
|
||||
const uint8_t timepos = TPOFFSET - remaint.toDigital(buffer);
|
||||
IF_DISABLED(LCD_INFO_SCREEN_STYLE, lcd_put_lchar(timepos - 1, 2, 0x20));
|
||||
lcd_put_lchar(TERN(LCD_INFO_SCREEN_STYLE, 11, timepos), 2, 'R');
|
||||
#if LCD_INFO_SCREEN_STYLE == 0
|
||||
const uint8_t timepos = TPOFFSET - remaint.toDigital(buffer);
|
||||
lcd_put_lchar(timepos - 1, 2, ' ');
|
||||
#endif
|
||||
lcd_put_lchar(
|
||||
#if LCD_INFO_SCREEN_STYLE == 0
|
||||
timepos
|
||||
#else
|
||||
11
|
||||
#endif
|
||||
, 2, 'R'
|
||||
);
|
||||
lcd_put_u8str(buffer);
|
||||
}
|
||||
}
|
||||
|
|
@ -866,9 +875,18 @@ void MarlinUI::draw_status_message(const bool blink) {
|
|||
const duration_t interactt = interaction_time;
|
||||
if (printingIsActive() && interactt.value) {
|
||||
char buffer[8];
|
||||
const uint8_t timepos = TPOFFSET - interactt.toDigital(buffer);
|
||||
IF_DISABLED(LCD_INFO_SCREEN_STYLE, lcd_put_lchar(timepos - 1, 2, 0x20));
|
||||
lcd_put_lchar(TERN(LCD_INFO_SCREEN_STYLE, 11, timepos), 2, 'C');
|
||||
#if LCD_INFO_SCREEN_STYLE == 0
|
||||
const uint8_t timepos = TPOFFSET - interactt.toDigital(buffer);
|
||||
lcd_put_lchar(timepos - 1, 2, ' ');
|
||||
#endif
|
||||
lcd_put_lchar(
|
||||
#if LCD_INFO_SCREEN_STYLE == 0
|
||||
timepos
|
||||
#else
|
||||
11
|
||||
#endif
|
||||
, 2, 'C'
|
||||
);
|
||||
lcd_put_u8str(buffer);
|
||||
}
|
||||
}
|
||||
|
|
@ -879,9 +897,18 @@ void MarlinUI::draw_status_message(const bool blink) {
|
|||
if (printJobOngoing()) {
|
||||
char buffer[8];
|
||||
const duration_t elapsedt = print_job_timer.duration();
|
||||
const uint8_t timepos = TPOFFSET - elapsedt.toDigital(buffer);
|
||||
IF_DISABLED(LCD_INFO_SCREEN_STYLE, lcd_put_lchar(timepos - 1, 2, 0x20));
|
||||
lcd_put_lchar(TERN(LCD_INFO_SCREEN_STYLE, 11, timepos), 2, 'E');
|
||||
#if LCD_INFO_SCREEN_STYLE == 0
|
||||
const uint8_t timepos = TPOFFSET - elapsedt.toDigital(buffer);
|
||||
lcd_put_lchar(timepos - 1, 2, ' ');
|
||||
#endif
|
||||
lcd_put_lchar(
|
||||
#if LCD_INFO_SCREEN_STYLE == 0
|
||||
timepos
|
||||
#else
|
||||
11
|
||||
#endif
|
||||
, 2, 'E'
|
||||
);
|
||||
lcd_put_u8str(buffer);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,10 +74,13 @@ void lv_draw_advance_settings() {
|
|||
scr = lv_screen_create(ADVANCED_UI, machine_menu.AdvancedConfTitle);
|
||||
|
||||
int index = 0;
|
||||
lv_screen_menu_item(scr, machine_menu.PausePosition, PARA_UI_POS_X, PARA_UI_POS_Y, event_handler, ID_PAUSE_POS, index++);
|
||||
lv_screen_menu_item(scr, machine_menu.FilamentConf, PARA_UI_POS_X, PARA_UI_POS_Y * 2, event_handler, ID_FILAMENT_SETTINGS, index++);
|
||||
lv_screen_menu_item(scr, machine_menu.PausePosition, PARA_UI_POS_X, PARA_UI_POS_Y, event_handler, ID_PAUSE_POS, index);
|
||||
index++;
|
||||
lv_screen_menu_item(scr, machine_menu.FilamentConf, PARA_UI_POS_X, PARA_UI_POS_Y * 2, event_handler, ID_FILAMENT_SETTINGS, index);
|
||||
index++;
|
||||
#if ENABLED(MKS_WIFI_MODULE)
|
||||
lv_screen_menu_item(scr, machine_menu.WifiSettings, PARA_UI_POS_X, PARA_UI_POS_Y * 3, event_handler, ID_WIFI_PARA, index++);
|
||||
lv_screen_menu_item(scr, machine_menu.WifiSettings, PARA_UI_POS_X, PARA_UI_POS_Y * 3, event_handler, ID_WIFI_PARA, index);
|
||||
index++;
|
||||
#endif
|
||||
#if HAS_ROTARY_ENCODER
|
||||
lv_screen_menu_item(scr, machine_menu.EncoderSettings, PARA_UI_POS_X, PARA_UI_POS_Y * (index + 1), event_handler, ID_ENCODER_SETTINGS, index);
|
||||
|
|
|
|||
|
|
@ -69,17 +69,21 @@ void lv_draw_motor_settings() {
|
|||
scr = lv_screen_create(MOTOR_SETTINGS_UI, machine_menu.MotorConfTitle);
|
||||
|
||||
#if ENABLED(EDITABLE_STEPS_PER_UNIT)
|
||||
lv_screen_menu_item(scr, machine_menu.StepsConf, PARA_UI_POS_X, PARA_UI_POS_Y, event_handler, ID_MOTOR_STEPS, index++);
|
||||
lv_screen_menu_item(scr, machine_menu.StepsConf, PARA_UI_POS_X, PARA_UI_POS_Y, event_handler, ID_MOTOR_STEPS, index);
|
||||
index++;
|
||||
#endif
|
||||
|
||||
#if USE_SENSORLESS
|
||||
lv_screen_menu_item(scr, machine_menu.HomingSensitivityConf, PARA_UI_POS_X, PARA_UI_POS_Y * (index + 1), event_handler, ID_HOME_SENSE, index++);
|
||||
lv_screen_menu_item(scr, machine_menu.HomingSensitivityConf, PARA_UI_POS_X, PARA_UI_POS_Y * (index + 1), event_handler, ID_HOME_SENSE, index);
|
||||
index++;
|
||||
#endif
|
||||
|
||||
#if HAS_TRINAMIC_CONFIG
|
||||
lv_screen_menu_item(scr, machine_menu.TMCcurrentConf, PARA_UI_POS_X, PARA_UI_POS_Y * (index + 1), event_handler, ID_MOTOR_TMC_CURRENT, index++);
|
||||
lv_screen_menu_item(scr, machine_menu.TMCcurrentConf, PARA_UI_POS_X, PARA_UI_POS_Y * (index + 1), event_handler, ID_MOTOR_TMC_CURRENT, index);
|
||||
index++;
|
||||
#if HAS_STEALTHCHOP
|
||||
lv_screen_menu_item(scr, machine_menu.TMCStepModeConf, PARA_UI_POS_X, PARA_UI_POS_Y * (index + 1), event_handler, ID_MOTOR_STEP_MODE, index++);
|
||||
lv_screen_menu_item(scr, machine_menu.TMCStepModeConf, PARA_UI_POS_X, PARA_UI_POS_Y * (index + 1), event_handler, ID_MOTOR_STEP_MODE, index);
|
||||
index++;
|
||||
#endif
|
||||
#endif
|
||||
lv_big_button_create(scr, "F:/bmp_back70x40.bin", common_menu.text_back, PARA_UI_BACK_POS_X + 10, PARA_UI_BACK_POS_Y, event_handler, ID_MOTOR_RETURN, true);
|
||||
|
|
|
|||
|
|
@ -887,8 +887,6 @@ uint8_t exploreDisk(const char * const path, const uint8_t recu_level, const boo
|
|||
|
||||
const int16_t fileCnt = card.get_num_items();
|
||||
|
||||
MediaFile file;
|
||||
MediaFile *diveDir;
|
||||
for (int16_t i = 0; i < fileCnt; i++) {
|
||||
card.selectFileByIndexSorted(i);
|
||||
|
||||
|
|
@ -913,7 +911,7 @@ uint8_t exploreDisk(const char * const path, const uint8_t recu_level, const boo
|
|||
}
|
||||
|
||||
static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
||||
int8_t tempBuf[100] = { 0 };
|
||||
char tempBuf[100] = { '\0' };
|
||||
int cmd_value;
|
||||
volatile int print_rate;
|
||||
|
||||
|
|
@ -961,7 +959,7 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
while (mStr[index] == ' ') index++;
|
||||
|
||||
if (gCfgItems.wifi_type == ESP_WIFI) {
|
||||
char * const path = (char *)tempBuf;
|
||||
char * const path = tempBuf;
|
||||
if (strlen(&mStr[index]) < 80) {
|
||||
print_to_wifi(STR_BEGIN_FILE_LIST "\r\n");
|
||||
|
||||
|
|
@ -1149,7 +1147,7 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
if (uiCfg.print_state == WORKING || uiCfg.print_state == PAUSED|| uiCfg.print_state == REPRINTING) {
|
||||
print_rate = uiCfg.totalSend;
|
||||
ZERO(tempBuf);
|
||||
sprintf_P((char *)tempBuf, PSTR("M27 %d\r\n"), print_rate);
|
||||
sprintf_P(tempBuf, PSTR("M27 %d\r\n"), print_rate);
|
||||
print_to_wifi(tempBuf);
|
||||
}
|
||||
break;
|
||||
|
|
@ -1166,11 +1164,11 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
|
||||
if (gCfgItems.fileSysType == FILE_SYS_SD) {
|
||||
ZERO(tempBuf);
|
||||
sprintf_P((char *)tempBuf, PSTR("%s"), file_writer.saveFileName);
|
||||
sprintf_P(tempBuf, PSTR("%s"), file_writer.saveFileName);
|
||||
}
|
||||
else if (gCfgItems.fileSysType == FILE_SYS_USB) {
|
||||
ZERO(tempBuf);
|
||||
sprintf_P((char *)tempBuf, PSTR("%s"), (char *)file_writer.saveFileName);
|
||||
sprintf_P(tempBuf, PSTR("%s"), (char *)file_writer.saveFileName);
|
||||
}
|
||||
mount_file_sys(gCfgItems.fileSysType);
|
||||
|
||||
|
|
@ -1181,7 +1179,7 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
ZERO(file_writer.saveFileName);
|
||||
strcpy((char *)file_writer.saveFileName, &mStr[index]);
|
||||
ZERO(tempBuf);
|
||||
sprintf_P((char *)tempBuf, PSTR("Writing to file: %s\r\n"), (char *)file_writer.saveFileName);
|
||||
sprintf_P(tempBuf, PSTR("Writing to file: %s\r\n"), (char *)file_writer.saveFileName);
|
||||
wifi_ret_ack();
|
||||
print_to_wifi(tempBuf);
|
||||
wifi_link_state = WIFI_WAIT_TRANS_START;
|
||||
|
|
@ -1203,7 +1201,7 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
|
||||
send_ok_to_wifi();
|
||||
|
||||
char *outBuf = (char *)tempBuf;
|
||||
char *outBuf = tempBuf;
|
||||
char tbuf[34];
|
||||
|
||||
sprintf_P(tbuf, PSTR("%d /%d"), thermalManager.wholeDegHotend(0), thermalManager.degTargetHotend(0));
|
||||
|
|
@ -1237,7 +1235,7 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
strcat_P(outBuf, PSTR(" @:0 B@:0\r\n"));
|
||||
}
|
||||
else {
|
||||
sprintf_P((char *)tempBuf, PSTR("T:%d /%d B:%d /%d T0:%d /%d T1:%d /%d @:0 B@:0\r\n"),
|
||||
sprintf_P(tempBuf, PSTR("T:%d /%d B:%d /%d T0:%d /%d T1:%d /%d @:0 B@:0\r\n"),
|
||||
thermalManager.wholeDegHotend(0), thermalManager.degTargetHotend(0),
|
||||
TERN0(HAS_HEATED_BED, thermalManager.wholeDegBed()),
|
||||
TERN0(HAS_HEATED_BED, thermalManager.degTargetBed()),
|
||||
|
|
@ -1254,7 +1252,7 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
case 992:
|
||||
if (uiCfg.print_state == WORKING || uiCfg.print_state == PAUSED) {
|
||||
ZERO(tempBuf);
|
||||
sprintf_P((char *)tempBuf, PSTR("M992 %d%d:%d%d:%d%d\r\n"), print_time.hours/10, print_time.hours%10, print_time.minutes/10, print_time.minutes%10, print_time.seconds/10, print_time.seconds%10);
|
||||
sprintf_P(tempBuf, PSTR("M992 %d%d:%d%d:%d%d\r\n"), print_time.hours/10, print_time.hours%10, print_time.minutes/10, print_time.minutes%10, print_time.seconds/10, print_time.seconds%10);
|
||||
wifi_ret_ack();
|
||||
print_to_wifi(tempBuf);
|
||||
}
|
||||
|
|
@ -1264,7 +1262,7 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
|
|||
if (uiCfg.print_state == WORKING || uiCfg.print_state == PAUSED) {
|
||||
ZERO(tempBuf);
|
||||
if (strlen((char *)list_file.file_name[sel_id]) > (100 - 1)) return;
|
||||
sprintf_P((char *)tempBuf, PSTR("M994 %s;%d\n"), list_file.file_name[sel_id], (int)gCfgItems.curFilesize);
|
||||
sprintf_P(tempBuf, PSTR("M994 %s;%d\n"), list_file.file_name[sel_id], (int)gCfgItems.curFilesize);
|
||||
wifi_ret_ack();
|
||||
print_to_wifi(tempBuf);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -107,6 +107,8 @@ xyz_pos_t Probe::offset; // Initialized by settings.load
|
|||
|
||||
#if HAS_PROBE_XY_OFFSET
|
||||
const xy_pos_t &Probe::offset_xy = Probe::offset;
|
||||
#else
|
||||
constexpr xy_pos_t Probe::offset_xy;
|
||||
#endif
|
||||
|
||||
#if ENABLED(SENSORLESS_PROBING)
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ echo "Building example $CONFIG..."
|
|||
# If doing many builds get a list of all environment names,
|
||||
# which also gives us the number of environments.
|
||||
if ((MANY)); then
|
||||
ENVLIST=$(mfenvs) # BOARD_NAME_STRING (1234): [ env1 env2 env3 ... ]
|
||||
ENVLIST=$(mfenvs -n) # BOARD_NAME_STRING (1234): [ env1 env2 env3 ... ]
|
||||
ENVLIST=${ENVLIST##*: [ }
|
||||
ENVARRAY=(${ENVLIST% ]})
|
||||
ENVCOUNT=${#ENVARRAY[*]}
|
||||
|
|
@ -236,7 +236,7 @@ while ((1)); do
|
|||
fi
|
||||
|
||||
# When building many, create sub-folders for each build env name
|
||||
if [[ -n $MANY && $ENVCOUNT -gt 1 ]]; then
|
||||
if [[ -n $MANY ]]; then
|
||||
ENV=${ENVARRAY[BUILDINDEX-1]}
|
||||
ARCENVSUB="$ARCSUB/$ENV"
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
# mfenvs Print the current board and environment information
|
||||
# Use -n to remove "*_xfer" environments from the list.
|
||||
# Output -> "SHORT_NAME (###): [ env1 env2 env3 ... ]"
|
||||
#
|
||||
|
||||
|
|
@ -27,6 +28,7 @@ BLINE=$( grep -E "define\s+BOARD_$MB\b" Marlin/src/core/boards.h )
|
|||
BNUM=$( sed -E 's/^.+BOARD_[^ ]+ +([0-9]+).+$/\1/' <<<"$BLINE" )
|
||||
[[ -z $BNUM ]] && { echo "Error - Can't find BOARD_$MB in core/boards.h." ; exit 1 ; }
|
||||
ENVS=( $( grep -EA1 "MB\(.*\b$MB\b.*\)" Marlin/src/pins/pins.h | grep -E "#include.+//.+(env|$SYS):[^ ]+" | grep -oE "(env|$SYS):[^ ]+" | sed -E "s/(env|$SYS)://" ) )
|
||||
[[ "$1" = "-n" ]] && ENVS=( $(printf "%s\n" "${ENVS[@]}" | grep -v "_xfer$") )
|
||||
[[ -z $ENVS ]] && { errout "Error - Can't find target(s) for $MB ($BNUM)." ; exit 1 ; }
|
||||
ECOUNT=${#ENVS[*]}
|
||||
[[ $ECOUNT == 1 ]] && EOUT=$ENVS || EOUT="${ENVS[@]}"
|
||||
|
|
|
|||
|
|
@ -270,7 +270,7 @@ board_build.ldscript = mks_robin_pro.ld
|
|||
#
|
||||
[env:trigorilla_pro_maple]
|
||||
extends = env:mks_robin_maple
|
||||
build_flags = ${env:mks_robin_maple} -DSTM32_FLASH_SIZE=512
|
||||
build_flags = ${env:mks_robin_maple.build_flags} -DSTM32_FLASH_SIZE=512
|
||||
|
||||
#
|
||||
# MKS Robin E3D (STM32F103RCT6) and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue