BLTouch Probe Won't Deploy
-
config file part 2 of 2
; Z Probe M558 K0 P9 F120 H3 R0 T6000 A1 B0 C"0.io4.in" ; Set Z probe type. ; K (Z probe number): 0 (1). ; P (Z Probe type): 9 (BLTouch probe). ; F (Feed rate. Probing speed [mm/min]): 120. ; H (Dive height [mm]): 3. ; R (Recovery time [seconds]): 0. ; T (Travel speed [mm/min]): 6,000. ; A (Max number of times to probe each point): 1. ; B (Heaters): 0 (Leave all heaters on while probing). ; C (Endstop input): 0. (Mainboard) io4.in. M950 S0 C"0.io4.out" ; Create GPIO/servo pin. ; S (Output/servo pin number): 0. ; C (Pin name): 0. (Mainboard) io4.out. G31 P500 X0 Y22.0 Z3.105 K0 ; Set Z probe. ; P (Trigger value): 500. ; X (Probe X offset [mm]): 0. ; Y (Probe Y offset [mm]): 22.000. ; Z (Probe Z offset [mm]): 3.105 (This is modified for Z probe calibration. A higher offset number moves the nozzle closer to the bed.). ; K (Z probe number): 0. M557 X25:325 Y25:313.5 P3 ; Define Z probe mesh grid (This is probe grid, not nozzle grid). ; X (Min:Max X coordinates to probe): 35 (Min) : 325 (Max). ; Y (Min:Max Y coordinates to probe): 25 (Min) : 313.5 (Max). ; P (Points to probe in each direction): 3. ; Heater, Bed M308 S0 P"0.temp0" Y"thermistor" A"Bed Temp" T100000 B3950 C0 R2200 ; Set (Bed) temperature sensor parameters. ; S (Sensor number): 0. ; P (Pin name): 0. (Mainboard) temp0. ; Y (Sensor type): thermistor. ; A (Sensor name): Bed Temp. ; T (Thermistor resistance at 25 deg C): 100,000. ; B (Beta value): 3950. ; C (Coefficient): 0. ; R (Series resistor value): 2200 (Default for Duet3). M950 H0 C"0.out0" Q10 T0 ; Create heater (Bed). ; H (Heater number): 0. ; C (Pin name): 0. (Mainboard) out0. ; Q (PWM frequency [Hz]): 10 (Due to solid state relay). ; T (Temperature sensor number): 0 (bed). M307 H0 R0.660 C320.2 D1.62 I0 B0 S1.0 V0 ; Set heating process parameters. ; H (Heater number): 0 (Bed). ; R (Heating rate): 0.660. ; C (Dominant time constant of heating process [seconds]): 320.2. ; D (Dead time [seconds]): 1.62. ; I (Invert PWM signal): 0 (Not inverted). ; B (Bang bang control): 0 (Disabled). ; S (Maximum PWM frequency to use): 1.00. ; V (Vin calibration supply voltage): 0 (Mains heater). M140 H0 ; Configure bed heater. ; H (Heater number): 0 (Bed). M143 H0 S160 ; Set maximum heater temperature. ; H (Heater number to monitor): 0 (Bed). ; S (Maximum permitted temperature [deg C]): 160. ; Heater, Extruder 1 M308 S1 P"0.temp1" Y"thermistor" A"Extr. 1 Temp" T100000 B4725 C7.06e-8 ; Set (Extruder 1) temperature sensor parameters. ; S (Sensor number): 1 (Extruder 1). ; P (Pin name): 0. (Mainboard) temp1. ; Y (sensor type): thermistor. ; A (Sensor name): Extr 1. Temp. ; T (Thermistor resistance at 25 deg C): 100,000. ; B (Beta value): 4725. ; C (Coefficient): 7.06e-8. M950 H1 C"0.out1" Q500 T1 ; Create heater (Extruder 1). ; H (Heater number): 1. ; C (Pin name): 0. (Mainboard) out1. ; Q (PWM frequency [Hz]): 500 (Default). ; T (Temperature sensor number): 1. M307 H1 R2.500 C378.6:159.6 D4.08 I0 B0 S1.00 V24.0 ; Set heating process parameters (auto tune performed at 240 C). ; H (Heater number): 1. ; R (Heating rate): 2.700 (decrease this by 30% if a heater temperature error shows up). ; C (Dominant cooling time constant of heating process [seconds]): 400.6 (print fans off) : 158.6 (print fans fully on). ; D (Dead time [seconds]): 4.15. ; I (Invert PWM signal): 0 (Not inverted). ; B (Bang bang control): 0 (Disabled). ; S (Maximum PWM frequency to use): 1.00. ; V (Vin calibration supply voltage): 24.0. M143 H1 S285 ; Set maximum heater temperature. ; H (Heater number to monitor): 1 (Extruder 1). ; S (Maximum permitted temperature [deg C]): 285 (Due to max thermistor temperature). ; Fan, Print Cooling M950 F0 C"0.out4" Q100 ; Create fan. ; F (Fan number): 0. ; C (Pin name): 0. (Mainboard) out4. ; Q (PWM frequency [Hz]): 100 (60 is too low, 800 is too high). M106 P0 L0.2 X1.0 B0.3 H-1 R1 C"Print Fan" ; Set fan. ; P (Fan number): 0 (Print/part cooling). ; L (Minimum fan speed): 0.2. ; X (Maximum fan speed): 1.0. ; B (Blip time [seconds]): 0.3. ; H (Thermostatic control): -1 (Disabled). ; R (Restore fan speed): 1 (To the value it has when the print was paused). ; C (Name): Print Fan. ; Fan, Heat Break M950 F1 C"0.out5" Q25000 ; Create fan. ; F (Fan number): 1. ; C (Pin name): 0. (Mainboard) out5. ; Q (PWM frequency [Hz]): 25,000. M106 P1 S1.0 L0.5 X1.0 B0.3 H1 T45 C"Heat Break Fan" ; Set fan. ; P (Fan number): 1 (Heat break). ; S (Fan speed): 1.0. ; L (Minimum fan speed): 0.5. ; X (Maximum fan speed): 1.0. ; B (Blip time [seconds]): 0.3. ; H (Thermostatic control): 1 (Enabled). ; T (Thermostatic mode trigger temperature [C]): 45. ; C (Name): Heat Break Fan. ; Fans, Case M308 S2 Y"drivers" A"Driver Temp" ; Set (stepper drivers) temperature sensor. ; S (Sensor number): 2. ; Y (Sensor type): drivers (Mainboard stepper drivers). ; A (Sensor name): Driver Temp. M308 S3 Y"mcu_temp" A"CPU Temp" ; Set (CPU/MCU) temperature sensor. ; S (Sensor number): 3. ; Y (Sensor type): mcu_temp (CPU/MCU). ; A (Sensor name): CPU Temp. M950 F2 C"0.out6" Q25000 ; Create fan. ; F (Fan number): 2 (Case fan). ; C (Pin name): 0. (Mainboard) out6. ; Q (PWM frequency [Hz]): 25,000. M106 P2 L0.8 X1.0 B0.1 H2:3 T40:65 C"Case Fans" ; Set fan. ; P (Fan number): 2 (Electronics). ; L (Minimum fan speed): 0.8. ; X (Maximum fan speed): 1.0. ; B (Blip time [seconds]): 0.1. ; H (Thermostatic control): 2 (stepper drivers) : 3 (CPU/MCU). ; T (Thermostatic trigger temperature [C]: 40-65 (Proportional range). ; C (Name); Case Fans. ; Tools M563 P0 S"Extr. 1 Tool" D0 H1 F0 ; Define tool. ; P (Tool number): 0 (Extruder 1). ; S (Tool name): Extr. 1 Tool. ; D (Extruder drive): 0 (defined in M584 as E1.0). ; H (Heater): 1 (Extruder 1, defined in M950 H1). ; F (Fan mapped): 0 (Print/part cooling fan). G10 P0 X0 Y0 Z0 R0 S0 ; Set tool offset and temperature. ; P (Tool number): 0. ; X (X offset): 0. ; Y (Y offset): 0. ; Z (Z offset): 0. ; R (Standby temperature): 0. ; S (Active temperature: 0. ; Display M575 P1 S1 B57600 S1 ; Set serial communications parameters. ; P (Serial channel number): 1 (Auxiliary serial port). ; B (Baud rate): 57,600 (PanelDue default). ; S (Mode): 1 (PanelDue, checksum required). ; Automatic Power Saving M911 S21.0 R22.0 P"M913 X0 Y0 G91 M83 G1 Z3 E-2 F1000" ; Set auto save on power loss. ; S (Auto save threshold [V]): 21.0. ; R (Resume threshold [V]): 22.0. ; P (Commands on power loss): ... ; CPU Temperature Compensation M912 P0 S00.0 ; Set electronics temperature monitor adjustment. ; P (Temperature monitor channel): 0 (Default). ; S (Value to be added to temperature reading [C]): 00.0 (Lower number decreases displayed cpu temperature. =[(temperature_actual)-(temperature_indicated)]). ; Pressure Advance M572 D0 S0.05 ; Set extruder pressure advance (Linear advance). ; D (Extruder number): 0 (Extruder 1). ; S (Pressure advance amount [seconds]): 0.05. ; Select Tool T0 ; Select first tool.
-
My "homez.g" file
; Voron. ; 0:/sys/homez.g ; Called to home the Z axis via G28 Z. ; 2020/10/24/20:02 G91 ; Set axes (not extruders) to relative positioning mode. G1 H2 Z5 F6000 ; Lift Z relative to current position. G90 ; Set axes (not extruders) to absolute positioning mode. G1 X175 Y151.5 F6000 ; Move X and Y axes so the Z probe is at the center of the bed. M558 F600 H2 A1 ; Set Z probe. Feed rate: 600 mm/min. Dive height: 2 mm. Times to probe: 1. G30 ; Z probe quickly (1 of 2 passes). M558 F120 H5 A1 ; Set Z probe. Feed rate: 120 mm/min. Dive height: 5 mm. Times to probe: 1. G30 ; Home Z by probing the bed slowly (2 of 2 passes).
-
My
M122
response.m122 === Diagnostics === RepRapFirmware for Duet 3 MB6HC version 3.3 (2021-06-15 21:45:47) running on Duet 3 MB6HC v1.01 or later (SBC mode) Board ID: 08DJM-956L2-G43S8-6J9DG-3S46T-KV2LF Used output buffers: 1 of 40 (10 max) === RTOS === Static ram: 150904 Dynamic ram: 62124 of which 132 recycled Never used RAM 141032, free system stack 202 words Tasks: SBC(ready,4.9%,318) HEAT(delaying,0.0%,325) Move(notifyWait,0.0%,302) CanReceiv(notifyWait,0.0%,908) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,7.1%,93) MAIN(running,87.9%,922) IDLE(ready,0.0%,29), total 100.0% Owned mutexes: HTTP(MAIN) === Platform === Last reset 00:09:33 ago, cause: power up Last software reset at 2021-12-07 00:27, reason: User, GCodes spinning, available RAM 141032, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task SBC Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,1 Step timer max interval 131 MCU temperature: min 31.6, current 44.8, max 45.0 Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0 Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, reads 1389, writes 14 timeouts 0, SG min/max 0/0 Driver 1: position 0, standstill, reads 1389, writes 14 timeouts 0, SG min/max 0/0 Driver 2: position 0, standstill, reads 1389, writes 14 timeouts 0, SG min/max 0/0 Driver 3: position 0, standstill, reads 1389, writes 14 timeouts 0, SG min/max 0/0 Driver 4: position 0, standstill, reads 1389, writes 14 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 1389, writes 14 timeouts 0, SG min/max 0/0 Date/time: 2021-12-09 03:42:41 Slowest loop: 0.46ms; fastest: 0.04ms === Storage === Free file entries: 10 SD card 0 not detected, interface speed: 37.5MBytes/sec SD card longest read time 0.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 Heater 1 is on, I-accum = 0.0 === GCodes === Segments left: 0 Movement lock held by null HTTP* is doing "M122" in state(s) 0 Telnet is idle in state(s) 0 File is idle in state(s) 0 USB is idle in state(s) 0 Aux is assembling a command in state(s) 0 Trigger* is idle in state(s) 0 Queue is idle in state(s) 0 LCD is idle in state(s) 0 SBC is idle in state(s) 0 Daemon is idle in state(s) 0 Aux2 is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty. === CAN === Messages queued 5073, received 7, lost 0, longest wait 1ms for reply type 6042, peak Tx sync delay 2403, free buffers 49 (min 48), ts 2870/2865/0 Tx timeouts 0,0,4,0,0,0 last cancelled message type 30 dest 127 === SBC interface === State: 4, failed transfers: 1, checksum errors: 0 Last transfer: 1ms ago RX/TX seq numbers: 19609/19609 SPI underruns 0, overruns 0 Disconnects: 0, timeouts: 0, IAP RAM available 0x2c83c Buffer RX/TX: 0/0-0 === Duet Control Server === Duet Control Server v3.3.0 Code buffer space: 4096 Configured SPI speed: 8000000Hz Full transfers per second: 21.15, max wait times: 18.5ms/0.0ms Codes per second: 0.06 Maximum length of RX/TX data transfers: 2948/332
-
-
@fcwilt
Thank you very much for the reply!That seems to contradict the statement made in the M280 GCode Dictionary
"RRF3: Before you can use M280 you must create a GPIO port using M950. Then in the M280 command, the P parameter is the GPIO port number, not the logical pin number. Duet 2 supports up to 10 GPIO ports, numbers 0 to 9. No GPIO ports are allocated by default."
Am I looking at this the wrong way?
Furthermore, when I put
M280 P"0.io4.out" S10
in the Console, the probe deploys.Is there something that I am not considering?
-
@charlie said in BLTouch Probe Won't Deploy:
when I put M280 P"0.io4.out" S10 in the Console, the probe deploys.
I checked the source, the P parameter reads the expression after P as integer, so P0 is read. The part after 0 is ignored.
-
@charlie said in BLTouch Probe Won't Deploy:
That seems to contradict the statement made in the M280 GCode Dictionary
Is there something that I am not considering?
No, the docs are simply confusing things by using two different terms (servo index, port number) for the same thing.
It not unusual to find the docs are a bit wonky in certain regards.
As to the other question regards the M280 working it as been explained by another poster.
Frederick
-
@charlie said in BLTouch Probe Won't Deploy:
you must create a GPIO port using M950. Then in the M280 command, the P parameter is the GPIO port number
Is that confusing? You must create a port number with M950 and then M280 uses that port number. What do you suggest to make it more clear?
It even shows examples
-
@joergs5
Thank you for your response. That's good to know. I changed the deployprobe0.g file toM280 P0 S10 ; Set servo position. ; P (Servo index): 0.io4.out (Mainboard, io4.out). ; S (Servo angle): 10.
anyway, to avoid making the same mistake that I made between the GPIO port number and logical pin number.
The issue persists with this modification.
-
@fcwilt
Okay, that explains why theM280
command worked even though I messed up theP
value.With that said, Im still having issues deploying the BLTouch probe when homing the Z axis. The
M280 P0 S10
andM401
commands successfully deploy the probe. -
@charlie one issue in your config.g is, that the speeds are very low:
M203 S1 X300.00 Y300.00 Z15.00 E20.00
S1 does not exist for M203, so the speeds are mm/min, so e.g. Z is only 0.25 mm/s. So your probing might run into a timeout. Please use higher values. I would take the values of the documentation of M203: https://duet3d.dozuki.com/Wiki/M203
BUT: does Voron has a specific firmware, where S1 is valid? Then the firmware could be a reason for your problem, but I don't know how to help then. Which tool did you use to create the config file? Marlin and Slic3rPR use mm/s, but RRF use mm/min.
-
@joergs5
I assumed based on Duet3D Changelog: RepRapFirmware 3.3"The M203 command now supports an optional S1 parameter which changes the units to mm/sec. The default is still mm/min."
The X, Y, and Z homing speeds appear to be the same speed as I had before the change to S1. The probe just doesnt deploy during the Z homing step.
-
@charlie then sorry, it is not in the documentation yet.
I proceed searching for a possible reason...
-
@charlie homing is often made by homeall.g, can you please post it, and homex.g and homey.g also?
How do you home Z: individually X, Y, Z or together in one step?
-
@charlie said in BLTouch Probe Won't Deploy:
The X, Y, and Z homing speeds appear to be the same speed as I had before the change to S1. The probe just doesnt deploy during the Z homing step.
There are parameters to M558 to control probing speeds (travel and probing) including the ability to specify two probing speeds.
As another poster has mentioned you didn't post homeall.g which may well be why we didn't spot the problem.
Frederick
-
No worries. I greatly appreciate your willingness to help!
In this case, I am homing X, then Y, then Z. With that said, the issue also occurs using the "Home All" button in DWC.
-
@charlie said in BLTouch Probe Won't Deploy:
No worries. I greatly appreciate your willingness to help!
In this case, I am homing X, then Y, then Z. With that said, the issue also occurs using the "Home All" button in DWC.
So homing just Z with the DWC Home Z button does not work? Just want to be sure I understand what is happening.
Frederick
-
homex.g
; Voron. ; 0:/sys/homex.g ; Called to home the X axis via G28 X. ; 2020/10/24/20:00 G91 ; Set axes (not extruders) to relative positioning mode. G1 H2 Z5 F6000 ; Lift Z relative to current position. G1 H1 X355 F6000 ; Move quickly to X endstop (1 of 2 passes). G1 H0 X-3 F6000 ; Move away from X endstop. G1 H1 X10 F360 ; Move slowly to X axis endstop once more (2 of 2 passes). G1 H2 Z-5 F6000 ; Lower Z relative to current position. G90 ; Set axes (not extruders) to absolute positioning mode.
homey.g
; Voron ; 0:/sys/homey.g ; Called to home the Y axis via G28 Y. ; 2020/10/24/20:01 G91 ; Set axes (not extruders) to relative positioning mode. G1 H2 Z5 F6000 ; Lift Z relative to current position. G1 H1 Y360 F6000 ; Move quickly to Y endstop (1 of 2 passes). G1 H0 Y-3 F6000 ; Move away from Y endstop. G1 H1 Y10 F360 ; Move slowly to X axis endstop once more (2 of 2 passes). G1 H2 Z-5 F6000 ; Lower Z relative to current position. G90 ; Set axes (not extruders) to absolute positioning mode.
homeall.g
; Voron. ; 0:/sys/homeall.g ; Called to home all axes via G28. ; 2020/10/24/21:00 G91 ; Set axes (not extruders) to relative positioning mode. G1 H2 Z5 F6000 ; Lift Z relative to current position. G1 H1 X355 Y360 F6000 ; Move quickly to X or Y axis endstop and stop there. G1 H1 X355 F6000 ; Move quickly to X endstop and stop there. G1 H1 Y360 F6000 ; Move quickly to Y endstop and stop there. G1 H0 X-3 Y-3 F6000 ; Move away from X and Y endstops. G1 H1 X10 F360 ; Move slowly to X endstop once more. G1 H1 Y10 F360 ; Move slowly to Y endstop once more. G90 ; Set axes (not extruders) to absolute positioning mode. G1 X175 Y151.5 F6000 ; Move X and Y axes so the Z probe is at the center of the bed. M558 F600 H2 A1 ; Set Z probe. Feed rate: 600 mm/min. Dive height: 2 mm. Times to probe: 1. G30 ; Z probe quickly (1 of 2 passes). M558 F120 H5 A1 ; Set Z probe. Feed rate: 120 mm/min. Dive height: 5 mm. Times to probe: 1. G30 ; Home Z by probing the bed slowly (2 of 2 passes).
-
@charlie you may need to exchange the order or M950 and M558:
in the M950 documentation https://duet3d.dozuki.com/Wiki/M950 :
"M950 must come before any commands that refer to the device being created."
So M950, then M558 which uses the servo part of BLTouch.I am not sure about this. In the examples I know, M950 is first, M558 next, but the two commands don't have a reference to each other. But it's worth a try. M558 may expect to know the M950 values.
-
@fcwilt
That is correct. Homing just Z doesnt work.It also doesnt work if I use "Home All".