Weird behaviour after first print
-
Guys, I think i really need some help. Pulling my hairs out since three days
Voron2.4, Duet 3 6HC with tool board 1LC v1.1, RRF 3.3.0.
As z-probe I'm using Klicky probe (https://github.com/jlas1/Klicky-Probe). It's just an endstop switch located under the tool head.
After powering up the printer everything works like charm. When a print is finished or aborted and I start a new print Klick probe regularly fails with "Probe already triggered before probing move started" when doing gantry leveling or bed mesh. When doing gantry leveling it simply infinite goes to the four probe points without going down and probe the bed. When doing a bed mesh it just aborts the procedure. The interesting thing is (as I can say for now), that also an emergency reset doesn't fix the issue! Only after switching off the printer and powering it up again everything works fine (but again only for the first print).
Config snippets are attached.
May I ask for you help please. I'm lost
# # # G4 S1 ;wait for expansion boards to start ; General preferences M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M669 K1 ; Select CoreXY mode M564 S1 H1 ; Forbid axis movements when not homed ; --- Z Drive map --- ; _______ ; | 3 | 4 | ; | ----- | ; | 2 | 5 | ; ------- ; front ; ; Drive directions M569 P0 S1 ; A (X) M569 P1 S1 ; B (Y) M569 P2 S1 ; Z1 M569 P3 S0 ; Z2 M569 P4 S1 ; Z3 M569 P5 S0 ; Z4 M569 P121.0 S1 ; E ; Motor mapping and steps per mm M584 X1 Y0 Z2:3:4:5 E121.0 M350 X16 Y16 Z16 E16 I1 ; Use 1/16 microstepping with interpolation everywhere M92 X80 Y80 Z400 E760.22 ; Set XYZE steps per mm (1.8deg motors) ; Drive currents M906 X1500 Y1500 Z1500 E850 ; XYZ and E current M906 I30 ; Idle current percentage M84 S120 ; Idle timeout ; Accelerations and speed M566 X600 Y600 Z60 E600 ; Set maximum instantaneous speed changes (mm/min) M203 X18000 Y18000 Z3000 E1200 ; Set maximum speeds (mm/min) M201 X5000 Y5000 Z250 E5000 ; Set maximum accelerations (mm/s^2) ; PA, DAA M572 D0 S0.026 ; Pressure Advance ;M593 P"zvd" F54.4 M593 P"daa" F54.4 ; Accelerometer ;M955 P121.0 I05 ; Axis travel limits M208 X5 Y-5 Z0 S1 ; Set axis minima M208 X350 Y350 Z375 S0 ; Set axis maxima ; Endstops M574 X2 S1 P"^io1.in" ; Xmax endstop on hall effect board M574 Y2 S1 P"^io2.in" ; Ymax endstop on hall effect board M574 Z0 P"nil" ; No Z endstop ; Z probes M558 P8 C"^121.io0.in" T18000 F300 H2.5 A31 S0.003 ; Klicky Probe G31 K0 P500 X0 Y19.75 Z15 ; Klicky Probe M558 K1 P8 C"^io3.in" T18000 F240:120 H5 A10 S0.005 R0.2 ; Filament Sensor ;M950 J1 C"121.io2.in" ;M581 P1 T2 S0 R1 ; Bed leveling M671 X-53:-53:400:400 Y-5:420:420:-5 S20 ; Define Z belts locations (Front_Left, Back_Left, Back_Right, Front_Right) M557 X20:330 Y20:300 P5:5 ; Define bed mesh grid (inductive probe, positions include the Y offset!) ; Bed heater (dual thermistor setup) M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp1 M950 H0 C"out1" T0 ; create bed heater output on out1 and map it to sensor 0 M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C ; Hotend heater M308 S1 P"121.temp1" Y"thermistor" T100000 B3950 M950 H1 C"121.out0" T1 ; create nozzle heater output on out2 and map it to sensor 1 M307 H1 B0 S0.8 ; disable bang-bang mode for heater and set PWM limit M143 H1 S350 ; Set temperature limit for heater 1 to 350C ; Chamber Thermistor M308 S2 P"temp1" A"Chamber" Y"thermistor" T100000 B3950 ; MCU sensors M308 S3 Y"mcu-temp" A"MCU" M308 S4 Y"drivers" A"Drivers" M912 P0 S-13 ; MCU temp calibration ; Fans M950 F0 C"121.out1" Q10000 ; create fan 1 on pin out5 and set its frequency M106 P0 C"Bed" S0 H-1 M950 F1 C"121.out2" ; create fan 1 on pin out5 and set its frequency M106 P1 C"Hotend" L1 X1 H1 T50 S1 M950 F2 C"out7" Q10 ; create fan 1 on pin out5 and set its frequency M106 P2 C"Filter" S0 H-1 B0.2 M950 F3 C"out4" Q24000 ; create fan 2 on pin out6 and set its frequency M106 P3 S0.50 H-1 B1 C"Bay Left" ; set fan 2 value. Thermostatic control is turned off M950 F4 C"1.out3" Q24000 ; create fan 2 on pin out6 and set its frequency M106 P4 S0 H-1 B1 C"Bay Right" ; set fan 2 value. Thermostatic control is turned off M950 F5 C"out5" ; create fan 3 on pin out7 and set its frequency M106 P5 S0.2 H-1 C"SBC" M950 F6 C"out6" ; create fan 2 on pin fan2 M106 P6 S1 H-1 C"Light" ; Tools M563 P0 S"Hotend" D0 H1 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 ; Enable debugging via USB ;M111 S1 P0 ; Platform ;M111 S1 P1 ; Network ;M111 S1 P2 ; Webserver ;M111 S1 P3 ; GCodes ;M111 S1 P4 ; Move ;M111 S1 P5 ; Heat ;M111 S1 P6 ; DAA ;M111 S1 P7 ; Roland ;M111 S1 P8 ; Scanner ;M111 S1 P9 ; PrintMonitor ;M111 S1 P10 ; Storage ;M111 S1 P11 ; PortControl ;M111 S1 P12 ; DuetExpansion ;M111 S1 P13 ; FilamentSensor ;M111 S1 P14 ; Wifi ;M111 S1 P15 ; Display ;M111 S1 P16 ; LinuxInterface ;M111 S1 P17 ; CAN M575 P1 S1 B115200 ; enable support for PanelDue M501 ; load config-override.g T0 ; select tool 0
### bed.g M558 K0 H10 M561 ; clear any bed transform G28 ; home if move.axes[1].machinePosition > 270: G1 Y250 F9000 G1 X282.5 Y350 F9000 G91 G1 Z5 G90 G1 Y300 F9000 while iterations <=1 ; Perform 2 passes. G30 P0 X20 Y25 Z-99999 F9000 ; probe Z left front G30 P1 X20 Y320 Z-99999 F9000 ; probe Z left rear G30 P2 X330 Y320 Z-99999 F9000 ; probe Z right rear G30 P3 X330 Y25 Z-99999 S4 F9000 ; probe Z right front G1 H2 Z12 F2600 ; raise head 4mm to ensure it is above the Z probe trigger height M400 ; finish move, clear buffer M558 K0 H2.5 ; VINDA height to 2.5mm after first run while move.calibration.initial.deviation >= 0.003 ; Perform additional leveling if previous deviation was over 0.01mm. G30 P0 X20 Y25 Z-99999 F9000 ; probe Z left front G30 P1 X20 Y320 Z-99999 F9000 ; probe Z left rear G30 P2 X330 Y320 Z-99999 F9000 ; probe Z right rear G30 P3 X330 Y25 Z-99999 S4 F9000 ; probe Z right front G1 H2 Z12 F2600 ; raise head 4mm to ensure it is above the Z probe trigger height M400 ; finish move, clear buffer echo "Gantry deviation of " ^ move.calibration.initial.deviation ^ "mm obtained." G1 Z12 ; Raise nozzle 8mm to ensure it is above the Z probe trigger height. G1 X282.5 F9000 G1 Y350 F9000 G1 X300 F9000 G28 ; Homing again for accurate Z offset
### mesh.g if !move.axes[0].homed && !move.axes[1].homed && !move.axes[2].homed G28 ; home M561 ; clear any bed transform if move.axes[1].machinePosition > 270: G1 Y250 F9000 G1 X282.5 F9000 G1 Y350 F9000 G1 Y300 F9000 G29 K0 M564 S1 G1 Z12 ; Raise nozzle 8mm to ensure it is above the Z probe trigger height. G1 X282.5 F9000 G1 Y350 F9000 G1 X300 F9000
### homeall.g M913 X50 Y50 Z50 ; set X Y Z motors to 70% of their normal current G91 ; relative positioning G1 Z8 F800 H2 ; lift Z relative to current position G90 G1 H1 X999 F6000 ; move quickly to X axis endstops and stop there (first pass) G1 H1 Y999 F6000 ; move quickly to Y axis endstops and stop there (first pass) if move.axes[1].machinePosition >= 329: G1 Y325 F3600 G1 X231 F3600 G1 Y345.8 F3600 ;position of Z swtich G30 K1 Z-99999 G1 Z10 F6000 G1 X177 Y166 F6000 ; put head over the centre of the bed M913 X100 Y100 Z100 ; set X Y Z motors to 100% of their normal current
### Slicer Start Code M104 S[first_layer_temperature_[current_extruder]] M140 S[first_layer_bed_temperature] M109 S[first_layer_temperature_[current_extruder]] M190 S[first_layer_bed_temperature] M83 ;relative extrusion G21 ; metric values M290 R0 S0 ; reset baby stepping M220 S100 ; reset speed M106 S0 ; turn off fan 0 M561 ; Disable any current bed compensation G32 G1 X82 Y350 Z4.50 F9000 G1 X122 F6000 G1 X82 F6000 G1 X122 F6000 G1 X82 F6000 G1 X122 F6000 G1 X177 Y166 Z6 F9000 M564 S0 ; disable axis limits G90 G1 Z3 F400 M400 G92 Z4 ; Reset z to 8 to allow jogging up to touch bed to nozzle M291 P"Jog the Z Axis until the bed and nozzle are touching and click OK" R"Setting Z=0" Z1 S3 M400 G92 Z0 ; Set z = 0 G1 Z15 G1 X282.5 F9000 G1 Y350 F9000 G1 Y300 F9000 G1 X177 Y166 F9000 M400 G30 S-1 M400 G1 Z15 M400 G30 S-1 M400 G1 Z15 M400 G30 S-1 M400 G1 Z15 M400 G30 S-1 M400 G1 Z15 M400 G30 S-3 ; measure probe height and set it. M400 M500 P31 ; save trigger height to config-override.g M564 S1 ; enable axis limits M557 X20:335 Y20:300 P5:5 ; mesh grid dummy G29 K0 S0 ; mesh bed leveling G29 S1 ; load bed mesh G1 X282.5 F9000 G1 Y350 F9000 G1 X300 F9000 M109 S[first_layer_temperature_[current_extruder]] M190 S[first_layer_bed_temperature] G92 E0 ; reset extrusion distance G1 Y320 F9000 G1 X45 Y330 Z4.50 F9000 G1 Y350 F9000 G1 E10 F300 G92 E0 ; reset extrusion distance G1 X82 F9000 G1 X122 F6000 G1 X82 F6000 G1 X122 F6000 G1 X82 F6000 G1 X122 F6000 G1 X82 F6000 G1 Z10 F6000 G1 X177 Y166 Z10 F6000
-
@martinnyhc is it a normally open or a normally-closed switch? A possible explanation is that you are using a normally open switch and you have run the wires close to the extruder motor cable, with no shielding between the two, so that the switch wire is picking up interference from the extruder motor cable.
Normally closed endstop switches and Z probes are much less susceptible to capacitive interference pickup. So if the switch has both NO and NC contacts, I suggest you change to using the NC contacts. If it has only NO contacts, then you can either shield the switch wire, or use M18 to disable the extruder motor before probing.
-
Whew....that had never come to my mind. The switch has NO and NC contacts. Before changing this (I have to put off the complete tool head) I'll try with disabling the extruder motor when using the probe.
Thanks!
-
Oh...and yes, wires are running close. The switch is connected to the tool board io0 beside the stepper port.
-
@martinnyhc said in Weird behaviour after first print:
Oh...and yes, wires are running close. The switch is connected to the tool board io0 beside the stepper port.
I would not normally expect it to be a problem when using a tool board, assuming the tool board is mounted on the print head, because the wires are so much shorter. But try the M18 test.
-
Just tried with M18 E0 but that doesn't change anything. Beside of that I observed the following after doing an emergency stop and moving the tool head up to deattach the probe:
https://drive.google.com/file/d/1xjToNHtGSHgUNfDPdsizFRtVbSMX8VJ_/view?usp=sharing
Very strange.
-
Just got "Error: Probe already triggered before probing move started" directly after switching off/on the printer. That was the first time.
-
@martinnyhc
Could get a bit tricky with a detached probe...then the cuircit is open.... -
I know t his is wokring for many many guys. And it already worked for me too
-
Hold on. Perhaps I've found the problem. DWC showed status 1000 when the probe is disconnected and 0 if connected. That should be the other way around. Changed C"^121.io0.in" to C"!^121.io0.in".
-
Since the change it goes to the probe points but not down to probe the bed at all.
I'm at my wits end.
-
That was bullsh****. All was properly installed. So I have no more ideas.
-
This is a detachable probe that must be docked, correct?
-
Yes, correct.
-
Maybe I found the problem. Just upgraded to 3.4-b2 to test input shaping and recognized that the accelerometer on the toolboard was not recognized. M122 B121 reported that no accelerometer could be found. Took the tool board from my other printer and it worked. Also currently it looks like the probe problems are gone. To be sure I'll test this a little bit more today.
-
Problem is still there
There is a new additional error message after the upgrade.
**Error: G32 has thrown an exception: [NullReferenceException] Object reference not set to an instance of an object.** Error: Probe already triggered at start of probing move
-
And with G29 I now get
-
@martinnyhc There must be an exception or cancelled code somewhere in your bed.g which is why you get that exception. I've got a fix ready that will be included in 3.4-b3. Also you seem to call G29 without S parameter in mesh.g, which will invoke mesh.g over and over again until you get a stack overflow.
-
Yep, already fixed that. I need to do some further testing regarding the probe. In the meantime if did a fresh SBC install.
-
OK, spent the day with doing a clean SBC install (RRF 3.3.0) and rewriting all config files and macros. The main issue I have still persists. Gantry and bed leveling works like charm if it is the first print. As soon as a print finished or where cancelled and I start a new print it fails.
Fails means for example: The first thing of course is homing. Second thing is gantry leveling.
; bed.g ; called to perform automatic bed compensation via G32 if !move.axes[0].homed && !move.axes[1].homed && !move.axes[2].homed G28 ; home M558 K0 H10 F400 ; set trigger height M561 ; clear any bed transform M98 P"0:/macros/sys/undock_klicky_probe.g" ; undock clicky probe while iterations <=1 ; first pass G30 P0 X20 Y25 Z-99999 F9000 ; probe Z left front G30 P1 X20 Y320 Z-99999 F9000 ; probe Z left rear G30 P2 X330 Y320 Z-99999 F9000 ; probe Z right rear G30 P3 X330 Y25 Z-99999 S4 F9000 ; probe Z right front G1 H2 Z12 F2600 ; raise head M400 ; finish move, clear buffer M558 K0 H2.5 F200 ; trigger height to 2.5mm after first run while move.calibration.initial.deviation >= 0.003 ; Perform additional leveling if previous deviation was over 0.03mm. G30 P0 X20 Y25 Z-99999 F9000 ; probe Z left front G30 P1 X20 Y320 Z-99999 F9000 ; probe Z left rear G30 P2 X330 Y320 Z-99999 F9000 ; probe Z right rear G30 P3 X330 Y25 Z-99999 S4 F9000 ; probe Z right front G1 H2 Z12 F2600 ; raise head M400 ; finish move, clear buffer echo "Gantry deviation of " ^ move.calibration.initial.deviation ^ "mm obtained." G1 Z12 ; Raise nozzle M98 P"0:/macros/sys/dock_klicky_probe.g" ; dock clicky probe G28 ; Homing again for accurate Z offset
It probes the four points for the first time, changes the probing height and probes for the second time. Suddenly it is just going to the probe points but don't lower Z to probe the bed.
Here's an archive of my complete config. I've spent so many days with this problem now and did everything which came to my mind, I'm definitely stuck and don't now what to do.
Help please! Thanks in advance!