Need Help Core XY
-
@jdjeff58 said in Need Help Core XY:
The original microstepping setting was 1/32 (and I don't understand what that means).
your numbers look ok for 1/16 microstepping. for the duet wifi stay with x16 microstepping and interpolation unless there is a very specific reason for using a different setting.
-
@Veti said in Need Help Core XY:
@jdjeff58 said in Need Help Core XY:
So how do you move the bed back down to bottom without it crashing?
i dont understand your question.
if you define the maxium axis movement in your config it wont move past that point.I guess because I don't understand the answer. You make it look like I can use one or the other but not both. Please assume I don't know what I'm doing and learning as I go. "Reconfigure this/that" is a little too vague for me at this point.
-
@jdjeff58 I think what @Veti was referring to is that if you define the axes minima and maxima using M208 in your config.g, then once the printer has been homed any moves will respect those axis limits. So for example if your Z axis maximum is say 300, then you can always move 300mm in the positive direction and it will stop at Z=300 regardless of where it started. It won't go beyond Z=300 once it has been homed so you don't need a Z max limit switch.
-
@jdjeff58 said in Need Help Core XY:
The end stops on this machine are X and Y in the TOP back right corner (micro switches). The Z endstop is at the BOTTOM of the machine and I am using an opto sensor instead of the original micro switch.
Does the machine have the bed or the gantry moving in the Z direction? It's all very well saying that the Z endstop is at the bottom, but without knowing whether the bed or the gantry moves, that doesn't tell is whether it is a Zmin or Zmax endstop switch.
So it looks like auto bed leveling before each print will mean my Z endstop is disabled for good..yes? So how do you move the bed back down to bottom without it crashing?
You can have both a Z endstop and a Z probe.
-
i would suggets you start of using the probe for now.
you only need a zmax endstop instead of a probe for power failure recovery.
i would consider that an advanced topic. focus on getting the basics up and running. -
@dc42 said in Need Help Core XY:
@jdjeff58 said in Need Help Core XY:
The end stops on this machine are X and Y in the TOP back right corner (micro switches). The Z endstop is at the BOTTOM of the machine and I am using an opto sensor instead of the original micro switch.
Does the machine have the bed or the gantry moving in the Z direction? It's all very well saying that the Z endstop is at the bottom, but without knowing whether the bed or the gantry moves, that doesn't tell is whether it is a Zmin or Zmax endstop switch.
So it looks like auto bed leveling before each print will mean my Z endstop is disabled for good..yes? So how do you move the bed back down to bottom without it crashing?
You can have both a Z endstop and a Z probe.
It's the bed that moves on the Z axis. I'm pretty sure I said somewhere that my bed does a free fall when rebooting the board or hitting emergency stop. This bed has a single motor using 4 belts.
-
@Veti said in Need Help Core XY:
i would suggets you start of using the probe for now.
you only need a zmax endstop instead of a probe for power failure recovery.
i would consider that an advanced topic. focus on getting the basics up and running.That's just it, I am trying to do that. I uploaded my files and I'm not really getting any feedback other than microstepping looks ok.
The original question is HOW do I get this configured correctly? Maybe I am not being clear?? My bed is RACING toward the probe when I home Z. The probe does not deploy on home Z. It looks like the bed will not stop when homing Z as THE BED moves toward the BL Touch. I hit emergency stop because THE BED appears like it is going to crash into the gantry because it is RACING in the up direction while the BL touch remains retracted.
-
@deckingman said in Need Help Core XY:
@jdjeff58 I think what @Veti was referring to is that if you define the axes minima and maxima using M208 in your config.g, then once the printer has been homed any moves will respect those axis limits. So for example if your Z axis maximum is say 300, then you can always move 300mm in the positive direction and it will stop at Z=300 regardless of where it started. It won't go beyond Z=300 once it has been homed so you don't need a Z max limit switch.
Thank you...let me try a couple of things with that info.
-
I hate to say this, but the Promega config file arrangement is needlessly complex and confusing. It's almost as if they intentionally made it extra difficult to keep people from making changes. You've got your work cut out for you, but it can be tamed.
Let me address your issues one at a time and see if we can make some progress.
Firstly, the bed falling issue. This one is going to be down to mechanics. If the bed is heavy enough and the lead screw pitch is steep enough, the weight of the bed will auto rotate the lead screws. that's just physics. Without a mechanical break to hold it in place, or friction to keep it from spinning, it will fall once the motors are deenergized. Your best bet in the short term is to install some sort of rubber or foam bumpers that can cushion the fall. Long term, I would suggest switching out the lead screws for once with a flatter pitch angle, like 1mm lead. That should help keep it from auto rotating. Beyond that it will be up to you to make sure the bed is safely at the bottom before powering it off. And for power outages, maybe time to get a battery backup?
Now as for using a Z max endstop and a probe, yes that is possible. RepRapFirmware is configured by gcodes and you can configure it in real time. All the homing macros are just a series of gcode commands as well. so you can actually configure your endstops or probe in the same homing macro.
However, a z max endstop won't stop it from traveling past that endstop during a normal move, or during an uncontrolled move (like the bed falling). As deckingman pointed out, the axis limits are enforced in software. So once the printer is homed, it won't normally allow you to move beyond those limits. Endstops are not active at all times, only when you specifically command a homing move. That's how the homing macros work. You tell the axis to move in a direction until the endstop is hit and then stop, and set the current position to whatever the axis limit is.
Now the config files and homing macros from promega are a little convoluted but most of the homing is occuring in homex and homez. And it's currently configured to use endstop switch, not the probe.
At this point, your options are to go through those two files line by line and understand what the commands are telling it to do, and then modifying it to try and do what you want. Or, and this is probably the better option, use the reprap configurator website and generate a new config file set using the details you know about the printer. It's just a corexy printer afterall. The resulting macros are a lot easier to understand and modify yourself. You can select the zprobe you have and it will build the homing files to use it. You can use the link I posted earlier to help test the new config files to make sure everything is setup properly for corexy.
-
@Phaedrux said in Need Help Core XY:
I hate to say this, but the Promega config file arrangement is needlessly complex and confusing. It's almost as if they intentionally made it extra difficult to keep people from making changes. You've got your work cut out for you, but it can be tamed.
Let me address your issues one at a time and see if we can make some progress.
Firstly, the bed falling issue. This one is going to be down to mechanics. If the bed is heavy enough and the lead screw pitch is steep enough, the weight of the bed will auto rotate the lead screws. that's just physics. Without a mechanical break to hold it in place, or friction to keep it from spinning, it will fall once the motors are deenergized. Your best bet in the short term is to install some sort of rubber or foam bumpers that can cushion the fall. Long term, I would suggest switching out the lead screws for once with a flatter pitch angle, like 1mm lead. That should help keep it from auto rotating. Beyond that it will be up to you to make sure the bed is safely at the bottom before powering it off. And for power outages, maybe time to get a battery backup?
Now as for using a Z max endstop and a probe, yes that is possible. RepRapFirmware is configured by gcodes and you can configure it in real time. All the homing macros are just a series of gcode commands as well. so you can actually configure your endstops or probe in the same homing macro.
However, a z max endstop won't stop it from traveling past that endstop during a normal move, or during an uncontrolled move (like the bed falling). As deckingman pointed out, the axis limits are enforced in software. So once the printer is homed, it won't normally allow you to move beyond those limits. Endstops are not active at all times, only when you specifically command a homing move. That's how the homing macros work. You tell the axis to move in a direction until the endstop is hit and then stop, and set the current position to whatever the axis limit is.
Now the config files and homing macros from promega are a little convoluted but most of the homing is occuring in homex and homez. And it's currently configured to use endstop switch, not the probe.
At this point, your options are to go through those two files line by line and understand what the commands are telling it to do, and then modifying it to try and do what you want. Or, and this is probably the better option, use the reprap configurator website and generate a new config file set using the details you know about the printer. It's just a corexy printer afterall. The resulting macros are a lot easier to understand and modify yourself. You can select the zprobe you have and it will build the homing files to use it. You can use the link I posted earlier to help test the new config files to make sure everything is setup properly for corexy.
Thanks for looking things over. There are no lead screws...just one motor and 4 belts to push each corner. The bed doesn't slam too bad, it's just how the whole board lights up because of the motors backfeeding into the board. I have learned that can burn out drivers chips.
This is where I'm at now. I've been following this tutorial https://betrue3d.dk/bltouch-on-duet-wifi-configuratio-and-usage/
I've gotten it to slam into the nozzle once. I've taken out one line that was copied from the tutorial and it stopped slamming the nozzle. So now it homes on the probe. But something is still wonky. When the X or Y homes, the Z bed attempts to move down and when it's already on the bottom, it grinds the belt gears because it thinks it has to get out of the way.
Seems that when I hit Z home from anywhere other than the bottom of the machine, it's position is screwed up. I need help setting this up correctly like in a block diagram form. Ok...I know to set axis limits...but WHEN? I know I need to zero the Bed on the nozzle, but my zero is -300 and something. Here's some updated Gcode and yes...some of it is M3D like the Xhome and Yhome files because it was the only way I could get X and Y to home by just copying the files and commenting out lines that were giving errors. Here's my most recent config file followed zhome.
; Configuration file for Duet WiFi (firmware version 2.03)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Sat Nov 09 2019 21:10:45 GMT-0500 (Eastern Standard Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"My Printer" ; set printer nameM669 K1 ; select CoreXY mode
; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet; Drives
M569 P0 S0 D2 ; Drive 0 goes forwards, CoreXY_1
M569 P1 S1 D2 ; Drive 1 goes forwards, CoreXY_2
M569 P2 S1 D2 ; Drive 2 goes forwards, Z Motor
M569 P3 S0 D2 ; Drive 3 goes forwards, Extruder
M584 X0 Y1 Z2 E3 ; set drive mapping
;M350 X32 Y32 Z32 E128 ; configure microstepping with interpolation
M350 X16 Y16 Z16 E16 I1
M92 X79.80 Y79.80 Z282.70 E830.00 ; set steps per mm (.9 deg extruder motor)
M566 X420.00 Y420.00 Z39.60 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X4200.00 Y4200.00 Z2298.00 E2500.00 ; set maximum speeds (mm/min)
M201 X500.00 Y500.00 Z75.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 X28 Y100 Z-357.54 S1 ; set axis minima
M208 X375 Y365 Z-8.5 S0 ; set axis maxima; Endstops Mechanical Z
;M574 X2 Y2 Z1 S0 ; set active low and disabled endstops; Use this if you have an optical Z endstop
;M574 X2 Y2 S0 ; Set xy end-stops types (S0 is active low, applied to XY)
;M574 Z2 S1 ; Set z end-stops types (S1 is active high, applied to Z) Optical Z Bottom; Use this if you have BL Touch
M574 X2 Y2 S0
M574 Z1 S2 ; Define Z to use Probe. Home to Min (BL Touch Nozzle); Z-Probe
M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch
M558 P9 H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X28.9 Y0 Z5.069 ; set Z probe trigger value, offset and trigger height
M557 X50:350 Y125:340 S75 ; define mesh grid; Heaters
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M305 P0 T100000 B4138 C7.060000e-8 R4700 ; set thermistor + ADC parameters for heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M305 P1 T100000 B4725 C7.060000e-8 R4700 ; set thermistor + ADC parameters for heater 1
M143 H1 S280 ; set temperature limit for heater 1 to 280C; Fans
M106 P0 S1 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S0 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on; Tools
M563 P0 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
M572 D0:1 S0.07 ; Extruder Pressure Advance; Miscellaneous
M501 ; load saved parameters from non-volatile memory
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss; homez.g
; called to home the Z axis
;
; generated by RepRapFirmware Configuration Tool v2.1.2 on Sat Nov 09 2019 21:10:46 GMT-0500 (Eastern Standard Time)
;G91 ; relative positioning
;G1 H2 Z5 F6000 ; lift Z relative to current position
;G1 H1 Z-382 F1800 ; move Z down until the endstop is triggered
;G92 Z0 ; set Z position to axis minimum (you may want to adjust this); Uncomment the following lines to lift Z after probing
;G91 ; relative positioning
;G1 H2 Z5 F100 ; lift Z relative to current position
;G90 ; absolute positioning; Homez.g
G1 H2 Z-350 F3000 ; lift Z relative to current position
G30 ; Do a single probe to home our Z axis
G90 ; Make sure we are in absolute mode
;G1 Z10 F6000 ; Rapidly move the Z axis to Z=10 -
@jdjeff58 said in Need Help Core XY:
There are no lead screws...just one motor and 4 belts to push each corner. The bed doesn't slam too bad, it's just how the whole board lights up because of the motors backfeeding into the board. I have learned that can burn out drivers chips.
My condolences.
When the X or Y homes, the Z bed attempts to move down and when it's already on the bottom, it grinds the belt gears because it thinks it has to get out of the way.
Yes, that's part of the homing macro, it tries to lift the nozzle/lower the bed out of the way before moving the X and Y axis. It's unfortunately not able to know it's at the bottom of the printer when it does this. Eventually when conditioning Gcode is implemented this may be able to be detected and mitigated, but for now the only option is to either remove the move out of the way portion, or ensure that it's never truly at the physically bottomed out position.
My own printer is a corexy and I also use a z max endstop and a probe. I rarely ever lower it the entire way down though (just power outage recovery) and the lead screws don't allow the bed to fall, so I'm able to ensure there is always enough physical movement passed the Z max optical endstop to allow it to drop slightly. Part of your end solution is going to have to figure out something for that.
Seems that when I hit Z home from anywhere other than the bottom of the machine, it's position is screwed up.
This is because of this:
; Axis Limits
M208 X28 Y100 Z-357.54 S1 ; set axis minima
M208 X375 Y365 Z-8.5 S0 ; set axis maximaLogically you should be able to tell there is something off about a minimum values of -357 and a maximum value of -8.5. You can't get to 0 from there.
Your minima Z value should be 0. Or even just slightly less than 0. Like -0.5 just to give you some wiggle room when trying to get your first layer baby stepping right. And your maximum value should be 300 or whatever the maximum travel distance you can safely do on the Z axis is.
M208 X28 Y100 Z-0.5 S1 ; set axis minima M208 X375 Y365 Z350 S0 ; set axis maxima
Then your home z needs some changes.
; Homez.g
G1 H2 Z-350 F3000 ; lift Z relative to current position
G30 ; Do a single probe to home our Z axisSo your first move is going to rapidly move the bed towards the nozzle. Don't do that. Then your using G30 to actually probe the bed. What you actually want to do is first position the probe in X and Y and then use G30 which will deploy the pin and slowly move the bed towards the probe.
G1 X150 Y150 F3000 G30
-
I really strongly recommend you go through the web configurator and generate a new config life set by filling out as much of the information as you can and then looking at that SANE config life and see how it does things and compare it to what your current files are doing. It will really help you get things sorted out.
-
also this should prevent your bed from falling.
https://www.thingiverse.com/thing:3601545. plus you gain true z leveling using multible motors. -
@Phaedrux said in Need Help Core XY:
I really strongly recommend you go through the web configurator and generate a new config life set by filling out as much of the information as you can and then looking at that SANE config life and see how it does things and compare it to what your current files are doing. It will really help you get things sorted out.
That is where that config file came from. The reason it got INSANE was because X and Y were pulling against each other going into the end stops, the Z bed was backwards and I started bringing in new lines of code from the old machine config file.
When I stepped up the bed manually against the nozzle, that negative number is what I got on the Web Interface. When I stepped the bed all the way down, I used my optical end stop LED as a guide as to where bottom was.
YES...those numbers looked INSANE to me too. This is why I posted in the first place. Then the guide I was using was telling me to set the machine at 0 for the BL Touch using G92 Z0. Then it occurred to me that there must be some way to change where the machine thinks 0 is. But I still haven't figured WHEN AND WHERE to do that.
Duet has a way of sending you on a wild goose chase with links, putting in typos just at the right places, AND not mapping out what it is I need to do first, second, third, fourth etc. Then you go ask for help, and the added ignorance of a first timers it makes me look like an idiot. The reason those config files look so INSANE is because I don't want to delete lines until I'm sure they are the lines that need to be either changed or removed. The whole point of this exercise is to get the machine printing and cleaning up the mess later.
So I KNOW that those axis limits look ridiculous. But if I change Z to equal -0.5, the bed is going to slam into something...because that is what it used to be set at and THAT is why I made it what it is. I need to know why the physical number changed to such a negative number.
Let me ask this question: Let's say I just replaced a Duet Wifi made all my connections and updated the firmware.
Turning our attention to the one X motor, one Y motor, and one Z motor. Should I have the connectors all connected with the same colors going to the same pins?? Because at some point during this debacle, I found myself flipping these connectors to get the motors moving in the right direction. That being said, I believe the next logical thing that needed to be done was to put in the correct directions in the config file. But I DID NOT KNOW what the correct directions were/are. On a mchine like this, what is forward and what is backward. The configurator left me guessing right from the start. I think this is the root of the issues I'm having. The directions keep getting switched and now I'm lost down some rabbit hole with no point of reference whatsoever.So there HAS to be some proper sequence of events that need to be spelled out to me....the IDIOT in the equation.
I'm more than willing to start configuring from scratch. I pretty much know all my other connections are right because the probe is working and end stops for X and Y. But as soon as I start, I'm going to be faced with what direction is each motor going...and that's after I go to pick the correct firmware and the latest choice is 2.03 when I have 2.04 on the board...another one of those Duet curve balls aimed at idiots.
-
@jdjeff58 Well unfortunately the configurator can only get you so far. When it comes to how the motors are wired, that depends entirely on how the manufacturer of the motor decided to wire them. So you only have a 50% chance that the motor direction will be right. I suggest the next step you should take is to take a look here and follow the instructions https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter
That'll get the motors moving in the right directions, then we can move on.
-
@Phaedrux said in Need Help Core XY:
@jdjeff58 said in Need Help Core XY:
There are no lead screws...just one motor and 4 belts to push each corner. The bed doesn't slam too bad, it's just how the whole board lights up because of the motors backfeeding into the board. I have learned that can burn out drivers chips.
My condolences.
When the X or Y homes, the Z bed attempts to move down and when it's already on the bottom, it grinds the belt gears because it thinks it has to get out of the way.
Yes, that's part of the homing macro, it tries to lift the nozzle/lower the bed out of the way before moving the X and Y axis. It's unfortunately not able to know it's at the bottom of the printer when it does this. Eventually when conditioning Gcode is implemented this may be able to be detected and mitigated, but for now the only option is to either remove the move out of the way portion, or ensure that it's never truly at the physically bottomed out position.
My own printer is a corexy and I also use a z max endstop and a probe. I rarely ever lower it the entire way down though (just power outage recovery) and the lead screws don't allow the bed to fall, so I'm able to ensure there is always enough physical movement passed the Z max optical endstop to allow it to drop slightly. Part of your end solution is going to have to figure out something for that.
Seems that when I hit Z home from anywhere other than the bottom of the machine, it's position is screwed up.
This is because of this:
; Axis Limits
M208 X28 Y100 Z-357.54 S1 ; set axis minima
M208 X375 Y365 Z-8.5 S0 ; set axis maximaLogically you should be able to tell there is something off about a minimum values of -357 and a maximum value of -8.5. You can't get to 0 from there.
Your minima Z value should be 0. Or even just slightly less than 0. Like -0.5 just to give you some wiggle room when trying to get your first layer baby stepping right. And your maximum value should be 300 or whatever the maximum travel distance you can safely do on the Z axis is.
M208 X28 Y100 Z-0.5 S1 ; set axis minima M208 X375 Y365 Z350 S0 ; set axis maxima
Then your home z needs some changes.
; Homez.g
G1 H2 Z-350 F3000 ; lift Z relative to current position
G30 ; Do a single probe to home our Z axisSo your first move is going to rapidly move the bed towards the nozzle. Don't do that. Then your using G30 to actually probe the bed. What you actually want to do is first position the probe in X and Y and then use G30 which will deploy the pin and slowly move the bed towards the probe.
G1 X150 Y150 F3000 G30
Specifically pointing to your G30 instruction...the reason I added the extra speed line was that G30 takes FOREVER for the bed to lift to the probe from all the way at the bottom.
-
@jdjeff58 As well as my post above, another little tip is to test your Z probe or switch by triggering it by hand, which you can do well before anything crashes. Once you get that working reliably, then you can move on to actually trying to home Z.
-
@deckingman said in Need Help Core XY:
@jdjeff58 As well as my post above, another little tip is to test your Z probe or switch by triggering it by hand, which you can do well before anything crashes. Once you get that working reliably, then you can move on to actually trying to home Z.
Yes....I know that works too....but only when the bed is at the very bottom of the machine. Seems that there is some difference between relative and absolute position. I get the basics of it but you aren't going to be able to watch me fix it so it works from anywhere on the Z axis.
I CAN'T be the only person who's ever walked in here at the "dummy" level.
So here's what I do know, this printer has the X Y point of origin (0, 0) at the front left. Here is what is in the ORIGINAL config file. But as you can see, the text that follows the command doesn't match the Snnn command so again...curve ball thrown at the idiot
M667 S1 ; Enable coreXY mode
M569 P0 S0 ; Drive 0 goes forwards, CoreXY_1
M569 P1 S1 ; Drive 1 goes forwards, CoreXY_2
M569 P2 S1 ; Drive 2 goes forwards, Z MotorThis comes from a file called machine_axisdimension.g
M208 X0 Y0 Z-0.5 S1 ; Set axis minima
M208 X383 Y372 Z374 S0 ; Set axis maximaI used these examples in the configurator to get started and it all started getting tangled up from there.
-
@deckingman said in Need Help Core XY:
@jdjeff58 Well unfortunately the configurator can only get you so far. When it comes to how the motors are wired, that depends entirely on how the manufacturer of the motor decided to wire them. So you only have a 50% chance that the motor direction will be right. I suggest the next step you should take is to take a look here and follow the instructions https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter
That'll get the motors moving in the right directions, then we can move on.
Yes..LOL...that is where all this started and where one of the rabbit holes I went down when I saw this line
"The easiest way to generate these files is using the RepRapFirmware configuration tool ." It's so amazing how links on these guides don't open up a new tab...they just wisk you away to some other website and you don't know where it was that you came from. I don't know...maybe I should just accept I'm not built for this cross eyed nonsense. Even the email notifications on this forum don't work.
-
I quit.
Problem Solved.