Probe already triggered at start of probing move
-
Alright, I am absolutely stumped. I have been building my config files from scratch, based on a generic RRF file, as the RRF tool doesn't accommodate for cross gantry dual X Y triple Z setups. I'm using a BLTouch 3.0
I keep getting the "Probe already triggered at start of probing move" error. Everything seems to be working the way it should. After homing X and Y, I go to home Z. It will lower the bed, move XY to center, deploy the probe, raise the bed, and when the probe touches it will retract, lower down a bit, and then give that error.
Config File:
; Configuration file for Duet 3 MB 6HC (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.13 on Sun Oct 16 2022 17:13:48 GMT-0500 (CDT) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"zanderCROSS" ; set printer name ; Wait a moment for the CAN expansion boards to start G4 S2 ; Network M552 P0.0.0.0 S1 ; enable network and acquire dynamic address via DHCP M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 ; X0 physical drive 0.0 goes forwards M569 P0.1 S0 ; Y0 physical drive 0.1 goes backwards M569 P0.2 S0 ; X1 physical drive 0.2 goes backwards M569 P0.3 S1 ; Y1 physical drive 0.3 goes forwards M569 P0.4 S1 ; extruder motor M569 P1.0 ; front left Z motor M569 P1.1 ; rear Z motor M569 P1.2 ; front right Z motor M584 X0.0:0.2 Y0.1:0.3 Z1.0:1.1:1.2 E0.4 ; set drive mapping M671 X-10:200:410 Y-10:410:-10 S1 ; leadscrews are at (-10,-10), (200,410), (410,-10) ;M671 X-44:200:444 Y-10:444:-10 S0.5 ; leadscrews are at (-44,-10), (200,444), (444,-10) M350 X16 Y16 Z1 E16 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z100.00 E420.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z500.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2) M906 X800 Y800 Z800 E800 I30 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ; Axis Limits M208 X0 Y0 Z0 S1 ; set axis minima M208 X400 Y400 Z400 S0 ; set axis maxima ; Endstops M574 X1 S1 P"io0.in+io2.in" ; configure active high endstop switch for low end on X M574 Y1 S1 P"io1.in+io3.in" ; configure active high endstop switch for low end on Y ; Z-Probe M950 S0 C"io7.out" ; servo/gpio 0 is io7.out pin M558 P9 C"io7.in" H5 F1000:100 T6000 A5 S0.05 ; enable Z probe and set dive height, probe speed and travel speed G31 P25 X51 Y14 Z2 M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters ; Fans ; Tools M563 P0 D0 F0 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined
Any pointers on this?
-
What do you have in your homing files and your probe deploy and retract files?
Have you tested the probe like this?
https://docs.duet3d.com/en/User_manual/Connecting_hardware/Z_probe_testing
Can you send M122 and M98 P"config.g" and copy and paste the results here?
-
@Phaedrux Homing for X and Y both work properly, and are always done before I attempt to home Z.
Probe deploy is:
M280 P0 S10
and probe retract is:
M280 P0 S90
Both function as expected. BLTouch is lit up red when retracted, and light goes out when deployed.
Homeall is not complete yet, because I haven't got home Z to work. When XYZ all work I will concatenate all into that. I've completed the static and dynamic tests in the link you sent, and calibrated Z probe trigger height to 2mm.
I just finished shutting everything down, pulling wires, and testing for continuity. No shorted wires, all wires testing properly from one end to another. Genuine BLTouch 3.0, and wired properly to spec per documentation.
Results of M122:
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 (standalone mode) Board ID: 08DJM-9P63L-DJ3S0-7JTDJ-3SJ6K-T8M3A Used output buffers: 1 of 40 (12 max) === RTOS === Static ram: 150904 Dynamic ram: 91468 of which 208 recycled Never used RAM 108756, free system stack 152 words Tasks: NETWORK(ready,30.7%,212) ETHERNET(notifyWait,0.1%,117) HEAT(delaying,0.0%,405) Move(notifyWait,0.0%,265) CanReceiv(notifyWait,0.0%,908) CanSender(notifyWait,0.0%,362) CanClock(delaying,0.0%,339) TMC(notifyWait,7.7%,59) MAIN(running,61.3%,1096) IDLE(ready,0.1%,29), total 100.0% Owned mutexes: === Platform === Last reset 00:01:48 ago, cause: power up Last software reset at 2022-11-28 12:34, reason: User, GCodes spinning, available RAM 108624, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Step timer max interval 163 MCU temperature: min 26.5, current 35.3, max 35.6 Supply voltage: min 23.9, current 23.9, max 24.0, under voltage events: 0, over voltage events: 0, power good: yes 12V rail voltage: min 12.1, current 12.2, max 12.3, under voltage events: 0 Heap OK, handles allocated/used 99/0, heap memory allocated/used/recyclable 2048/12/12, gc cycles 0 Driver 0: position 16000, standstill, reads 12395, writes 19 timeouts 0, SG min/max 0/131 Driver 1: position 16000, standstill, reads 12395, writes 19 timeouts 0, SG min/max 0/127 Driver 2: position 700, standstill, reads 12395, writes 19 timeouts 0, SG min/max 0/1023 Driver 3: position 0, standstill, reads 12396, writes 19 timeouts 0, SG min/max 0/150 Driver 4: position 0, standstill, reads 12401, writes 14 timeouts 0, SG min/max 0/0 Driver 5: position 0, standstill, reads 12404, writes 11 timeouts 0, SG min/max 0/0 Date/time: 2022-11-28 14:39:33 Slowest loop: 13.13ms; fastest: 0.04ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 25.0MBytes/sec SD card longest read time 2.0ms, write time 0.0ms, max retries 0 === Move === DMs created 125, maxWait 13710ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 16, completed moves 16, 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 = -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle 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 idle 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 570, received 14, lost 0, longest wait 1ms for reply type 6018, peak Tx sync delay 289, free buffers 49 (min 47), ts 543/542/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 14.02ms; fastest: 0.02ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions HTTP sessions: 1 of 8 - Ethernet - State: active Error counts: 0 0 1 0 0 Socket states: 5 2 2 2 2 0 0 0
Results of M98 P"config.g"
M98 P"config.g" HTTP is enabled on port 80 FTP is disabled TELNET is disabled Driver 1.0 runs forwards, active low enable, mode spreadCycle, ccr 0x08053, toff 3, tblank 1, thigh 200 (2.3 mm/sec), hstart/hend/hdec 5/0/0, pos 640 Driver 1.1 runs forwards, active low enable, mode spreadCycle, ccr 0x08053, toff 3, tblank 1, thigh 200 (2.3 mm/sec), hstart/hend/hdec 5/0/0, pos 640 Driver 1.2 runs forwards, active low enable, mode spreadCycle, ccr 0x08053, toff 3, tblank 1, thigh 200 (2.3 mm/sec), hstart/hend/hdec 5/0/0, pos 640 Tool 0 offsets: X0.000 Y0.000 Z0.000
-
M569 P1.0 ; front left Z motor M569 P1.1 ; rear Z motor M569 P1.2 ; front right Z motor
I think you're missing S values here
M350 X16 Y16 Z1 E16 I1 ; configure microstepping with interpolation
Why only 1x microstepping on Z? x16 would be the normal recommendation.
Probably a good idea to update your firmware by uploading this zip file to the system tab in DWC: https://github.com/Duet3D/RepRapFirmware/releases/download/3.4.4/Duet2and3Firmware-3.4.4.zip
-
@Phaedrux yes - true, the S values were missing. According to documentation though I seem to remember that it's assumed that motors are S1 and it's not necessary unless using S0.
I set the microstepping from 16 (default) to 1 because I have leadscrews that that go 2mm with 200 full steps. So to get it to go 1mm, according to how RRF does things, having it at 16 necessitated defining 1mm as 1600 steps, since it uses microsteps as steps, even though they're not full steps. One full step would produce 0.01mm change, and I didn't need any greater accuracy than that.
At any rate, I've updated both of those and the behavior is unchanged. It does seem to be however that updating the firmware may have fixed it all, as it is no longer issuing the error.
So that makes me curious - are either the missing S or the microstepping the cause of the problem, or is it a firmware issue and a known bug at that time?
I ask, because I have spent countless hours over the past two days trying to troubleshoot this, and I'd like to know where my mistake was.
-
You could reverse the microstepping change and the M569 change and see if it makes a difference. You could also flash back to 3.3 firmware, but there's no similar bug that I'm aware of.