Haq XY
-
I mean send the commands one by one until something happens that you think isn't right. N is the number of commands you sent.
-
@dc42 Aha ok, got it!
- I moved X to around 300, U to 100 and Y to 400 with the power turned off.
- G1 Z5 F6000 S2 ; Bed moves down as it should with no problem
- G1 S1 Y-550 U-550 X-550 F2500; Everything stopped when X hit it's endstop, it should have been U but it seems like the U and X steppers arent moving at all, only the Y stepper...
-
I just find everything very strange because if I send something like G1 Y400 U10 X350 F2500 everything moves as it should, but as soon as I tries homing or do G29 nothing moves as it should. Specially if I run G29, first U plunges into it's endstop and the X does one probe. Then X and U plunges in to their endstops and X goes to do another probe... and so on...
-
@dc42 Aha ok, got it!
- I moved X to around 300, U to 100 and Y to 400 with the power turned off.
- G1 Z5 F6000 S2 ; Bed moves down as it should with no problem
- G1 S1 Y-550 U-550 X-550 F2500; Everything stopped when X hit it's endstop, it should have been U but it seems like the U and X steppers arent moving at all, only the Y stepper...
If your kinematics are as in the diagram at https://hackaday.io/project/19543-haq-xy/details then it's correct behaviour that only the Y stepper moves when you execute that second G1 command. The resultant motion should be that X, Y and U all move towards the minimum end of their axes. Was that the motion you observed? Or was U moving either not at all or the wrong way?
However, if all axes were moving like that, then U should have reached the endstop first, and that should have stopped the motion. Are you sure that the U endstop is working correctly? It should be connected to the E0 endstop connector.
-
@dc42 Yes the kinematics are like in the diagram, and you are correct only Y should move. But when Y/X/U moves -550 both X and U steppers should be unable to move, right?. Maybe that's what's wrong?
edit: Yes U's endstop is connected to E0's endstop and It works great if I just home U alone.
-
I've just thought of a possible issue. After power up, all motors are off. If you execute that homing move at that point, then only the Y motor will be energised. So the X and U motors have only the detent torque to stop them rotating.
If you command the 3 axes to move slightly different distances in that homing move (e.g. 550, 551, 552 mm) then all 3 motors should be energised.
Alternatively, just before that G1 S1 homing move, add a G1 S2 Y0.02 move. This will force all 3 motors to be energised, as long as the distance (0.02mm in this example) is at least 1 microstep.
-
@dc42 Aha smart, I will try that tonight!
But do you think this will solve the G29 problem as well?When I execute G29 only the X and Y motor should move, but some how U goes - and smashes into the endstop.
-
@dc42 Aha smart, I will try that tonight!
But do you think this will solve the G29 problem as well?When I execute G29 only the X and Y motor should move, but some how U goes - and smashes into the endstop.
When the machine makes a Y move while executing G29, the U motor should turn so as to keep the U axis stationary, just like a regular Y move. If it isn't working correctly, can you post a video to show what happens?
-
@dc42 This is what happends when I run G29: https://www.youtube.com/watch?v=Vcpx7KPqJXw
Nothing like it's supose to do. -
-
Did you home the printer before you ran G29?
-
Does homing work properly, with one of the changes made that I suggested yesterday?
-
After homing, do regular X, Y, U and combined X/Y/U moves work properly?
-
-
- Yes, but I homed it manualy (First Y, then X then U and finaly Z)
- That video was taken before, I haven't had the chance to implement the latest changes you sugested yet.
- Regular X/Y/U and combined X/Y/U has allways worked. For example if I send G30 Y400 X300 U200 F2500 everything moves as it should.
-
It looks to me from the video that your machine is an IDEX with X and U running on the same rail. In which case, your config and homing files are wrong. The U and x axis directions must be the same. So U must home to the high end of the axis. Are you confusing active low/active high endstops with high end/low end? You have this in M574:
M574 U1 S0 ; set active low endstops
M574 X1 Y1 S1 ; Set active high endstopswhereas I expect: M574 X1 Y1 U2 S1
that is, the U endstop is another active-high endstop switch, but it at the max end of the U axis.
You will probably need to reverse the U motor direction in M569 to get ot moving the right way (+U = towards the endstop on the right hand side). Your homing files need to be changed to reverse the direction of U movement throughout.
-
@dc42 I thought that was clear, that it was an IDEX
But thanks! I will try that!Basically I need to switch the U motor so that U homes in +550 instead of -550 right?
And maybe change the config for the endstop for U?I feel like this could be the answer to all my problems
-
@dc42
Ok so now I have this homeall.g
G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 Y-550 U540 X-540 F2500 ; move quickly to Y axis endstops and stop there (first pass)
G1 S1 y-550 F2500 ; Home Y seperate
G1 S1 X-540 U540 F2500 ; Home X and U seperate
G1 Y5 X5 U-5 F2000 ; Go back 5mm on all axis
G1 S1 Y-10 F600 ; slowly home Y
G1 S1 U10 X-10 F600 ; Slowly home X and UG90 ; absolute positioning
G1 X35 Y65 F6000 ; go to first bed probe point and home Z
G30 ; home Z by probing the bed
G91 ; relative positioning
G1 S2 Z5 F100 ; lift Z relative to current position
G90 ; absolute positioningAnd this is the new config.g
; Drives
M584 X0 U6 Y1 Z2:5 E3:4 ; set 3 Z drivers and add one U driver
M669 K0 Y-1:1:0:1 ; set Y to react with X1 and U6
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S1 ; Drive 1 goes forwards
M569 P2 S0 ; Drive 2 goes backwards
M569 P3 S1 ; Drive 3 goes forwards
M569 P4 S1 ; Drive 4 goes forwards
M569 P5 S0 ; Drive 5 goes backwards
M569 P6 S1 ; Drive 6 goes forwardsM350 U16 X16 Y16 Z16 E16:16 I1 ; Configure microstepping with interpolation
M92 U80.00 X80.00 Y240.00 Z1066.67 E420.00:420.00 ; Set steps per mm
M566 U900.00 X900.00 Y900.00 Z12.00 E120.00:120.00 ; Set maximum instantaneous speed changes (mm/min)
M203 U10000.00 X10000.00 Y10000.00 Z500.00 E1200.00:1200.00 ; Set maximum speeds (mm/min)
M201 U800.00 X800.00 Y800.00 Z20.00 E250.00:250.00 ; Set accelerations (mm/s^2)
M906 U1000.00 X1000.00 Y1000.00 Z1000.00 E800.00:800.00 I30 ; Set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 U0 X0 Y0 Z0 S1 ; Set axis minima
M208 U550 X550 Y500 Z750 S0 ; Set axis maxima; Endstops
M574 U2 S0 ; Set active low endstops
M574 X1 Y1 S1 ; Set active high endstops; Z-Probe
M574 Z1 S2 ; Define Z to use Probe. Home to Min.
M558 P9 H5 F500 T4000 ; Set Z probe type/mode 9.
G31 P25 X0 Y-57.3 Z0.0 ; Z probe trigger value, offset in relation to nozzle. And trigger height adjustment
M557 X30:530 Y65:490 S50 ; define mesh grid; BLTouch - Heaters
M307 H3 A-1 C-1 D-1 ; Disable the 2nd Heater to free up PWM channel 1 on the Duex boardI can still move every axis like before without any problems, but the homing still doesen't work.
It's very hard to explain what happends because there's allways something diffrent.
At the beginning everything looks fine but somtimes when Y hits it's endstop everything freezes.
Sometimes I manage to do a full homeall, but the positions of all the axis are not where they suposed to be (X65 Y45 U0 Z0), for example I just did a homeall and positions are as follows: X-95 Y65 Z10 U679.If I home all seperatly and tries to do a G29 same thing happens as my last video.
-
; Endstops
M574 U2 S0 ; Set active low endstops
M574 X1 Y1 S1 ; Set active high endstopsYou are still using an active low endstop on your U axis. Or at least that is what you configured. Did you really wire this endstop as normally open and thereby different from the other two endstops that are wired normally closed? Otherwise you need to change the first line to
M574 U2 S1
- note theS1
compared to theS0
you have.EDIT: If the U endstop actually is wired as normaly closed i.e. active high and you configure it the other way round the firmware will assume the endstop being triggered as soon as it starts homing and think that U is at homing position wherever it is right at that moment.
-
@wilriker If I do M574 U2 S1 the endstop is YES when it's not pushed in and NO when it's pushed in. Y and X endstops are those 3 wire endstops and U is only 2 wire. As I said before, if I home U alone it works great, and that goes for every axis.
Still I can't figure out why G29 behaves as it does...
-
@dc42 It really feels like there's something to do with the M669. It should only activate the U and X togwther when Y moves but sometimes U starts moving when only X is supose to move and vice versa.
I tried again to completley remove the U axis but I still get the same problems with G29, as you can see in my last video.
-
@dc42 I just notice that when I use the G1 S2 commands the printer ignores the M669 axis matrix.
I think this might be the problem to it all, because every G1 S1 works great. -
@dc42 I just notice that when I use the G1 S2 commands the printer ignores the M669 axis matrix.
This is as intended and according to the documentation.
Ignore endstops while moving. Also ignore if axis has not been homed. On Delta and CoreXY, axis letters refer to individual towers.
Of course for your machine it is not individual towers but individual (physical) motors.
-
@wilriker Yes Iv'e red the documentaion. But I'm using a diffrent type of kinematic, that's what all this is about. My M669 makes the Y axis to cooperate with X and U, if it doesen't cooperate both X and U are drawn diagonally.
I think the M669 somehow makes X and U listen to the same command sometimes. G29 for example should only interact with Y and X but my U is also moving..or more like crashing.