Merge remote-tracking branch 'upstream/bugfix-2.0.x' into bugfix-2.0.x

This commit is contained in:
Foxies 2020-10-28 03:48:29 +01:00
commit b9f077d1b7
17 changed files with 65 additions and 47 deletions

View file

@ -36,6 +36,7 @@ jobs:
# Base Environments # Base Environments
- DUE - DUE
- DUE_archim
- esp32 - esp32
- linux_native - linux_native
- mega2560 - mega2560

View file

@ -477,7 +477,7 @@
#define DIO91_PIN 15 #define DIO91_PIN 15
#define DIO91_WPORT PIOB #define DIO91_WPORT PIOB
#if ARDUINO_SAM_ARCHIM #ifdef ARDUINO_SAM_ARCHIM
#define DIO92_PIN 11 #define DIO92_PIN 11
#define DIO92_WPORT PIOC #define DIO92_WPORT PIOC

View file

@ -129,15 +129,19 @@ void GcodeSuite::G35() {
const float z_probed_height = probe.probe_at_point(screws_tilt_adjust_pos[i], PROBE_PT_RAISE, 0, true); const float z_probed_height = probe.probe_at_point(screws_tilt_adjust_pos[i], PROBE_PT_RAISE, 0, true);
if (isnan(z_probed_height)) { if (isnan(z_probed_height)) {
SERIAL_ECHOPAIR("G35 failed at point ", int(i), " (", tramming_point_name[i], ")"); SERIAL_ECHOPAIR("G35 failed at point ", int(i), " (");
SERIAL_ECHOPGM_P((char *)pgm_read_ptr(&tramming_point_name[i]));
SERIAL_CHAR(')');
SERIAL_ECHOLNPAIR_P(SP_X_STR, screws_tilt_adjust_pos[i].x, SP_Y_STR, screws_tilt_adjust_pos[i].y); SERIAL_ECHOLNPAIR_P(SP_X_STR, screws_tilt_adjust_pos[i].x, SP_Y_STR, screws_tilt_adjust_pos[i].y);
err_break = true; err_break = true;
break; break;
} }
if (DEBUGGING(LEVELING)) { if (DEBUGGING(LEVELING)) {
DEBUG_ECHOPAIR("Probing point ", int(i), " (", tramming_point_name[i], ")"); DEBUG_ECHOPAIR("Probing point ", int(i), " (");
SERIAL_ECHOLNPAIR_P(SP_X_STR, screws_tilt_adjust_pos[i].x, SP_Y_STR, screws_tilt_adjust_pos[i].y, SP_Z_STR, z_probed_height); DEBUG_PRINT_P((char *)pgm_read_ptr(&tramming_point_name[i]));
DEBUG_CHAR(')');
DEBUG_ECHOLNPAIR_P(SP_X_STR, screws_tilt_adjust_pos[i].x, SP_Y_STR, screws_tilt_adjust_pos[i].y, SP_Z_STR, z_probed_height);
} }
z_measured[i] = z_probed_height; z_measured[i] = z_probed_height;
@ -155,9 +159,9 @@ void GcodeSuite::G35() {
const float decimal_part = adjust - float(full_turns); const float decimal_part = adjust - float(full_turns);
const int minutes = trunc(decimal_part * 60.0f); const int minutes = trunc(decimal_part * 60.0f);
SERIAL_ECHOPAIR("Turn ", tramming_point_name[i], SERIAL_ECHOPGM("Turn ");
" ", (screw_thread & 1) == (adjust > 0) ? "CCW" : "CW", SERIAL_ECHOPGM_P((char *)pgm_read_ptr(&tramming_point_name[i]));
" by ", abs(full_turns), " turns"); SERIAL_ECHOPAIR(" ", (screw_thread & 1) == (adjust > 0) ? "CCW" : "CW", " by ", abs(full_turns), " turns");
if (minutes) SERIAL_ECHOPAIR(" and ", abs(minutes), " minutes"); if (minutes) SERIAL_ECHOPAIR(" and ", abs(minutes), " minutes");
if (ENABLED(REPORT_TRAMMING_MM)) SERIAL_ECHOPAIR(" (", -diff, "mm)"); if (ENABLED(REPORT_TRAMMING_MM)) SERIAL_ECHOPAIR(" (", -diff, "mm)");
SERIAL_EOL(); SERIAL_EOL();

View file

@ -42,7 +42,7 @@
* version was tagged. * version was tagged.
*/ */
#ifndef STRING_DISTRIBUTION_DATE #ifndef STRING_DISTRIBUTION_DATE
#define STRING_DISTRIBUTION_DATE "2020-10-27" #define STRING_DISTRIBUTION_DATE "2020-10-28"
#endif #endif
/** /**

View file

@ -21,7 +21,7 @@
*/ */
#pragma once #pragma once
#include "../../inc/MarlinConfigPre.h" #include "../../../../inc/MarlinConfigPre.h"
#if HAS_TFT_LVGL_UI #if HAS_TFT_LVGL_UI

View file

@ -50,20 +50,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
void lv_draw_about(void) { void lv_draw_about(void) {
scr = lv_screen_create(ABOUT_UI); scr = lv_screen_create(ABOUT_UI);
lv_big_button_create(scr, "F:/bmp_return.bin", common_menu.text_back, BTN_X_PIXEL * 3 + INTERVAL_V * 4, BTN_Y_PIXEL + INTERVAL_H + titleHeight, event_handler, ID_A_RETURN);
// Create an Image button
lv_obj_t *buttonBack = lv_imgbtn_create(scr, "F:/bmp_return.bin", BTN_X_PIXEL * 3 + INTERVAL_V * 4, BTN_Y_PIXEL + INTERVAL_H + titleHeight, event_handler, ID_A_RETURN);
#if HAS_ROTARY_ENCODER
if (gCfgItems.encoder_enable) lv_group_add_obj(g, buttonBack);
#endif
// Create a label on the image button
lv_obj_t *label_Back = lv_label_create_empty(buttonBack);
if (gCfgItems.multiple_language) {
lv_label_set_text(label_Back, common_menu.text_back);
lv_obj_align(label_Back, buttonBack, LV_ALIGN_IN_BOTTOM_MID, 0, BUTTON_TEXT_Y_OFFSET);
}
//fw_version = lv_label_create(scr, SHORT_BUILD_VERSION); //fw_version = lv_label_create(scr, SHORT_BUILD_VERSION);
//lv_obj_align(fw_version, nullptr, LV_ALIGN_CENTER, 0, -60); //lv_obj_align(fw_version, nullptr, LV_ALIGN_CENTER, 0, -60);

View file

@ -214,7 +214,7 @@ void lv_draw_dialog(uint8_t type) {
uiCfg.dialogType = type; uiCfg.dialogType = type;
scr = lv_screen_create(DIALOG_UI); scr = lv_screen_create(DIALOG_UI);
lv_obj_t *labelDialog = lv_label_create_empty(scr); lv_obj_t *labelDialog = lv_label_create(scr, "");
if (DIALOG_IS(TYPE_FINISH_PRINT, PAUSE_MESSAGE_RESUME)) { if (DIALOG_IS(TYPE_FINISH_PRINT, PAUSE_MESSAGE_RESUME)) {
btnOk = lv_button_btn_create(scr, BTN_OK_X + 90, BTN_OK_Y, 100, 50, btn_ok_event_cb); btnOk = lv_button_btn_create(scr, BTN_OK_X + 90, BTN_OK_Y, 100, 50, btn_ok_event_cb);

View file

@ -208,11 +208,6 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
void lv_draw_print_file(void) { void lv_draw_print_file(void) {
//uint8_t i; //uint8_t i;
uint8_t file_count; uint8_t file_count;
if (disp_state_stack._disp_state[disp_state_stack._disp_index] != PRINT_FILE_UI) {
disp_state_stack._disp_index++;
disp_state_stack._disp_state[disp_state_stack._disp_index] = PRINT_FILE_UI;
}
disp_state = PRINT_FILE_UI;
curDirLever = 0; curDirLever = 0;
dir_offset[curDirLever].curPage = 0; dir_offset[curDirLever].curPage = 0;
@ -252,7 +247,7 @@ static char test_public_buf_l[40];
void disp_gcode_icon(uint8_t file_num) { void disp_gcode_icon(uint8_t file_num) {
uint8_t i; uint8_t i;
scr = lv_screen_create(MAIN_UI, ""); scr = lv_screen_create(PRINT_FILE_UI, "");
// Create image buttons // Create image buttons
buttonPageUp = lv_imgbtn_create(scr, "F:/bmp_pageUp.bin", OTHER_BTN_XPIEL * 3 + INTERVAL_V * 4, titleHeight, event_handler, ID_P_UP); buttonPageUp = lv_imgbtn_create(scr, "F:/bmp_pageUp.bin", OTHER_BTN_XPIEL * 3 + INTERVAL_V * 4, titleHeight, event_handler, ID_P_UP);

View file

@ -1640,7 +1640,6 @@ lv_obj_t* lv_screen_create(DISP_STATE newScreenType, const char* title) {
disp_state_stack._disp_state[disp_state_stack._disp_index] = newScreenType; disp_state_stack._disp_state[disp_state_stack._disp_index] = newScreenType;
} }
disp_state = newScreenType; disp_state = newScreenType;
lv_refr_now(lv_refr_get_disp_refreshing());
// title // title
lv_obj_t *titleLabel = nullptr; lv_obj_t *titleLabel = nullptr;
@ -1651,18 +1650,22 @@ lv_obj_t* lv_screen_create(DISP_STATE newScreenType, const char* title) {
if (titleLabel) if (titleLabel)
lv_obj_set_style(titleLabel, &tft_style_label_rel); lv_obj_set_style(titleLabel, &tft_style_label_rel);
lv_refr_now(lv_refr_get_disp_refreshing());
return scr; return scr;
} }
// Create an empty label // Create an empty label
lv_obj_t* lv_label_create_empty(lv_obj_t *par) { lv_obj_t* lv_label_create_empty(lv_obj_t *par) {
return lv_label_create(par, (lv_obj_t*)nullptr); lv_obj_t *label = lv_label_create(par, (lv_obj_t*)nullptr);
return label;
} }
// Create a label with style and text // Create a label with style and text
lv_obj_t* lv_label_create(lv_obj_t *par, const char *text) { lv_obj_t* lv_label_create(lv_obj_t *par, const char *text) {
lv_obj_t *label = lv_label_create_empty(par); lv_obj_t *label = lv_label_create_empty(par);
if (text) lv_label_set_text(label, text); if (text) lv_label_set_text(label, text);
lv_obj_set_style(label, &tft_style_label_rel);
return label; return label;
} }

View file

@ -86,7 +86,7 @@
#include "draw_wifi_tips.h" #include "draw_wifi_tips.h"
#endif #endif
#include "../../inc/MarlinConfigPre.h" #include "../../../../inc/MarlinConfigPre.h"
#define FILE_SYS_USB 0 #define FILE_SYS_USB 0
#define FILE_SYS_SD 1 #define FILE_SYS_SD 1

View file

@ -488,6 +488,7 @@ uint8_t public_buf[512];
} }
void UpdateAssets() { void UpdateAssets() {
if (!card.isMounted()) return;
SdFile dir, root = card.getroot(); SdFile dir, root = card.getroot();
if (dir.open(&root, assetsPath, O_RDONLY)) { if (dir.open(&root, assetsPath, O_RDONLY)) {

View file

@ -43,7 +43,7 @@
#include "../../../../MarlinCore.h" #include "../../../../MarlinCore.h"
#include "../../../../inc/MarlinConfig.h" #include "../../../../inc/MarlinConfig.h"
#include HAL_PATH(../../HAL, tft/xpt2046.h) #include HAL_PATH(../../../../HAL, tft/xpt2046.h)
#include "../../../marlinui.h" #include "../../../marlinui.h"
XPT2046 touch; XPT2046 touch;
@ -116,17 +116,20 @@ void tft_lvgl_init() {
ui_cfg_init(); ui_cfg_init();
disp_language_init(); disp_language_init();
//init tft first! watchdog_refresh(); // LVGL init takes time
// Init TFT first!
SPI_TFT.spi_init(SPI_FULL_SPEED); SPI_TFT.spi_init(SPI_FULL_SPEED);
SPI_TFT.LCD_init(); SPI_TFT.LCD_init();
watchdog_refresh(); // LVGL init takes time
//spi_flash_read_test(); //spi_flash_read_test();
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
watchdog_refresh();
UpdateAssets(); UpdateAssets();
watchdog_refresh(); // LVGL init takes time
#endif #endif
watchdog_refresh();
mks_test_get(); mks_test_get();
touch.Init(); touch.Init();
@ -189,9 +192,11 @@ void tft_lvgl_init() {
lv_encoder_pin_init(); lv_encoder_pin_init();
bool ready = true;
#if ENABLED(POWER_LOSS_RECOVERY) #if ENABLED(POWER_LOSS_RECOVERY)
recovery.load(); recovery.load();
if (recovery.valid()) { if (recovery.valid()) {
ready = false;
if (gCfgItems.from_flash_pic) if (gCfgItems.from_flash_pic)
flash_preview_begin = true; flash_preview_begin = true;
else else
@ -201,14 +206,12 @@ void tft_lvgl_init() {
strncpy(public_buf_m, recovery.info.sd_filename, sizeof(public_buf_m)); strncpy(public_buf_m, recovery.info.sd_filename, sizeof(public_buf_m));
card.printLongPath(public_buf_m); card.printLongPath(public_buf_m);
strncpy(list_file.long_name[sel_id], card.longFilename, sizeof(list_file.long_name[sel_id])); strncpy(list_file.long_name[sel_id], card.longFilename, sizeof(list_file.long_name[sel_id]));
lv_draw_printing(); lv_draw_printing();
} }
else
#endif #endif
lv_draw_ready_print();
if (ready) lv_draw_ready_print();
if (mks_test_flag == 0x1E) if (mks_test_flag == 0x1E)
mks_gpio_test(); mks_gpio_test();

View file

@ -25,7 +25,7 @@
extern "C" { /* C-declarations for C++ */ extern "C" { /* C-declarations for C++ */
#endif #endif
#include "../../inc/MarlinConfigPre.h" #include "../../../../inc/MarlinConfigPre.h"
#include <math.h> #include <math.h>
#include <stdio.h> #include <stdio.h>

View file

@ -145,25 +145,25 @@ public:
return TERN(IS_KINEMATIC, return TERN(IS_KINEMATIC,
(X_CENTER) - probe_radius(), (X_CENTER) - probe_radius(),
_MAX((X_MIN_BED) + (PROBING_MARGIN_LEFT), (X_MIN_POS) + offset_xy.x) _MAX((X_MIN_BED) + (PROBING_MARGIN_LEFT), (X_MIN_POS) + offset_xy.x)
) - TERN0(NOZZLE_AS_PROBE, home_offset.x); ) - TERN0(NOZZLE_AS_PROBE, TERN0(HAS_HOME_OFFSET, home_offset.x));
} }
static inline float max_x() { static inline float max_x() {
return TERN(IS_KINEMATIC, return TERN(IS_KINEMATIC,
(X_CENTER) + probe_radius(), (X_CENTER) + probe_radius(),
_MIN((X_MAX_BED) - (PROBING_MARGIN_RIGHT), (X_MAX_POS) + offset_xy.x) _MIN((X_MAX_BED) - (PROBING_MARGIN_RIGHT), (X_MAX_POS) + offset_xy.x)
) - TERN0(NOZZLE_AS_PROBE, home_offset.x); ) - TERN0(NOZZLE_AS_PROBE, TERN0(HAS_HOME_OFFSET, home_offset.x));
} }
static inline float min_y() { static inline float min_y() {
return TERN(IS_KINEMATIC, return TERN(IS_KINEMATIC,
(Y_CENTER) - probe_radius(), (Y_CENTER) - probe_radius(),
_MAX((Y_MIN_BED) + (PROBING_MARGIN_FRONT), (Y_MIN_POS) + offset_xy.y) _MAX((Y_MIN_BED) + (PROBING_MARGIN_FRONT), (Y_MIN_POS) + offset_xy.y)
) - TERN0(NOZZLE_AS_PROBE, home_offset.y); ) - TERN0(NOZZLE_AS_PROBE, TERN0(HAS_HOME_OFFSET, home_offset.y));
} }
static inline float max_y() { static inline float max_y() {
return TERN(IS_KINEMATIC, return TERN(IS_KINEMATIC,
(Y_CENTER) + probe_radius(), (Y_CENTER) + probe_radius(),
_MIN((Y_MAX_BED) - (PROBING_MARGIN_BACK), (Y_MAX_POS) + offset_xy.y) _MIN((Y_MAX_BED) - (PROBING_MARGIN_BACK), (Y_MAX_POS) + offset_xy.y)
) - TERN0(NOZZLE_AS_PROBE, home_offset.y); ) - TERN0(NOZZLE_AS_PROBE, TERN0(HAS_HOME_OFFSET, home_offset.y));
} }
#if NEEDS_THREE_PROBE_POINTS #if NEEDS_THREE_PROBE_POINTS

View file

@ -483,7 +483,7 @@
#elif MB(ULTRATRONICS_PRO) #elif MB(ULTRATRONICS_PRO)
#include "sam/pins_ULTRATRONICS_PRO.h" // SAM3X8E env:DUE env:DUE_debug #include "sam/pins_ULTRATRONICS_PRO.h" // SAM3X8E env:DUE env:DUE_debug
#elif MB(ARCHIM1) #elif MB(ARCHIM1)
#include "sam/pins_ARCHIM1.h" // SAM3X8E env:DUE env:DUE_debug #include "sam/pins_ARCHIM1.h" // SAM3X8E env:DUE_archim env:DUE_archim_debug
#elif MB(ARCHIM2) #elif MB(ARCHIM2)
#include "sam/pins_ARCHIM2.h" // SAM3X8E env:DUE_archim env:DUE_archim_debug #include "sam/pins_ARCHIM2.h" // SAM3X8E env:DUE_archim env:DUE_archim_debug
#elif MB(ALLIGATOR) #elif MB(ALLIGATOR)

View file

@ -35,6 +35,9 @@ opt_add TEMP_CHAMBER_PIN 6
opt_set HEATER_CHAMBER_PIN 45 opt_set HEATER_CHAMBER_PIN 45
exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), ExtUI, S-Curve, many options." exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), ExtUI, S-Curve, many options."
#
# RADDS with BLTouch, ABL(B), 3 x Z auto-align
#
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_RADDS opt_set MOTHERBOARD BOARD_RADDS
opt_enable USE_XMAX_PLUG USE_YMAX_PLUG ENDSTOPPULLUPS BLTOUCH AUTO_BED_LEVELING_BILINEAR \ opt_enable USE_XMAX_PLUG USE_YMAX_PLUG ENDSTOPPULLUPS BLTOUCH AUTO_BED_LEVELING_BILINEAR \

View file

@ -0,0 +1,21 @@
#!/usr/bin/env bash
#
# Build tests for DUE (Atmel SAM3X8E ARM Cortex-M3)
#
# exit on first failure
set -e
#
# Test Archim 1
#
use_example_configs UltiMachine/Archim1
exec_test $1 $2 "Archim 1 base configuration"
#
# Test Archim 2
#
use_example_configs UltiMachine/Archim2
exec_test $1 $2 "Archim 2 base configuration"
restore_configs