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

Lines changed: 11 additions & 0 deletions
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

Lines changed: 2 additions & 0 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 49 additions & 2 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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

Lines changed: 7 additions & 0 deletions
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
//

0 commit comments

Comments
 (0)