Z-Axis correctly homing but crashes into the endstop on printing
-
Here it is (it is generated with Cura 2.4):
[[language]] ;FLAVOR:RepRap ;TIME:26015 ;Filament used: 13.6328m ;Layer height: 0.15 ;Generated with Cura_SteamEngine 2.4.0 M190 S70 M104 S245 M109 S245 G21 ;metric values G90 ;absolute positioning M82 ;set extruder to absolute mode M107 ;start with the fan off G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops G1 Z15.0 F9000 ;move the platform down 15mm G92 E0 ;zero the extruded length G1 F200 E6 ;extrude 6 mm of feed stock G92 E0 ;zero the extruded length again G1 F9000 ;Put printing message on LCD screen M117 Printing... ;LAYER_COUNT:199 ;LAYER:0 M107 G1 F1500 E-6.5 G0 F3600 X86.3 Y86.301 Z0.3 ;TYPE:SKIRT G1 F1500 E0 G1 F1800 X86.3 Y97.501 E0.21068 G1 X86.26 Y98.29 E0.22554 G1 X86.141 Y99.07 E0.24038 G1 X85.943 Y99.835 E0.25525 G1 X85.669 Y100.575 E0.27009 G1 X85.321 Y101.284 E0.28495 G1 X84.903 Y101.955 E0.29982 G1 X84.478 Y102.504 E0.31288 G1 X84.666 Y102.722 E0.31829 G1 X85.117 Y103.37 E0.33314 G1 X85.501 Y104.061 E0.34801 G1 X85.813 Y104.786 E0.36286 G1 X86.05 Y105.539 E0.37771 G1 X86.209 Y106.313 E0.39257 G1 X86.29 Y107.098 E0.40742 G1 X86.3 Y107.5 E0.41498 G1 X86.3 Y118.7 E0.62566 G1 X97.5 Y118.7 E0.83634 G1 X98.289 Y118.74 E0.8512 G1 X99.069 Y118.859 E0.86604 G1 X99.834 Y119.057 E0.8809 G1 X100.574 Y119.331 E0.89575
-
So your start gcode is homing xy then homing Z. What happens if you send these commands manually:
G28 X0 Y0
G28 Z0
G0 Z0.3 -
This works just as fine.
-
What is the "G1 F9000" for?
Its in this section of the program
G92 E0 ;zero the extruded length again
G1 F9000Maybe that is causing the crash?
-
My best guess would be as follows but I'd need to know what maximum speed you've set for Z in your config.g.
Towards the start of your gcode, there is G1 Z15.0 F9000. That is to say, move the Z axis 15mm at a speed of 9,000 mm/min which is pretty dammed high for the Z axis - it's 150mm per second and if you are using some sort of lead screws, I'd doubt that the machine is capable of that speed. So, you'll likely have skipped steps and the machine won't physically move that 15mm. So say for example that it only moves 10mm but the electronics "thinks" the bed is at 15mm away from Z=0. The next Z move is to go to 0.3mm at a speed of 3600 (still high IMO but more sensible). So the machine "thinks" it has to move the bed 14.7 mm to get to Z=0.3 but because the bed is only 10mm away from the nozzle, it'll crash.
It's easy to check - just edit that Z15.0 F9000 to something like Z15.0 F600.
AFAIK, the maximum speed you set in config.g should also limit the speed regardless of what the slicer tries to do (DC42 will confirm this or otherwise) so if you have that set high, reduce it to something sensible.
HTH
-
Nope Z15.0 F600 and Z0.3 F600 still give the same result. Because my Machine is an Ultimaker Original and rhe Profile in Cura is for the Ultimaker Original it should be able to do F9000.
-
Oh well, it was just a thought (although I'd be amazed if your Z can travel at 150mm/sec). However, you've tried a slower speed so…...
The only other thing that I can think of is are you sure you've got the steps per mm correct for Z? What do you have them set to and what is the lead (not pitch) of your screws?
Edit, even if your machine is capable of 9000mm/min in Z , it's way too fast IMO - especially if you are using that sort of speed to home.
-
I see what you are saying but if you look close in the program you posted you just have a "G1 F9000". No axis is called out on that line. I would remove that line and see if it corrects the crashing issue.
This is where a single block button would be nice to have. All of the CNC machine I run have that switch to step through the program one line at a time. Its a big help for correcting program issues.
-
No this doesn't work neither. Im gettig so frustrated, it all homes fine wen it starts the g-code file, then it moves to the center in X and Y and then it moves the Z-axis (I've even increaten from Z0.3 to Z0.6) but is still can watch how the platform hits the Z-axis enstop but carelessly continues to move upwards.
-
Just to be clear. If you home Z, then do G1 Z0 does it go to the point where the nozzle is just touching the bed?
-
starts the g-code file, then it moves to the center in X and Y and then it moves the Z-axis (I've even increaten from Z0.3 to Z0.6) but is still can watch how the platform hits the Z-axis enstop but carelessly continues to move upwards.
Anyway you can post a video of this happening?
Is your Z home position down at the print bed where the nozzle touches the build plate or up with the nozzle at it highest point away from the build plate?
-
Here is a short video. You can clearly see that i the beginning the Z-axis correctly stops when the endstop triggers, but when it moves to the middle you can hear that the Z-axis turns further even though the endstop triggers.
https://youtu.be/93f6WJ-Ht1IThis is the test G-Code file:
[[language]] ;Generated with Cura_SteamEngine 2.4.0 G21 ;metric values G90 ;absolute positioning M82 ;set extruder to absolute mode M107 ;start with the fan off G28 X0 Y0 ;move X/Y to min endstops G28 Z0 ;move Z to min endstops G1 Z15.0 F600 ;move the platform down 15mm G92 E0 ;zero the extruded length G1 F200 E6 ;extrude 6 mm of feed stock G92 E0 ;zero the extruded length again ;Put printing message on LCD screen M117 Printing... ;LAYER_COUNT:199 ;LAYER:0 M107 G1 F1500 E-6.5 G0 F3600 X86.3 Y86.301 G0 F600 Z0.6 ;End of Gcode
-
What is in your homing gcode files?
-
[[language]] ; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool on Thu Nov 17 2016 21:40:07 GMT+0100 (W. Europe Standard Time) ; Relative positioning G91 ; Lift Z G1 Z5 F6000 ; Move towards X and Y axis endstops (first pass) G1 X-215 Y-215 F1800 S1 ; Go back a few mm G1 X5 Y5 F6000 ; Move slowly to axis endstops once more (second pass) G1 X-215 Y-215 F360 S1 ; Move Z down until the switch triggers G1 Z-210 S1 F1800 ; Absolute positioning G90 ; Tell the firmware where we are G92 Z2.5 ; Uncomment the following line to lift the nozzle after probing ;G1 Z5 F100
[[language]] ; homez.g ; called to home the Z axis ; ; generated by RepRapFirmware Configuration Tool on Thu Nov 17 2016 21:40:07 GMT+0100 (W. Europe Standard Time) ; Lift Z relatively to current position G91 G1 Z5 F6000 ; Move Z down until the switch triggers G1 Z-210 S1 F1800 ; Back to absolute positioning G90 ; Tell the firmware where we are G92 Z2.5 ; Uncomment the following lines to lift Z after probing ;G91 ;G1 Z5 F100 ;G90
-
Your video is marked private, can't see it.
The line G92 Z2.5 after your homing sequence tells Duet your hotend is 2.5mm above the build plate while it is actually hitting the min-z endstop
If you go below Z2.5 afterwards the hotend will always move lower than when it hit the endstop (as in G0 F600 Z0.6 in your test)
Is that what you intend to do? -
I had nearly exactly the same issue, and I started discussing on on reprapforums:
http://forums.reprap.org/read.php?416,745331I fixed the issue by downloading a new configuration file (using exactly the same parameters). I've no idea what caused the first problem.
-
made the video public.
Well then i might try that as well with uploading a new config file with same parameters. -
Before you overwrite everything, it is better to understand how it works so that you will be able to troubleshoot future problems.
Start with removing the G92 Z2.5 line from the files and see what happens -
or even make the value for Z in that line to be negative just to give a margin of safety that change should make the nozzle 2.5 above the bed
-
What has been throwing me is the title which starts "Z axis correctly homing…" but now I don't think it is homing correctly.
Here is a quick explanation of how it works. Z=0 is the point where the nozzle is just touching the bed. We have some sort of probe or switch or whatever which will trigger when the bed gets close to it. However, it is very unlikely that the nozzle will be just touching the bed at this exact same position. It is possible but would require some very precise mechanical adjustment. So instead, we accept that the position where the switch/probe triggers is not Z=0 but is offset by some amount. Lets say the switch triggers 1.0 mm before the nozzle touches the bed. We then put this value into our configuration file which "tells" the machine that to get to Z =0 from the point where the switch triggers, we have to move a further 1.0mm.
It seems to me that the trigger height is set to 2.5mm in the config.g file but the true distance between the switch triggering and the nozzle touching the bed is somewhat less. So the machine tries to move 2.5mm from the point where the switch triggers because that is what it has been "told" is the distance from this point to Z =0.