Skip to content

Commit f8f68f9

Browse files
ellenspthinkyhead
andcommitted
🎨 MKS Hardware Test followup (#22414)
Co-authored-by: Scott Lahteine <[email protected]>
1 parent 7773504 commit f8f68f9

File tree

9 files changed

+170
-54
lines changed

9 files changed

+170
-54
lines changed

Marlin/src/lcd/extui/mks_ui/draw_media_select.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ enum {
3939
};
4040

4141
#if ENABLED(MKS_TEST)
42-
extern uint8_t curent_disp_ui;
42+
extern uint8_t current_disp_ui;
4343
#endif
4444

4545
static void event_handler(lv_obj_t *obj, lv_event_t event) {
@@ -49,7 +49,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
4949
case ID_T_USB_DISK: card.changeMedia(&card.media_driver_usbFlash); break;
5050
case ID_T_SD_DISK: card.changeMedia(&card.media_driver_sdcard); break;
5151
case ID_T_RETURN:
52-
TERN_(MKS_TEST, curent_disp_ui = 1);
52+
TERN_(MKS_TEST, current_disp_ui = 1);
5353
lv_draw_ready_print();
5454
return;
5555
}

Marlin/src/lcd/extui/mks_ui/draw_ready_print.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static lv_obj_t *buttonExt1, *labelExt1, *buttonFanstate, *labelFan;
6161
#endif
6262

6363
#if ENABLED(MKS_TEST)
64-
uint8_t curent_disp_ui = 0;
64+
uint8_t current_disp_ui = 0;
6565
#endif
6666

6767
enum { ID_TOOL = 1, ID_SET, ID_PRINT, ID_INFO_EXT, ID_INFO_BED, ID_INFO_FAN };
@@ -106,8 +106,10 @@ void disp_det_error() {
106106
lv_obj_t *e1, *e2, *e3, *bed;
107107
void mks_disp_test() {
108108
char buf[30] = {0};
109-
sprintf_P(buf, PSTR("e1:%d"), thermalManager.wholeDegHotend(0));
110-
lv_label_set_text(e1, buf);
109+
#if HAS_HOTEND
110+
sprintf_P(buf, PSTR("e1:%d"), thermalManager.wholeDegHotend(0));
111+
lv_label_set_text(e1, buf);
112+
#endif
111113
#if HAS_MULTI_HOTEND
112114
sprintf_P(buf, PSTR("e2:%d"), thermalManager.wholeDegHotend(1));
113115
lv_label_set_text(e2, buf);
@@ -126,7 +128,7 @@ void lv_draw_ready_print() {
126128
ZERO(disp_state_stack._disp_state);
127129
scr = lv_screen_create(PRINT_READY_UI, "");
128130

129-
if (TERN0(SDSUPPORT, mks_test_flag == 0x1E)) {
131+
if (mks_test_flag == 0x1E) {
130132
// Create image buttons
131133
buttonTool = lv_imgbtn_create(scr, "F:/bmp_tool.bin", event_handler, ID_TOOL);
132134

@@ -147,7 +149,7 @@ void lv_draw_ready_print() {
147149
#if HAS_MULTI_HOTEND
148150
e2 = lv_label_create_empty(scr);
149151
lv_obj_set_pos(e2, 20, 45);
150-
sprintf_P(buf, PSTR("e1: %d"), thermalManager.wholeDegHotend(1));
152+
sprintf_P(buf, PSTR("e2: %d"), thermalManager.wholeDegHotend(1));
151153
lv_label_set_text(e2, buf);
152154
#endif
153155
#if HAS_HEATED_BED

Marlin/src/lcd/extui/mks_ui/draw_tool.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ enum {
4545
};
4646

4747
#if ENABLED(MKS_TEST)
48-
extern uint8_t curent_disp_ui;
48+
extern uint8_t current_disp_ui;
4949
#endif
5050

5151
static void event_handler(lv_obj_t *obj, lv_event_t event) {
@@ -75,7 +75,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
7575
lv_draw_more();
7676
break;
7777
case ID_T_RETURN:
78-
TERN_(MKS_TEST, curent_disp_ui = 1);
78+
TERN_(MKS_TEST, current_disp_ui = 1);
7979
lv_draw_ready_print();
8080
break;
8181
}

Marlin/src/lcd/extui/mks_ui/draw_touch_calibration.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
static lv_obj_t *scr;
3535
static lv_obj_t *status_label;
3636

37+
#if ENABLED(MKS_TEST)
38+
extern uint8_t current_disp_ui;
39+
#endif
40+
3741
static void event_handler(lv_obj_t *obj, lv_event_t event);
3842

3943
enum {
@@ -93,7 +97,7 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
9397
if (event != LV_EVENT_RELEASED) return;
9498
switch (obj->mks_obj_id) {
9599
case ID_TC_RETURN:
96-
TERN_(MKS_TEST, curent_disp_ui = 1);
100+
TERN_(MKS_TEST, current_disp_ui = 1);
97101
lv_clear_touch_calibration_screen();
98102
draw_return_ui();
99103
break;

Marlin/src/lcd/extui/mks_ui/mks_hardware.cpp

Lines changed: 144 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,44 @@
3838
#if ENABLED(MKS_TEST)
3939

4040
#include "mks_hardware.h"
41+
#include "../../../module/endstops.h"
4142

4243
bool pw_det_sta, pw_off_sta, mt_det_sta;
4344
#if PIN_EXISTS(MT_DET_2)
4445
bool mt_det2_sta;
4546
#endif
46-
bool endstopx1_sta, endstopx2_sta, endstopy1_sta, endstopy2_sta, endstopz1_sta, endstopz2_sta;
47+
#if HAS_X_MIN || HAS_X_MAX
48+
bool endstopx1_sta;
49+
#else
50+
constexpr static bool endstopx1_sta = true;
51+
#endif
52+
#if HAS_X2_MIN || HAS_X2_MAX
53+
bool endstopx2_sta;
54+
#else
55+
constexpr static bool endstopx2_sta = true;
56+
#endif
57+
#if HAS_Y_MIN || HAS_Y_MAX
58+
bool endstopy1_sta;
59+
#else
60+
constexpr static bool endstopy1_sta = true;
61+
#endif
62+
#if HAS_Y2_MIN || HAS_Y2_MAX
63+
bool endstopy2_sta;
64+
#else
65+
constexpr static bool endstopy2_sta = true;
66+
#endif
67+
#if HAS_Z_MIN || HAS_Z_MAX
68+
bool endstopz1_sta;
69+
#else
70+
constexpr static bool endstopz1_sta = true;
71+
#endif
72+
#if HAS_Z2_MIN || HAS_Z2_MAX
73+
bool endstopz2_sta;
74+
#else
75+
constexpr static bool endstopz2_sta = true;
76+
#endif
77+
78+
#define ESTATE(S) (READ(S##_PIN) != S##_ENDSTOP_INVERTING)
4779

4880
void test_gpio_readlevel_L() {
4981
WRITE(WIFI_IO0_PIN, HIGH);
@@ -54,10 +86,36 @@
5486
#if PIN_EXISTS(MT_DET_2)
5587
mt_det2_sta = (READ(MT_DET_2_PIN) == LOW);
5688
#endif
57-
endstopx1_sta = (READ(X_MIN_PIN) == LOW);
58-
endstopy1_sta = (READ(Y_MIN_PIN) == LOW);
59-
endstopz1_sta = (READ(Z_MIN_PIN) == LOW);
60-
endstopz2_sta = (READ(Z_MAX_PIN) == LOW);
89+
#if HAS_X_MIN
90+
endstopx1_sta = ESTATE(X_MIN);
91+
#elif HAS_X_MAX
92+
endstopx1_sta = ESTATE(X_MAX);
93+
#endif
94+
#if HAS_X2_MIN
95+
endstopx2_sta = ESTATE(X2_MIN);
96+
#elif HAS_X2_MAX
97+
endstopx2_sta = ESTATE(X2_MAX);
98+
#endif
99+
#if HAS_Y_MIN
100+
endstopy1_sta = ESTATE(Y_MIN);
101+
#elif HAS_Y_MAX
102+
endstopy1_sta = ESTATE(Y_MAX);
103+
#endif
104+
#if HAS_Y2_MIN
105+
endstopy2_sta = ESTATE(Y2_MIN);
106+
#elif HAS_Y2_MAX
107+
endstopy2_sta = ESTATE(Y2_MAX);
108+
#endif
109+
#if HAS_Z_MIN
110+
endstopz1_sta = ESTATE(Z_MIN);
111+
#elif HAS_Z_MAX
112+
endstopz1_sta = ESTATE(Z_MAX);
113+
#endif
114+
#if HAS_Z2_MIN
115+
endstopz2_sta = ESTATE(Z2_MIN);
116+
#elif HAS_Z2_MAX
117+
endstopz2_sta = ESTATE(Z2_MAX);
118+
#endif
61119
}
62120

63121
void test_gpio_readlevel_H() {
@@ -69,44 +127,66 @@
69127
#if PIN_EXISTS(MT_DET_2)
70128
mt_det2_sta = (READ(MT_DET_2_PIN) == HIGH);
71129
#endif
72-
endstopx1_sta = (READ(X_MIN_PIN) == HIGH);
73-
endstopy1_sta = (READ(Y_MIN_PIN) == HIGH);
74-
endstopz1_sta = (READ(Z_MIN_PIN) == HIGH);
75-
endstopz2_sta = (READ(Z_MAX_PIN) == HIGH);
130+
#if HAS_X_MIN
131+
endstopx1_sta = !ESTATE(X_MIN);
132+
#elif HAS_X_MAX
133+
endstopx1_sta = !ESTATE(X_MAX);
134+
#endif
135+
#if HAS_X2_MIN
136+
endstopx2_sta = !ESTATE(X2_MIN);
137+
#elif HAS_X2_MAX
138+
endstopx2_sta = !ESTATE(X2_MAX);
139+
#endif
140+
#if HAS_Y_MIN
141+
endstopy1_sta = !ESTATE(Y_MIN);
142+
#elif HAS_Y_MAX
143+
endstopy1_sta = !ESTATE(Y_MAX);
144+
#endif
145+
#if HAS_Y2_MIN
146+
endstopy2_sta = !ESTATE(Y2_MIN);
147+
#elif HAS_Y2_MAX
148+
endstopy2_sta = !ESTATE(Y2_MAX);
149+
#endif
150+
#if HAS_Z_MIN
151+
endstopz1_sta = !ESTATE(Z_MIN);
152+
#elif HAS_Z_MAX
153+
endstopz1_sta = !ESTATE(Z_MAX);
154+
#endif
155+
#if HAS_Z2_MIN
156+
endstopz2_sta = !ESTATE(Z2_MIN);
157+
#elif HAS_Z2_MAX
158+
endstopz2_sta = !ESTATE(Z2_MAX);
159+
#endif
76160
}
77161

78162
void init_test_gpio() {
79-
SET_INPUT_PULLUP(X_MIN_PIN);
80-
SET_INPUT_PULLUP(Y_MIN_PIN);
81-
SET_INPUT_PULLUP(Z_MIN_PIN);
82-
SET_INPUT_PULLUP(Z_MAX_PIN);
163+
endstops.init();
83164

84165
SET_OUTPUT(WIFI_IO0_PIN);
85166

86-
SET_INPUT_PULLUP(MT_DET_1_PIN);
167+
#if PIN_EXISTS(MT_DET_1)
168+
SET_INPUT_PULLUP(MT_DET_1_PIN);
169+
#endif
87170
#if PIN_EXISTS(MT_DET_2)
88171
SET_INPUT_PULLUP(MT_DET_2_PIN);
89172
#endif
90173

91174
SET_INPUT_PULLUP(MKS_TEST_POWER_LOSS_PIN);
92175
SET_INPUT_PULLUP(MKS_TEST_PS_ON_PIN);
93-
94176
SET_INPUT_PULLUP(SERVO0_PIN);
95177

96-
SET_OUTPUT(X_ENABLE_PIN);
97-
SET_OUTPUT(Y_ENABLE_PIN);
98-
SET_OUTPUT(Z_ENABLE_PIN);
99-
SET_OUTPUT(E0_ENABLE_PIN);
100-
#if DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
101-
SET_OUTPUT(E1_ENABLE_PIN);
178+
OUT_WRITE(X_ENABLE_PIN, LOW);
179+
#if HAS_Y_AXIS
180+
OUT_WRITE(Y_ENABLE_PIN, LOW);
102181
#endif
103-
104-
WRITE(X_ENABLE_PIN, LOW);
105-
WRITE(Y_ENABLE_PIN, LOW);
106-
WRITE(Z_ENABLE_PIN, LOW);
107-
WRITE(E0_ENABLE_PIN, LOW);
108-
#if DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
109-
WRITE(E1_ENABLE_PIN, LOW);
182+
#if HAS_Z_AXIS
183+
OUT_WRITE(Z_ENABLE_PIN, LOW);
184+
#endif
185+
#if HAS_EXTRUDERS
186+
OUT_WRITE(E0_ENABLE_PIN, LOW);
187+
#endif
188+
#if HAS_MULTI_EXTRUDER && DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
189+
OUT_WRITE(E1_ENABLE_PIN, LOW);
110190
#endif
111191

112192
#if ENABLED(MKS_HARDWARE_TEST_ONLY_E0)
@@ -161,34 +241,54 @@
161241

162242
void mks_hardware_test() {
163243
if (millis() % 2000 < 1000) {
244+
thermalManager.fan_speed[0] = 255;
164245
WRITE(X_DIR_PIN, LOW);
165-
WRITE(Y_DIR_PIN, LOW);
166-
WRITE(Z_DIR_PIN, LOW);
167-
WRITE(E0_DIR_PIN, LOW);
168-
#if DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
246+
#if HAS_Y_AXIS
247+
WRITE(Y_DIR_PIN, LOW);
248+
#endif
249+
#if HAS_Z_AXIS
250+
WRITE(Z_DIR_PIN, LOW);
251+
#endif
252+
#if HAS_EXTRUDERS
253+
WRITE(E0_DIR_PIN, LOW);
254+
#endif
255+
#if HAS_MULTI_EXTRUDER && DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
169256
WRITE(E1_DIR_PIN, LOW);
170257
#endif
171-
thermalManager.fan_speed[0] = 255;
172-
#if DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
258+
#if HAS_MULTI_HOTEND && DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
173259
WRITE(HEATER_1_PIN, HIGH); // HE1
174260
#endif
175-
WRITE(HEATER_0_PIN, HIGH); // HE0
176-
WRITE(HEATER_BED_PIN, HIGH); // HOT-BED
261+
#if HAS_HOTEND
262+
WRITE(HEATER_0_PIN, HIGH); // HE0
263+
#endif
264+
#if HAS_HEATED_BED
265+
WRITE(HEATER_BED_PIN, HIGH); // HOT-BED
266+
#endif
177267
}
178268
else {
269+
thermalManager.fan_speed[0] = 0;
179270
WRITE(X_DIR_PIN, HIGH);
180-
WRITE(Y_DIR_PIN, HIGH);
181-
WRITE(Z_DIR_PIN, HIGH);
182-
WRITE(E0_DIR_PIN, HIGH);
183-
#if DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
271+
#if HAS_Y_AXIS
272+
WRITE(Y_DIR_PIN, HIGH);
273+
#endif
274+
#if HAS_Y_AXIS
275+
WRITE(Z_DIR_PIN, HIGH);
276+
#endif
277+
#if HAS_EXTRUDERS
278+
WRITE(E0_DIR_PIN, HIGH);
279+
#endif
280+
#if HAS_MULTI_EXTRUDER && DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
184281
WRITE(E1_DIR_PIN, HIGH);
185282
#endif
186-
thermalManager.fan_speed[0] = 0;
187-
#if DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
283+
#if HAS_MULTI_HOTEND && DISABLED(MKS_HARDWARE_TEST_ONLY_E0)
188284
WRITE(HEATER_1_PIN, LOW); // HE1
189285
#endif
190-
WRITE(HEATER_0_PIN, LOW); // HE0
191-
WRITE(HEATER_BED_PIN, LOW); // HOT-BED
286+
#if HAS_HOTEND
287+
WRITE(HEATER_0_PIN, LOW); // HE0
288+
#endif
289+
#if HAS_HEATED_BED
290+
WRITE(HEATER_BED_PIN, LOW); // HOT-BED
291+
#endif
192292
}
193293

194294
if (endstopx1_sta && endstopx2_sta && endstopy1_sta && endstopy2_sta && endstopz1_sta && endstopz2_sta) {

Marlin/src/lcd/extui/mks_ui/mks_hardware.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
void mks_test_get();
3232
void mks_gpio_test();
3333
extern uint8_t mks_test_flag;
34+
#else
35+
#define mks_test_flag 0
3436
#endif
3537

3638
// String display and assets

Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,12 @@
220220
#define WIFI_RESET_PIN PE9 // MKS ESP WIFI RESET PIN
221221
#endif
222222

223+
// MKS TEST
224+
#if ENABLED(MKS_TEST)
225+
#define MKS_TEST_POWER_LOSS_PIN PA13 // PW_DET
226+
#define MKS_TEST_PS_ON_PIN PB2 // PW_OFF
227+
#endif
228+
223229
//
224230
// Onboard SD card
225231
//

buildroot/tests/mks_robin_nano35

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use_example_configs Mks/Robin
2222
opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
2323
opt_disable TFT_INTERFACE_FSMC
2424
opt_enable TFT_INTERFACE_SPI MKS_WIFI_MODULE
25+
opt_add MKS_TEST
2526
exec_test $1 $2 "MKS Robin v2 nano Emulated DOGM SPI, MKS_WIFI_MODULE" "$3"
2627

2728
#

buildroot/tests/mks_robin_nano35_maple

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use_example_configs Mks/Robin
3232
opt_set MOTHERBOARD BOARD_MKS_ROBIN_NANO_V2
3333
opt_disable TFT_INTERFACE_FSMC TFT_COLOR_UI TOUCH_SCREEN TFT_RES_320x240 SERIAL_PORT_2
3434
opt_enable TFT_INTERFACE_SPI TFT_LVGL_UI TFT_RES_480x320 MKS_WIFI_MODULE
35+
opt_add MKS_TEST
3536
exec_test $1 $2 "MKS Robin v2 nano LVGL SPI w/ WiFi" "$3"
3637

3738
#

0 commit comments

Comments
 (0)