Strange behaviour in G1 movement
-
Even with no endstops connected, I still have the strange movement. It will only move at speed if I add the S1 or S2 parameter. Otherwise it is crawling at a snails pace.
-
@zesty_lykle Hi Lykle. Looking again at your picture of the end stop switch, it looks like it's just a microswitch with an LED associated with it. If it's normally closed, then current will flow through the LED. When the switch is triggered, it goes from normally closed to open so no current flows through the LED and it goes off. That's how I'd expect it to work. Can you confirm that your M574 is something like X1 Y1 S1? You could wire it to use the normally open contact in which case the LED would light when it triggers but you'd have to change your M574 from S1 to S0. It's generally best to wire them as you have so that if a wire falls off, then it'll look like the switch is triggered rather then having them normally open in which case if a wire falls off, it'll never trigger.
Either way, it's just a make/break switch and there is no "in between" condition. So I can't see how or why your problem can be caused by the switch or its configuration. If it was a Z probe and being used, then the situation is different.
-
@zesty_lykle Looks like we posted at the same time. So I think you've eliminated the switch as a likely cause. You say that you updated to the latest firmware, does that include the latest version of DWC?
-
It is a normally open switch.
I have downloaded the combined file and installed that.Nothing I do, makes a change in the behaviour.
-
@zesty_lykle That's really weird. So when an S1 parameter is used, the firmware is looking for a change of state of the end stop switch. But I've been through the complete list of G and M codes and can't see anything anywhere that might define a different speed when and S1 parameter is used.
Can you post your config.g and I'll compare it with my CoreXY config to see if anything leaps out at me.
-
Please post your config.g file.
-
-
Here is a long shot. I see you use mesh grid bed compensation. Also, your Z speed and accelerations are low (not saying there is anything wrong with that, just making an observation). So I'm wondering is G1 XY moves are slow because the mesh compensation is active and it's having to wait for the Z axis. Then maybe when the S1 parameter is present, it's classed as a homing move so any mesh bed compensation is not being acted on.
As I said, just a long shot - I don't use any form of flatness or level compensation so it might aslos explain why I can't replicate the behaviour on my machine.
-
Since I don't have any of that connected yet, not even the Z stepper, I think I will comment it all out and reduce the config file to the absolute minimum.
-
No, didn't make any difference.
It is consistent. Everything I try doesn't make any difference. -
@zesty_lykle Your M208 is a bit strange, as in the G-Code example
Example
M208 X200 Y200 Z90 ; set axis maxima
M208 X-5 Y0 Z0 S1 ; set axis minimaof https://reprap.org/wiki/G-code#M208:_Set_axis_max_travel the values are different.
In your config you write S0 as minima and S1 as maxima as comment:
; Axis Limits
M208 X150 Y150 Z0 S0 ; Set axis minima
M208 X-150 Y-150 Z300 S1 ; Set axis maximabut it's other round in the RepRap documentation.
Maybe the Z direction is wrong (M574 Z1 endstop at low end, so at 300?) And your behavior comes from the fact that the z-homing isn't done or something.
-
Man I could kiss you!
Yep, that solved it.
I can now move everywhere at speed with no S parameter.Thank you.
It still feels odd to define Z300 as minima and Z0 as maxima but it does the trick.
OK now I can continue with the real tests. Thank you again. -
@zesty_lykle Z300 should be maxima and Z0 minima, why do you need to define it the other way around? Possibly your Z axis is moving in the wrong direction?
-
Hi Tony,
Nah, it is just that because I have 0,0 set in the center, and not left front, it comes out a bit strange, but it works nicely.To pick up a tool, in the toolchange macro, I have to go outside the print boundaries. Now I do that with a relative statement with the S parameter set. It works, but is there a different way to do it?