Nozzle crashed into bed while homing - can this be avoided?
-
@Phaedrux said in Nozzle crashed into bed while homing - can this be avoided?:
@pandaym said in Nozzle crashed into bed while homing - can this be avoided?:
Do you mean that I change:
Yup, you got it. Having Z moves in the start and end can sometimes confuse the DWC parser which messes up the layer count or object height etc. But it ignores moves with extrusion, so adding the ;E is a bit of a work around. Alternatively you can move the slicer start and end stuff into separate macros and and call them from the slicer. I only mentioned it as a precaution.
Ok, that makes sense and is added. Thank you.
@Phaedrux said in Nozzle crashed into bed while homing - can this be avoided?:
As for the stall detection homing problem, I think part of the problem is that in the pause.g file it moves the head to x0 y0
G1 X0 Y0 F6000 ; go to X=0 Y=0
This places the print head up against the frame, correct? When trying to home after that it's already up against the frame, so it can't accelerate enough to trigger the homing I think.
So as a test, try changing the pause positioning to be x10 y10.
Correct, it places it against the frame. So you are right that it should get away from the corner before trying to home, and that will at least limit a potential homing failure. Unfortunately though, you can see on the video that it fails starting from other places too.
What I am mostly worried about sorting out first though, is the fact that it runs the Z homing move without deploying a probe after and crashes straight into the bed. This concerns me, as I feel like that could occur again, also if I decide to go with switches instead of sensorless homing. Therefore it seems critical that I make sure this cannot happen, and then afterwards look at getting homing working perfectly. Do you have a feeling about where this issue comes from?
-
Are you still getting errors in the console when homing? I'm really hoping that if we can get reliable homing for X and Y from the stall detection that the Z homing will behave better.
Can you try altering your homeall to include all of the commands from homex/y/z and removing the G32 from the homez?
Can you also test homing each axis individually?
-
@pandaym it appears you are calling G28 to home all. This will cause Z to crash because in RRF 3 it cannot be defined as an endstop and a probe. You need to call G28 XY and then After your move to probing location call G30 to use probe for Z homing.
Try calling G30 with the bed lowered way down and see if the probe deploys and can be triggered.
-
@mikep419 I'm not sure what you mean. his homeall calls his other homing files in turn. I'll put them all inline so they're a bit easier to glance.
; homeall.g ; called to home all axes ; M98 Phomex.g M98 Phomey.g M98 Phomez.g
; homex.g ; called to home the X axis ; M400 ; Finishes all current moves and and thus clears the buffer M913 X50 Y50 ; Set motor currents to 50% M201 X500 Y500 ; Set acceleration on X/Y to 500 stop improve reliability of stall detection M915 X Y S2 R0 F0 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 2, don’t take action, don’t filter, 400steps/sec G91 ; Set to Relative Positioning ;G1 Z5 F1200 H2 ; G1 H1 X-300 F4000 ; Move 300 mm left, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy G1 X30 F1200 ; Move 30 mm out from Xmin ;G1 Z-5 F1200 H2 ; G90 ; Set to Absolute Positioning M400 ; Finishes all current moves and and thus clears the buffer M913 X100 Y100 ; Set motor currents back to 100% M201 X1000 Y1000 ; Set acceleration back to 1000
; homey.g ; called to home the Y axis ; M400 ; Finishes all current moves and and thus clears the buffer M913 X50 Y50 ; Set motor currents to 30% M201 X500 Y500 ; Set acceleration on X/Y to 500 stop improve reliability of stall detection M915 X Y S2 R0 F0 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 2, don’t take action, don’t filter, 400steps/sec G91 ; Set to Relative Positioning ;G1 Z5 F1200 H2 ; G1 H1 Y-300 F4000 ; Move 300 mm back, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy G1 Y30 F1200 ; Move 30 mm out from Xmin ;G1 Z-5 F1200 H2 ; G90 ; Set to Absolute Positioning M400 ; Finishes all current moves and and thus clears the buffer M913 X100 Y100 ; Set motor currents back to 100% M201 X1000 Y1000 ; Set acceleration back to 1000
; homez.g ; called to home the Z axis ; G1 X150 Y117 F12000 ; Move probe to middle of bed M558 F500 ; Set the probing speed G30 ; Do a single probe to home our Z axis M558 F50 ; Set a slower probing speed G30 M558 F200 G32 ; Run 3-point bed calibration defined in bed.g
; bed.g ; called to perform automatic bed compensation via G32 ; M561 ; clear any bed transform ;G28 ; home M558 F160 T16000 G30 P0 X35 Y173 Z-99999 ; probe near a leadscrew G30 P1 X265 Y173 Z-99999 ; probe near a leadscrew G30 P2 X150 Y290 Z-99999 S3 ; probe near a leadscrew and calibrate 3 motors G1 X20 Y20 F16000 G29 S1
; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.1.3 on Sun Jun 14 2020 14:49:36 GMT+0200 (Centraleuropæisk sommertid) ; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"CoreXY" ; set printer name M669 K1 ; select CoreXY mode ; Network M540 PBE:62:38:32:53:34 ; set custom MAC address 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 S0 ; X motor - physical drive 0.0 goes forwards M569 P0.5 S0 ; Y motor - physical drive 0.5 goes forwards M569 P0.1 S1 ; Z motor 1 - physical drive 0.1 goes forwards M569 P0.3 S1 ; Z motor 2 - physical drive 0.2 goes forwards M569 P0.4 S1 ; Z motor 3 - physical drive 0.2 goes forwards M569 P0.2 S1 ; Hemera motor - physical drive 0.2 goes forwards M584 X0.0 Y0.5 Z0.4:0.1:0.3 E0.2 ; set drive mapping - X Y frontLeftZ FrontRightZ RearZ E M671 X-35:335:150 Y173:173:335 S15 ; Bed rotational center - front left, front right and rear center M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation M92 X160.00 Y160.00 Z800.00 E381.81 ; set steps per mm M566 X900.00 Y900.00 Z12.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X16000.00 Y16000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min) M201 X2000.00 Y2000.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 X320 Y320 Z320 S0 ; set axis maxima ; Endstops M574 X1 S3 ; configure sensorless endstop for low end on X M574 Y1 S3 ; configure sensorless endstop for low end on Y M574 Z0 ; ; Z-Probe M950 S0 C"io7.out" ; create servo pin 0 for BLTouch M558 P9 C"^io7.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds ;M558 H30 ;*** Remove this line after delta calibration has been done and new delta parameters have been saved G31 P500 X1 Y24 Z0.80 ; set Z probe trigger value, offset and trigger height M557 X15:215 Y15:195 S20 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 ; create bed heater output on out0 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 S200 ; set temperature limit for heater 0 to 200C M308 S1 P"temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin temp1 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit M143 H1 S300 ; set temperature limit for heater 1 to 300C ; Fans M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on ; Tools M563 P0 S"Hemera" 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 ; Custom settings are not defined ; Miscellaneous T0 ; select first tool M501 ; load saved data from non volatile memory
-
@Phaedrux i apologize for not being clear. In his start g-code he posted above he calls G28. My understanding was when he started the print the crash occurred. I had not seen his homing files. What I should’ve said was make sure he’s using G30 on the homez.g macro.
-
@mikep419 said in Nozzle crashed into bed while homing - can this be avoided?:
@Phaedrux i apologize for not being clear. In his start g-code he posted above he calls G28. My understanding was when he started the print the crash occurred. I had not seen his homing files. What I should’ve said was make sure he’s using G30 on the homez.g macro.
Just picking up on your replies now, so I will just reply to this one. It happens apparently when I start a second print, or at random, not sure. I fail to see the exact pattern or logic in what happens, but it just seems to be trying to probe Z without deploying the probe - possibly based on a failed X or Y home?`
Should be all good with my homez.g macro, as I am using G30 there. -
@Phaedrux said in Nozzle crashed into bed while homing - can this be avoided?:
Are you still getting errors in the console when homing? I'm really hoping that if we can get reliable homing for X and Y from the stall detection that the Z homing will behave better.
Can you try altering your homeall to include all of the commands from homex/y/z and removing the G32 from the homez?
Can you also test homing each axis individually?
I have not seen any other errors than what I posted above which indicate that either X or Y fails to home, and the probe cannot be deployed. I am just worried about the fact that it ignores this and continues to move the bed upwards. I hope I can find the reason for this, so that even when I get the homing of X and Y reliable, I still know it won't crash the bed if something should happen on X/Y.
I will try make a homeall that includes all the commands instead of calling the others, remove 3 point true bed levelling from homez and test it. I think it might be best to not try and fix X/Y homing before this other thing is fixed, as I will have a hard time figuring out if it works then. I'll get back with the results.
-
@pandaym said in Nozzle crashed into bed while homing - can this be avoided?:
I think it might be best to not try and fix X/Y homing before this other thing is fixed, as I will have a hard time figuring out if it works then.
I disagree. I think X and Y homing must be reliable regardless because the Z homing depends on being able to accurately place the probe where you want it.
For the probe not deploying the pin it's possible there is a wiring issue. The BLTouch has a lot of wires and the crimps are often a cause of problems, so definitely double check your wiring.
G31 P500 X1 Y24 Z0.80
I also note that your trigger height is very low. Typically, when the BLtouch is mounted correctly, the base of the probe body is ~8mm above the nozzle tip, which leads to a trigger height of ~2mm. This is the sweet spot for accurate and reliable results.By the way, what version of BLTouch is it? Is it genuine or a clone?
-
@Phaedrux said in Nozzle crashed into bed while homing - can this be avoided?:
@pandaym said in Nozzle crashed into bed while homing - can this be avoided?:
I think it might be best to not try and fix X/Y homing before this other thing is fixed, as I will have a hard time figuring out if it works then.
I disagree. I think X and Y homing must be reliable regardless because the Z homing depends on being able to accurately place the probe where you want it.
For the probe not deploying the pin it's possible there is a wiring issue. The BLTouch has a lot of wires and the crimps are often a cause of problems, so definitely double check your wiring.
G31 P500 X1 Y24 Z0.80
I also note that your trigger height is very low. Typically, when the BLtouch is mounted correctly, the base of the probe body is ~8mm above the nozzle tip, which leads to a trigger height of ~2mm. This is the sweet spot for accurate and reliable results.By the way, what version of BLTouch is it? Is it genuine or a clone?
I understand your point about the X and Y. I just assumed that it did not really matter where on the build plate the probe were for probing Z, as I am only in this phase of the build.
There truly are a lot of wires that has to be done right on the BLTouch. I checked my wiring and crimping and it all looks good.
I reconfigured a bit like you suggested, and what I noticed was that it seemed like true bed levelling was causing the issues. I therefore went through my configs and currently have them configured like this:
homex.g:
; homex.g ; called to home the X axis ; ;Prepare for homing M400 ; Finishes all current moves and and thus clears the buffer G91 ; Set to Relative Positioning G1 Z5 F1200 H2 ; Move the bed down slightly ;Prepare for sensorless homing M913 X50 Y50 ; Set motor currents to 50% M201 X500 Y500 ; Set acceleration on X/Y to 500 to improve reliability of stall detection M915 X Y S2 R0 F0 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 2, don’t take action, don’t filter, 400steps/sec ;Sensorless homing X G1 H1 X-300 F4000 ; Move 300 mm left, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy G1 X30 F1200 ; Move 30 mm out from Xmin ;End of sensorless homing M913 X100 Y100 ; Set motor currents back to 100% M201 X2000 Y2000 ; Set acceleration back to 2000 ;End of homing G90 ; Set to Absolute Positioning
homey.g:
; homey.g ; called to home the Y axis ; ;Prepare for homing M400 ; Finishes all current moves and and thus clears the buffer G91 ; Set to Relative Positioning G1 Z5 F1200 H2 ; Move the bed down slightly ;Prepare for sensorless homing M913 X50 Y50 ; Set motor currents to 50% M201 X500 Y500 ; Set acceleration on X/Y to 500 to improve reliability of stall detection M915 X Y S2 R0 F0 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 2, don’t take action, don’t filter, 400steps/sec ;Sensorless homing Y G1 H1 Y-300 F4000 ; Move 300 mm back, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy G1 Y30 F1200 ; Move 30 mm out from Xmin ;End of sensorless homing M913 X100 Y100 ; Set motor currents back to 100% M201 X2000 Y2000 ; Set acceleration back to 2000 ;End of homing G90 ; Ensure we are in Absolute Positioning
homez.g:
; homez.g ; called to home the Z axis ; ;Prepare for homing M400 ; Finishes all current moves and and thus clears the buffer G91 ; Set to Relative Positioning G1 Z5 F1200 H2 ; Move the bed down slightly G90 ; Set to Absolute Positioning ;Probe Z G1 X150 Y117 F12000 ; Move probe to middle of bed M558 F500 ; Set the first probing speed G30 ; First Z probe M558 F50 ; Set a slower probing speed G30 ; Second Z probe ;End of homing G90 ; Set to Absolute Positioning
homeall.g:
; homeall.g ; called to home all axes ;Prepare for homing M400 ; Finishes all current moves and and thus clears the buffer G91 ; Set to Relative Positioning G1 Z5 F1200 H2 ; Move the bed down slightly ;Prepare for sensorless homing M913 X50 Y50 ; Set motor currents to 50% M201 X500 Y500 ; Set acceleration on X/Y to 500 to improve reliability of stall detection M915 X Y S2 R0 F0 ; Configure motor stall detection on X and Y as they work together on corexy - sensitivity 2, don’t take action, don’t filter, 400steps/sec ;Sensorless homing X G1 H1 X-300 F4000 ; Move 300 mm left, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy G1 X30 F1200 ; Move 30 mm out from Xmin ;Sensorless homing Y G1 H1 Y-300 F4000 ; Move 300 mm back, stopping at the endstop - Speed is 4000 which is about twice the Hmin due to two motors working together on Corexy G1 Y30 F1200 ; Move 30 mm out from Xmin ;End of sensorless homing M913 X100 Y100 ; Set motor currents back to 100% M201 X2000 Y2000 ; Set acceleration back to 2000 G90 ; Set to Absolute Positioning ;BLTouch home Z G1 X150 Y117 F12000 ; Move probe to middle of bed M558 F500 ; Set the first probing speed G30 ; First Z probe M558 F50 ; Set a slower probing speed G30 ; Second Z probe ;End of homing G90 ; Ensure we are in Absolute Positioning
bed.g:
; bed.g ; called to perform automatic bed compensation via G32 ; M561 ; Clear any bed transform M401 ; TEST!!! Deploy probe - deployprobe.g G30 P0 X35 Y173 Z-99999 ; Probe near front-left leadscrew G30 P1 X265 Y173 Z-99999 ; Probe near front-right leadscrew G30 P2 X150 Y290 Z-99999 S3 ; Probe near rear-center leadscrew and adjust bed parallel to corexy kinematics M402 ; TEST!!! Retract Probe - retractprobe.g G1 X20 Y20 F12000 ; Move close to home
For the bed.g, I tried various things to see if the probe would deploy, and ended up finding this to work. I found this particular way of doing it in the same guide I used to set up my BLTouch. This is the guide I used.
So in response to your question about trigger height, I found the value in the same guide. It basically tells you to move the nozzle down all the way to the build plate and run:
G92 Z0 ; Tell the machine we are at Z=0 G1 Z10 ; Move Z 10 mm away from nozzle G30 S-1 ; The value you get here is the offset you put in G31.
The guide also notes that as low a value as possible is best, which to me makes sense, as that will leave the most clearence under the nozzle when probing. I am not sure I understand why the trigger height in itself affects the accuracy or reliability, could you explain that?
I tried to measure the physical delta, and it is actually around 8mm. The Hemera carriage with BLtouch mount is one I downloaded off of thingiverse, so I did not design this delta myself.
Last thing, yes it is a genuine BLTouch v3.1. Only clone component on the printer are the linear rails.
So where do we go from here?
-
As you recommended, I also tuned the sensorless homing.
I think the main reason was that I had no H value on the M915 commands. I am running 0.9 motors, so I set that to 400 and sensitivity to 1, and now that part at least seems to work good:
https://www.youtube.com/watch?v=tnWOXK7N014 -
So while waiting to see what you guys think is going on, I went ahead and did a test print. Seems I have more issues
-
I wonder if part of the issue is binding on the axis...
-
@Phaedrux said in Nozzle crashed into bed while homing - can this be avoided?:
I wonder if part of the issue is binding on the axis...
I don’t think there’s any binding going on. I completely disassembled, flushed, greased and carefully assembled all the linear rails. I spent a lot of time with squares and calipers during the build and would say that the machine is very mechanically sound. That is my strong side, so I am more concerned with electronics/firmware where I am still very challenged.
I just saw the other post with @dlc60 having 45 degree layer shifts. Mine are exactly 45 deg and exactly the same direction and distance between them. I wonder if we are seeing the same thing?
-
@Phaedrux
I am trying to tune some different things right now, and it just happened againIt seems completely random! This time I know for sure that the X/Y homing when fine, but still the probe did not come out, and I just managed to stop it before crashing hard..
Console says:
19.6.2020 14.55.16 Error: Z probe was not triggered during probing move Error: Z probe was not triggered during probing move Error: Homing failed
-
Alright you must check your BLTouch wiring for continuity. The crimps are notorious failure points. This is by far the most likely problem at this point.
-
@Phaedrux said in Nozzle crashed into bed while homing - can this be avoided?:
Alright you must check your BLTouch wiring for continuity. The crimps are notorious failure points. This is by far the most likely problem at this point.
Alright I ran through it.
I got it wired uip to IO_7
Red wire runs to 5V_EXT - Continuity, measured ~2.2 ohm
Yellow wire runs to io7.out - Continuity, measured ~2.2 ohm
Brown and black wire run to GND - Continuity, measured ~2.2 ohm
White wire runs to io7.in - Continuity, measured ~2.2 ohmEarlier today I was doing a test print, and I noticed the red LED was flickering while it was printing. Afterwards I noticed that it was blinking after homing. So I looked it up on Google, and found something that I did not comprehend entirely, but it was someone talking about the probe thinking it is too close to the bed to be able to deploy. I rebooted the machine and noticed that BLTouch did not do it's self-test either. So I allowed movement without homing, lowered the bed a lot, rebooted, and when powering it back on, it did self-test again and constant red LED.
Don't know if the LED blinking observation has anything to do with this issue, but just wanted to mention it.
I do not know much about any of this, but I would have assumed that there were a safety measure in place that immediately stopped the Z movement for G30, in case an error is thrown that the BLTouch cannot deploy for whatever reason. Maybe I could code that into my homings to create a safety net for this issue till we hopefully solve it?
-
Flashing red usually indicates error state if the self test is unable to successfully deploy and retract the probe or if the pin is blocked when trying to deploy. Could also be an intermittent wiring break depending on position.
As a precaution you can add the alarm release and pin retract command to the end of config.g and start of homeall to clear any errors just in case.
You can try and take the pin out of the probe and check it/clean it by removing the set screw on the top.