I could use some help
-
@mac actually, that's what I've been doing all along (the line says / shows Square, config.json GRAPHIC with SQUARE with ARROW in it edit via config tool.
That's what I'm assuming your referring to.
Let's get started!
Mark
-
@droftarts so really, the only problem was the Endstop locations for x and y were low end when they should have been set to High end.
Once again, getting high wins the day!
Mark
-
@droftarts HERE'S AN UPDATE
X Y and Z performed MUCH BETTER. However, when I HOME ALL'd X hit the Endstop 3 or 4 times before stopping. Then the print head, accompanied by the BLTouch, qhich sensed the bed, and that was that.
So, should I post all of the config files again to see what's causing X to want to go further left than it should? What I'm seeing is the nozzle's pointed right at the very edge of the bed.
-
@drofarts Actually, I spoke too soon. I just tried to Home All again. The Print Head came to the X-endstop, and pounded on it until I turned the printer off.
Then, I turned the printer back on and Home All-d the printer to see what would happen. The Print Head came forwards, beyond the front edge of the bed, and then started to land in the empty space in front of the bed, where nothing would stop the BLTouch.
So, the Print Head is not honoring the X-endstop, and (it's possible) that the Y-axis is crushing the y-endstop at the rear of the machine.
(Actually, I have this extender on the Y-stop to move the bed FORWARDS. I think I'll remove that. It was put there to "correct" a problem with the original mystery firmware, which refused to take the bed all the way to the back."
Hmmmmm.
Mark
-
-
@droftarts I'm posting what's above this because the language says the end stops are "high end," but the code ends with S1, not S2?
-
@mac here’s a picture that I think is where the print head thinks Home is?
Mark
-
@mac said in I could use some help:
@droftarts I'm posting what's above this because the language says the end stops are "high end," but the code ends with S1, not S2?
Hey mac,
The number after the letter (X, Y or Z) specifies where the endstop is located - high end or low end of axis.
The S parameter specifies the type of endstop. From the docs for M574:
M574 Parameters
Xnnn Position of X endstop: 0 = none, 1 = low end, 2 = high end.
Ynnn Position of Y endstop: 0 = none, 1 = low end, 2 = high end.
Znnn Position of Z endstop: 0 = none, 1 = low end, 2 = high end.P"pin_name" Defines the pin name(s) that the endstop(s) for the specified axis are connected to, see Pin Names. Needed when S=1. May need ! before pin name to invert signal, or ^ to enable the pullup resistor, for example on the Duex expansion board.
Snnn 1 = switch-type, 2 = Z probe (when used to home an axis other than Z), 3 = single motor load detection, 4 = multiple motor load detection
This command must be later in config.g than the M584 command that creates additional axes, or axes that have multiple motors and endstops.
You may already know this but I will include just to be safe.
When you execute a G1 H1 command it stops when it activates an endstop sensor.
At that point the logical position of the axis is set to axis min or max (see M208) depending on the declared position of the endstop (high or low).
There is nothing that insures that physical position at that point matches the logical position.
If you have an endstop at the low end and the axis min is 0 but the endstop activates at 5 the logical position will be set to 0 but that physical position will be 5.
To keep the logical and physical positions in sync you can:
- insure the point at which the endstop activates matches the min/max for the axis (as appropriate)
- adjust the logical position using a combination of G1 moves and G92 set logical position commands.
Frederick
-
@mac said in I could use some help:
@droftarts I'm posting what's above this because the language says the end stops are "high end," but the code ends with S1, not S2?
Yes, sorry, I was wrong (and have since edited it), it should be X2 and Y2, with S1. X1 is for low end, X2 for high end, and the S parameter is for the endstop type, where S1 is switch, which is what you have. See https://docs.duet3d.com/en/User_manual/Reference/Gcodes/M574
To get the homing where you want it, it's a process of editing the M208 limits. So that when it's homed at the maximum, eg X210 might be the endstop and where it's on the edge of the bed on the right side, if you move it back to X0, it's on the edge of the bed on the left (or wherever you want it). Then the same with Y.
Ian
-
@fcwilt I didn't know any of that, like, What language is this?
But mostly I couldn't answer the questions at the end, as in, I can't even see what this is saying.
But I have a feeling that I'm going to understand this, at some point. Hopefully I have enough time left to get there.
-
@droftarts I'm going to have to read that a lot slower, I guess. I think you're suggesting that I have to enter some gcode via the console, and physically move the print head to, for instance, where I'd like it to be on each corner, I'll say, of the bed. Is that correct?
I was under the impressive that this board, with this code on it, and the information it has about the size of the bed, would already know that. But now that I'm thinking really hard about it, sure, it knows the size of the bed, but the end-stops? Where they are, it don't know 'nuthin.'
Great, just, amazingly, great.
But I'll get there.
-
@mac said in I could use some help:
I think you're suggesting that I have to enter some gcode via the console, and physically move the print head to, for instance, where I'd like it to be on each corner, I'll say, of the bed. Is that correct?
No, nothing like that.
Obviously the firmware only knows what you "tell" it about the limits of axis travel for X, Y and Z.
Unfortunately it currently assumes that the endstop for each axis activates at the min or max for that axis depending on the endstop being declared to be at the high or low end of the axis.
The size of the bed does not usually have any fixed relationship to the axis travel. The bed may be, say 300 x 300 but the X axis may be able to travel 350 and the Y axis 400. It depends on how the printer is designed.
And the endstop sensors may or may not be all the way at one end of the axis or the other. Again it depends on how the printer is designed.
One thing you generally do as you figure out the settings for the M208 and M574 commands is jog the axes back and forth and figure out things like the maximum travel for each axis and where the printable area of the bed falls in the space delimited by the max travel of each axis.
Example of how this might be done:
- execute a M564 H0 S0 - this allows jogging of the axes even if they are not homed and they can be jogged anywhere along the axis regardless of any limits set by M208
- jog the X axis all the way to the low end
- execute G92 X0 - this sets the logical position as X = 0
- jog the X axis all the way to the high end being carefully to not slam into the end the axis but just touch it gently
- read the X axis position off the DWC - you now know that maximum travel of the X axis
Then you do the same for the Y axis.
Now at this point you can edit your M208 command, in config.g, to specify the initial values of min/max for both the X and Y axis. Reboot/reset the printer and you will now not be able to travel beyond the limits of the X and Y axes, if the axis limits are enabled, which is typically the case. They would be enabled by M564 S1 which I believe is the default state after reboot/reset.
Does any of that make sense?
Once it does I can move on to the next steps.
Frederick
-
@fcwilt yes, it does make sense, because to my way of communications, you, like myself, speak in moving pictures. Thank you for that.
I’m wondering how I will determine the range (from low to high) of Z given what you described, as I have removed the end stop for Z because of the BLTouch, which is working quite well, but is still not adjusted fully?
-
@mac said in I could use some help:
@fcwilt yes, it does make sense, because to my way of communications, you, like myself, speak in moving pictures. Thank you for that.
I’m wondering how I will determine the range (from low to high) of Z given what you described, as I have removed the end stop for Z because of the BLTouch, which is working quite well, but is still not adjusted fully?
Well, I equip all my printers with Z endstops as I find it homes quicker and the homing code for all axes can be simpler.
I also have Z probes which I use for all the other Z probe purposes such as setting the Z=0 Datum, leveling the bed and creating the height map. I just don't use the Z probe for homing Z.
Regardless you would determine the limits the same way as I described for X and Y. You would jog Z until it was just touching the nozzle. Execute a G92 Z0 to set the logical position. Jog all the way to the other end and read off the Z position.
Frederick
-
@fcwilt I’m getting what you’re saying.
Here’s a snarly question that came to mind; all of this comes from that one page of RRF where you’ve already told it the size of your bed, and now you’re telling it what kind of endstops you have. Only there’s a trick to this, because the language, high and low, they’re a lot more critical and complex than the presentation suggests or describes. It seems to me that this is where the entire result went totally south because I didn’t understand the questions or the implications.
Maybe that section could be expanded? It’s very important; isn’t that right? Maybe it would help to present a couple of pictures to kind of explain what’s what?
I thought it was nothing but “is my endstop at the beginning on the travel, or at the end?” But it turns out there’s this whole language about endstops that casts them in a very different and significant light. I wish I’d known about that during that portion of the process so I could have made way better choices.
I also wish I’d know almost two months ago that speaking fluent Goode is a requirement of installing this board.
Oh, well, bitch bitch bitch. I’ll get there because Duet3D has Great people helping us morons fiddle our way through this so we can print stuff that doesn’t do nearly enough for the effort we out into it.
Venting session over and done with.
Mac
-
@mac said in I could use some help:
I thought it was nothing but “is my endstop at the beginning on the travel, or at the end?”
Basically correct aside from needing to specify the type of endstop, which is often type 0, rarely type 1, sometimes type 3 or 4. I always use type 0.
But it turns out there’s this whole language about endstops that casts them in a very different and significant light.
That I don't understand. What "language" are you talking about?
Frederick
-
@fcwilt I'm done bitching . . . however, (and maybe this isn't true), X goes side to side, typically left to right, so, the x-endstop is on the left, versus high or low. Y typically goes forwards and backwards, with the stop typically being at the back, so back is how it's described. Z goes up and down, so that enstop is at the top or the bottom of the axis. Left, right, back, front, top, bottom, those are easier ways to describe and understand the position of endstops, I think.
But that's the take of someone who doesn't know shite, so, The End, right?
Today I'm going to use all of the wonderful, albeit incorrect at times, but edited to perfection information in this thread to get my printer more together than it's been in almost a month.
Wish me luck!
-
@mac said in I could use some help:
X goes side to side, typically left to right, so, the x-endstop is on the left, versus high or low. Y typically goes forwards and backwards, with the stop typically being at the back, so back is how it's described. Z goes up and down, so that enstop is at the top or the bottom of the axis. Left, right, back, front, top, bottom, those are easier ways to describe and understand the position of endstops, I think.
Got it.
But consider this, every linear axis has two ends. The positions on the axis range from some minimum value to some maximum value. The endstop term "low" corresponds to the minimum end. The endstop term "high" corresponds to the maximum end.
These terms apply regardless of the orientation of the axis (left and right, forward and back, up and down).
They apply regardless of where the minimum and maximum ends of the axis are. If, for some strange reason, the left most X axis position was 500 and the right most X axis position was 0 the terms "low" and "high" still will be correct.
Wish me luck!
I hope all goes well.
Don't hesitate to ask for help.
Frederick
-
There’s a Blade Runner inside my printer now.
-
@fcwilt so I'm rereading this entire thread, because I've been looking for some specific gcode / language, and finally, I found it in your post. I've put some comments seeking clarification in this.
Bit 1: G1 H1 stops when it activates an endstop sensor.
Bit 2: (more important)
M564 H0 S0 allows jogging of the axes even if they are not homed.
Then (after I send that command) you can jog anywhere along the axis regardless of any limits set by M208.
Jog the X axis all the way to the low end. NOTE: on my printer the left end is the low end of the X-axis. The right end is the high end / with NO ENDSTOP. So, if I go to the Low End, I know where the printer / the firmware things 0 is, and when I go to the high end, I know the maximum run.If the idea is to set these two points (for X and Y, and Z?), this process sounds like it will work. I just have to do it correctly?
Execute (send) G92 X0 - this sets the logical position as X=0. NOTE: This gcode /command is telling my config.g file (?) that where the print head is right now is X=0.) (Or, it may be telling my config.g what I want to be the 0 and the maximum run?
Jog the X axis all the way to the high end (the other end, I'm assuming), being careful to not slam into the endstop, just touch it gently. NOTE: on my printer, the high end does not have an end-stop. The end-stop is on the other / low? end.
Read the X axis position off the DWC - you now know the maximum travel of the X axis. NOTE: I hope this isn't reversed? The point is to know the maximum travel?
Do the same for the Y axis.
Now you’re ready to edit your M208 command, pin config.g, to specify the initial values of min/max for both the X and Y axis. NOTE: this sounds like another step I have to do after I've done the above stops.
Reboot / reset the printer, and you will now be able to travel beyond the lints of the X and Y axes; if the axis limits are enabled, which is typically the case. The would be enabled by M564 S1, which I believe is the default state after reboot/reset. HMMMMMM, why would I go to all that trouble to define the boundaries, so I could go beyond them?