Skip to content

Commit 204de72

Browse files
authored
✨ BIQU MicroProbe (MarlinFirmware#26527)
1 parent 80cd89d commit 204de72

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+327
-12
lines changed

Marlin/Configuration.h

+11
Original file line numberDiff line numberDiff line change
@@ -1446,6 +1446,17 @@
14461446
//#define BD_SENSOR_PROBE_NO_STOP // Probe bed without stopping at each probe point
14471447
#endif
14481448

1449+
/**
1450+
* BIQU MicroProbe
1451+
*
1452+
* A lightweight, solenoid-driven probe.
1453+
* For information about this sensor https://github.com/bigtreetech/MicroProbe
1454+
*
1455+
* Also requires: PROBE_ENABLE_DISABLE
1456+
*/
1457+
//#define BIQU_MICROPROBE_V1 // Triggers HIGH
1458+
//#define BIQU_MICROPROBE_V2 // Triggers LOW
1459+
14491460
// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN)
14501461
//#define SOLENOID_PROBE
14511462

Marlin/src/core/utility.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ void safe_delay(millis_t ms) {
8080
TERN_(Z_PROBE_ALLEN_KEY, "Z_PROBE_ALLEN_KEY")
8181
TERN_(SOLENOID_PROBE, "SOLENOID_PROBE")
8282
TERN_(MAGLEV4, "MAGLEV4")
83+
TERN_(BIQU_MICROPROBE_V1, "BIQU_MICROPROBE_V1")
84+
TERN_(BIQU_MICROPROBE_V2, "BIQU_MICROPROBE_V2")
8385
IF_DISABLED(PROBE_SELECTED, "NONE")
8486
);
8587

Marlin/src/inc/Conditionals_LCD.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1169,7 +1169,7 @@
11691169
/**
11701170
* Set flags for any form of bed probe
11711171
*/
1172-
#if ANY(TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, HAS_Z_SERVO_PROBE, SOLENOID_PROBE, Z_PROBE_SLED, RACK_AND_PINION_PROBE, SENSORLESS_PROBING, MAGLEV4, MAG_MOUNTED_PROBE)
1172+
#if ANY(TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, HAS_Z_SERVO_PROBE, SOLENOID_PROBE, Z_PROBE_SLED, RACK_AND_PINION_PROBE, SENSORLESS_PROBING, MAGLEV4, MAG_MOUNTED_PROBE, BIQU_MICROPROBE_V1, BIQU_MICROPROBE_V2)
11731173
#define HAS_STOWABLE_PROBE 1
11741174
#endif
11751175
#if ANY(HAS_STOWABLE_PROBE, FIX_MOUNTED_PROBE, BD_SENSOR, NOZZLE_AS_PROBE)

Marlin/src/inc/SanityCheck.h

+49-2
Original file line numberDiff line numberDiff line change
@@ -1206,8 +1206,8 @@ static_assert(NUM_SERVOS <= NUM_SERVO_PLUGS, "NUM_SERVOS (or some servo index) i
12061206
*/
12071207
#if 1 < 0 \
12081208
+ (DISABLED(BLTOUCH) && HAS_Z_SERVO_PROBE) \
1209-
+ COUNT_ENABLED(PROBE_MANUALLY, BLTOUCH, BD_SENSOR, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, RACK_AND_PINION_PROBE, SENSORLESS_PROBING, MAGLEV4, MAG_MOUNTED_PROBE)
1210-
#error "Please enable only one probe option: PROBE_MANUALLY, SENSORLESS_PROBING, BLTOUCH, BD_SENSOR, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, MAGLEV4, MAG_MOUNTED_PROBE or Z Servo."
1209+
+ COUNT_ENABLED(PROBE_MANUALLY, BLTOUCH, BD_SENSOR, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, RACK_AND_PINION_PROBE, SENSORLESS_PROBING, MAGLEV4, MAG_MOUNTED_PROBE, BIQU_MICROPROBE_V1, BIQU_MICROPROBE_V2)
1210+
#error "Please enable only one probe option: PROBE_MANUALLY, SENSORLESS_PROBING, BLTOUCH, BD_SENSOR, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, MAGLEV4, MAG_MOUNTED_PROBE, BIQU_MICROPROBE_V1, BIQU_MICROPROBE_V2, or Z Servo."
12111211
#endif
12121212

12131213
#if HAS_BED_PROBE
@@ -1375,6 +1375,53 @@ static_assert(NUM_SERVOS <= NUM_SERVO_PLUGS, "NUM_SERVOS (or some servo index) i
13751375
#endif
13761376
#endif
13771377

1378+
/**
1379+
* BIQU MicroProbe requirements
1380+
*/
1381+
#if ANY(BIQU_MICROPROBE_V1, BIQU_MICROPROBE_V2)
1382+
#if DISABLED(PROBE_ENABLE_DISABLE)
1383+
#error "BIQU MicroProbe requires PROBE_ENABLE_DISABLE."
1384+
#elif !PIN_EXISTS(PROBE_ENABLE)
1385+
#error "BIQU MicroProbe requires a PROBE_ENABLE_PIN."
1386+
#endif
1387+
1388+
#if ENABLED(BIQU_MICROPROBE_V1)
1389+
#if ENABLED(INVERTED_PROBE_STATE)
1390+
#if Z_MIN_PROBE_ENDSTOP_HIT_STATE != LOW
1391+
#error "BIQU_MICROPROBE_V1 requires Z_MIN_PROBE_ENDSTOP_HIT_STATE LOW."
1392+
#endif
1393+
#elif Z_MIN_PROBE_ENDSTOP_HIT_STATE != HIGH
1394+
#error "BIQU_MICROPROBE_V1 requires Z_MIN_PROBE_ENDSTOP_HIT_STATE HIGH."
1395+
#endif
1396+
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
1397+
#if ENABLED(INVERTED_PROBE_STATE)
1398+
#if Z_MIN_ENDSTOP_HIT_STATE != LOW
1399+
#error "BIQU_MICROPROBE_V1 requires Z_MIN_ENDSTOP_HIT_STATE LOW."
1400+
#endif
1401+
#elif Z_MIN_ENDSTOP_HIT_STATE != HIGH
1402+
#error "BIQU_MICROPROBE_V1 requires Z_MIN_ENDSTOP_HIT_STATE HIGH."
1403+
#endif
1404+
#endif
1405+
#elif ENABLED(BIQU_MICROPROBE_V2)
1406+
#if ENABLED(INVERTED_PROBE_STATE)
1407+
#if Z_MIN_PROBE_ENDSTOP_HIT_STATE != HIGH
1408+
#error "BIQU_MICROPROBE_V2 requires Z_MIN_PROBE_ENDSTOP_HIT_STATE HIGH."
1409+
#endif
1410+
#elif Z_MIN_PROBE_ENDSTOP_HIT_STATE != LOW
1411+
#error "BIQU_MICROPROBE_V2 requires Z_MIN_PROBE_ENDSTOP_HIT_STATE LOW."
1412+
#endif
1413+
#if ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)
1414+
#if ENABLED(INVERTED_PROBE_STATE)
1415+
#if Z_MIN_ENDSTOP_HIT_STATE != HIGH
1416+
#error "BIQU_MICROPROBE_V2 requires Z_MIN_ENDSTOP_HIT_STATE HIGH."
1417+
#endif
1418+
#elif Z_MIN_ENDSTOP_HIT_STATE != LOW
1419+
#error "BIQU_MICROPROBE_V2 requires Z_MIN_ENDSTOP_HIT_STATE LOW."
1420+
#endif
1421+
#endif
1422+
#endif
1423+
#endif // BIQU_MICROPROBE_V1 || BIQU_MICROPROBE_V2
1424+
13781425
/**
13791426
* Require pin options and pins to be defined
13801427
*/

Marlin/src/pins/esp32/pins_MKS_TINYBEE.h

+7
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,13 @@
5353
#define Z_STOP_PIN 22
5454
//#define FIL_RUNOUT_PIN 35
5555

56+
//
57+
// Probe enable
58+
//
59+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
60+
#define PROBE_ENABLE_PIN SERVO0_PIN
61+
#endif
62+
5663
//
5764
// Enable I2S stepper stream
5865
//

Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h

+7
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,13 @@
9696
#define Z_MIN_PROBE_PIN P1_24
9797
#endif
9898

99+
//
100+
// Probe enable
101+
//
102+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
103+
#define PROBE_ENABLE_PIN SERVO0_PIN
104+
#endif
105+
99106
//
100107
// Filament Runout Sensor
101108
//

Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_4.h

+7
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,13 @@
134134
#define Z_MIN_PROBE_PIN P0_10
135135
#endif
136136

137+
//
138+
// Probe enable
139+
//
140+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
141+
#define PROBE_ENABLE_PIN SERVO0_PIN
142+
#endif
143+
137144
//
138145
// Filament Runout Sensor
139146
//

Marlin/src/pins/lpc1768/pins_MKS_SBASE.h

+7
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,13 @@
6363
#define Z_MIN_PROBE_PIN P4_28 // Connector J8
6464
#endif
6565

66+
//
67+
// Probe enable
68+
//
69+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
70+
#define PROBE_ENABLE_PIN SERVO0_PIN
71+
#endif
72+
6673
//
6774
// Steppers
6875
//

Marlin/src/pins/lpc1768/pins_MKS_SGEN_L.h

+7
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,13 @@
9595
#define Z_MIN_PROBE_PIN P1_24
9696
#endif
9797

98+
//
99+
// Probe enable
100+
//
101+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
102+
#define PROBE_ENABLE_PIN SERVO0_PIN
103+
#endif
104+
98105
//
99106
// Steppers
100107
//

Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h

+7
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,13 @@
6666
#define Z_MIN_PROBE_PIN P1_22
6767
#endif
6868

69+
//
70+
// Probe enable
71+
//
72+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
73+
#define PROBE_ENABLE_PIN SERVO0_PIN
74+
#endif
75+
6976
//
7077
// Filament Runout Sensor
7178
//

Marlin/src/pins/lpc1769/pins_MKS_SGEN_L_V2.h

+7
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,13 @@
103103
#define Z_MIN_PROBE_PIN P1_24
104104
#endif
105105

106+
//
107+
// Probe enable
108+
//
109+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
110+
#define PROBE_ENABLE_PIN SERVO0_PIN
111+
#endif
112+
106113
//
107114
// Filament Runout Sensor
108115
//

Marlin/src/pins/ramps/pins_K8400.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
//
5959
#define FAN0_PIN 8
6060

61-
#if ANY(BLTOUCH, TOUCH_MI_PROBE)
61+
#if ANY(BLTOUCH, TOUCH_MI_PROBE, BIQU_MICROPROBE_V1, BIQU_MICROPROBE_V2)
6262
#define INVERTED_PROBE_STATE
6363
#endif
6464

Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h

+7
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@
5555
//
5656
#define Z_MIN_PROBE_PIN PC14 // PROBE
5757

58+
//
59+
// Probe enable
60+
//
61+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
62+
#define PROBE_ENABLE_PIN SERVO0_PIN
63+
#endif
64+
5865
//
5966
// Filament Runout Sensor
6067
//

Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h

+7
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,13 @@
5555
//
5656
#define Z_MIN_PROBE_PIN PC14 // PROBE
5757

58+
//
59+
// Probe enable
60+
//
61+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
62+
#define PROBE_ENABLE_PIN SERVO0_PIN
63+
#endif
64+
5865
//
5966
// Filament Runout Sensor
6067
//

Marlin/src/pins/stm32f1/pins_CREALITY_V24S1_301.h

+7
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@
6060
#define Z_MIN_PROBE_PIN PC14 // BLTouch IN
6161
#endif
6262

63+
//
64+
// Probe enable
65+
//
66+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
67+
#define PROBE_ENABLE_PIN SERVO0_PIN
68+
#endif
69+
6370
//
6471
// Filament Runout Sensor
6572
//

Marlin/src/pins/stm32f1/pins_CREALITY_V25S1.h

+5
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,16 @@
6363
#define Y_STOP_PIN PC5
6464
#define Z_STOP_PIN PC15
6565

66+
//
67+
// Probe
68+
//
6669
#if ENABLED(BLTOUCH)
6770
#define SERVO0_PIN PC14 // BLTouch OUT PIN
6871
#elif ENABLED(PROBE_ACTIVATION_SWITCH)
6972
#define PROBE_TARE_PIN PC14
7073
#define PROBE_ACTIVATION_SWITCH_PIN PB2
74+
#elif ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
75+
#define PROBE_ENABLE_PIN PC14
7176
#endif
7277

7378
//

Marlin/src/pins/stm32f1/pins_CREALITY_V4.h

+7
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,13 @@
9292
#define Z_MIN_PROBE_PIN PB1 // BLTouch IN
9393
#endif
9494

95+
//
96+
// Probe enable
97+
//
98+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
99+
#define PROBE_ENABLE_PIN SERVO0_PIN
100+
#endif
101+
95102
//
96103
// Filament Runout Sensor
97104
//

Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h

+7
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@
7676
#define Z_MIN_PROBE_PIN PA5 // BLTouch IN
7777
#endif
7878

79+
//
80+
// Probe enable
81+
//
82+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
83+
#define PROBE_ENABLE_PIN SERVO0_PIN
84+
#endif
85+
7986
//
8087
// Filament Runout Sensor
8188
//

Marlin/src/pins/stm32f1/pins_CREALITY_V521.h

+7
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,13 @@
7777
#define Z_MIN_PROBE_PIN PD12 // BLTouch IN
7878
#endif
7979

80+
//
81+
// Probe enable
82+
//
83+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
84+
#define PROBE_ENABLE_PIN SERVO0_PIN
85+
#endif
86+
8087
//
8188
// Filament Runout Sensor
8289
//

Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h

+7
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@
7676
#define Z_MIN_PIN PA4
7777
#define Z_MAX_PIN PF7
7878

79+
//
80+
// Probe enable
81+
//
82+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
83+
#define PROBE_ENABLE_PIN SERVO0_PIN
84+
#endif
85+
7986
//
8087
// Steppers
8188
//

Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h

+7
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,13 @@
8080
#define Z_MIN_PIN PA11
8181
#define Z_MAX_PIN PC4
8282

83+
//
84+
// Probe enable
85+
//
86+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
87+
#define PROBE_ENABLE_PIN SERVO0_PIN
88+
#endif
89+
8390
//
8491
// Steppers
8592
//

Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h

+7
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,13 @@
6464
#define Z_MIN_PROBE_PIN PB1
6565
#endif
6666

67+
//
68+
// Probe enable
69+
//
70+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
71+
#define PROBE_ENABLE_PIN SERVO0_PIN
72+
#endif
73+
6774
//
6875
// Steppers
6976
//

Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h

+7
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,13 @@
5454
#define Z_MIN_PIN PC6
5555
#define Z_MAX_PIN PB1
5656

57+
//
58+
// Probe enable
59+
//
60+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
61+
#define PROBE_ENABLE_PIN SERVO0_PIN
62+
#endif
63+
5764
//
5865
// Steppers
5966
//

Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h

+7
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@
7171
#define FIL_RUNOUT_PIN PA4 // MT_DET
7272
#endif
7373

74+
//
75+
// Probe enable
76+
//
77+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
78+
#define PROBE_ENABLE_PIN SERVO0_PIN
79+
#endif
80+
7481
//
7582
// Steppers
7683
//

Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h

+7
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,13 @@
8383
#define Z_MIN_PIN PA11
8484
#define Z_MAX_PIN PC4
8585

86+
//
87+
// Probe enable
88+
//
89+
#if ENABLED(PROBE_ENABLE_DISABLE) && !defined(PROBE_ENABLE_PIN)
90+
#define PROBE_ENABLE_PIN SERVO0_PIN
91+
#endif
92+
8693
//
8794
// Steppers
8895
//

0 commit comments

Comments
 (0)