I could use some help
-
@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?
-
@fcwilt so I sent the command, and then I tried to move the print head. All it did was shake side to side, like it was being told to step left step right really fast.
I couldn’t believe what I was seeing. So I tried again. Three times.
Then I tried to move the bed back to its endstop. That worked. The bed moved smoothly. But I couldn’t see the metal piece of the bed that touches the endstop.
So then I looked at the info in DWC. It was a huge number, in the 400’s. I think it was negative. Then I sent the bed to the front of the printer, to see what that number would do, and it started rattling against it, like it wanted to break free.
So I turned the machine off. I spent 12 hours mounting the board under the front of the printer today, where the old board was. And re-routing all of the wiring, and trying to make everything look somewhat presentable.
And it does work worth shite.
-
@mac said in I could use some help:
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?
I mentioned M564 H0 S0 so you could jog anywhere on any given axis while you determined the max travel for the axis.
The point of the G92 X0 (or Y0) was just to set the current position for that end of the axis to 0 so when you moved to the other end the position displayed by the DWC would directly readout the max travel.
There are other ways to determine the max travel, I was just trying to give you an example of using the DWC and some simply commands to do it.
M564 S1 makes it so you cannot go beyond the boundaries set by M208.
I did not go on to describing how to verify the operation of the endstop sensors and determine their actually position because I did not want to overload you with too much stuff.
I just wanted to be sure we were both on the same page with what I had posted so far.
Frederick
-
-
@fcwilt well, the X-axis is messed up, and the y axis is okay, I guess. But that shaking thing is creep pee!
-
@mac said in I could use some help:
the X-axis is messed up, and the y axis is okay, I guess. But that shaking thing is creep pee!
We can figure that out.
so I sent the command, and then I tried to move the print head. All it did was shake side to side,
What command are you referring to?
How did you try to move the print head?
Frederick
-
@fcwilt I started by entering the command that allows you to move the axis without homing first.
-
@fcwilt and then I used the incremental buttons to move the X axis towards the end stop in the left side of the printer. It’s possible that when I pushed the “move X 10mm left,” the print head went side to side 10 times?
-
@fcwilt M564 H0 S0
-
@mac sounds more like a wire is loose on the X axis motor. Check your wiring.
Ian
-
@mac
; Configuration file for Duet 3 Mini 5+ (firmware version 3.3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Fri Jun 24 2022 15:21:44 GMT-0700 (Pacific Daylight Time) ; General preferences M575 P1 S1 B57600 ; enable support for PanelDue G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Frankenstein's Cinderella" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards M569 P0.1 S0 ; physical drive 0.1 goes backwards M569 P0.2 S0 ; physical drive 0.2 goes backwards M569 P0.3 S1 ; physical drive 0.3 goes forwards M584 X0.0 Y0.1 Z0.2 E0.3 ; set drive mapping M350 X32 Y32 Z32 E32 I1 ; configure microstepping with interpolation M92 X80.00 Y80.00 Z4000.00 E420.00 ; set steps per mm M566 X900.00 Y900.00 Z60.00 E120.00 ; set maximum instantaneous speed changes (mm/min) M203 X6000.00 Y6000.00 Z600.00 E1200.00 ; set maximum speeds (mm/min) M201 X500.00 Y500.00 Z200.00 E250.00 ; set accelerations (mm/s^2) M906 X600 Y600 Z600 E600 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 X220 Y220 Z240 S0 ; set axis maxima ; Endstops M574 X2 S1 P"io5.in" ; configure switch-type (e.g. microswitch) endstop for high end on X via pin io5.in M574 Y2 S1 P"io6.in" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin io6.in M574 Z1 S2 ; configure Z-probe endstop for low end on Z ; Z-Probe M950 S0 C"io3.out" ; create servo pin 0 for BLTouch M558 P9 C"io3.in" H5 F120 T3600 ; set Z probe type to bltouch and the dive height + speeds G31 P500 X-42 Y-16 Z2.5 ; set Z probe trigger value, offset and trigger height M557 X5:190 Y5:215 S10 ; define mesh grid ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B4092 ; 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 S33 ; set temperature limit for heater 0 to 33C M308 S1 P"temp1" Y"thermistor" T100000 B4092 ; 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 S100 ; set temperature limit for heater 1 to 100C ; Fans M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency M106 P0 S1 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"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 ; Custom settings M575 P1 S1 B57600 ; Miscellaneous M501 ; load saved parameters from non-volatile memory M911 S21 R23 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
-
@droftarts will do, thanks. Mac