# Haq XY

• Try this: M669 K0 Y1:-1

I used the diagram at https://hackaday.io/project/19543-haq-xy/details. So the X motor should just affect X, and the Y motor should affect X and Y.

• @dc42 Woho! It worked!
The homing is a bit weird thoug
How should I proceed if I want to add another X axis?

• What is weird about the homing? You will need to home like a CoreXY, see the wiki page on configuring RRF for CoreXY.

To add another axis, create a U axis using M584, then use the M669 XYZU parameters to define the matrix you need for the motion. The X, Y, Z etc. parameters of M669 define the rows of the matrix. The rows are the axes, the columns are the motor movements needed to move those axes. Sending M669 without parameters will print the current matrix.

At a guess, if the mechanics of U are similar to X, you would need:

``````M669 K0 Y1:-1:0:-1
``````

As we started with Cartesian kinematics (K0), any rows you don't specify will just have a 1.0 in the diagonal element.

• @dc42 Well, first of all I think both the Y motor and all 3 Z motors are going the wrong way, but thats more my fault I guess but if I just change the positon in the Y/X home files I could get them to home correctly, but its very buggy and somethines everything just freaks out and goes superfast.

So do I need to set the config file to run corexy before I add the M669?

Aha I see!
But, if I run just one of the extruder heads in Y/X, will the second stay at its home position or will it just run diagonally along?

• @dc42

Holy crap, I think I got it to work
Btw, if I use M564 S0 H0 and after that tried to home axis, may that interfear with the homing?

M669 K0 Y1:1:0:1 ; set Y to react with X1 and U6

M584 Z2:5 U6 ; set 3 Z drivers and U6 (second extruder head)
M569 P0 S1 ; Drive 0 goes forwards
M569 P1 S0 ; Drive 1 goes backwards
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 S0 ; Drive 6 goes backwards

• I'm glad you got it working.

M564 H0 S0 will not affect the G1 S1 and G1 S2 commands in homing files. It only affects regular G0 and G1 moves.

BTW, are you the author of the post at https://hackaday.io/project/19543-haq-xy/details ?

• @dc42 hmm ok.. there's definalty somethubg wrong with my homing then. As I said before, sometimes it works perfect and other times, for example, the Y axis just plunge into the endstop and agter I cant move it.

No the author is Haqnmaq, iv'e talked to him about this project and he was exited as well

I think this could be a really neet solution for a idex printer.

• If you home just X or just Y, does that work reliably?

• @dc42 Sometimes. But let's say I manage to home Y, if I then move Y and then tried to home it again it will most likley not work as planned.

• @haggan90 said in Haq XY:

@dc42 Sometimes. But let's say I manage to home Y, if I then move Y and then tried to home it again it will most likley not work as planned.

Do you mean that it sometimes ignores the triggering of the Y endstop switch? Are you certain that you have the X and Y endstop switches connected to the right connectors?

• @dc42 Yes, but I dont have the endstops for Z and U connected yet so I can't do the homeall.g.

This is the homey.g

G91 ; relative positioning
G1 Z5 F6000 S2 ; lift Z relative to current position
G1 S1 Y555 F1800 ; move quickly to Y axis endstop and stop there (first pass)
G1 Y-10 F1000 ; go back a few mm
G1 S1 Y555 F360 ; move slowly to Y axis endstop once more (second pass)
G1 Z-5 F6000 S2 ; lower Z again
G90 ; absolute positioning

• So i've added the endstop to my U axis, and added a homeu.g folder (not sure if I supose to?)
But I can't home U... I have U motor and endstop connected to the duex2.

• Yes you do need a homeu.g file. The U endstop switch must be connected to the E0 endstop input.

• @dc42 Ok!
But when I try to home U nothing happends, only Z goes down 5mm and nothing more.

• @haggan90 Got this fixed now, now homing of U works
But everything is still very buggy.. is there something wrong with my homey.g ?

• "everything is still very buggy" doesn't give me much to go on. Please provide more detail of the fault(s). A video may help. Remember, I don't have a machine with those kinematics to test this on, the best I can do is to configure a Cartesian machine in the same way as yours and try to work out whether the motor movements are correct.

• @dc42 yeah I know, I'm sorry.
I will try and do some troubleshooting myself first and if I don't manage to fix it I will post a video!

All in all the movements seems to work great!

One thing, do I need to home every axis the same way? In my case now, the Y homes in +555 and X/U homes in -555? Should I maybe move the endstop for Y to the other side?

• @haggan90 said in Haq XY:

One thing, do I need to home every axis the same way? In my case now, the Y homes in +555 and X/U homes in -555? Should I maybe move the endstop for Y to the other side?

No, you should be able to use those endstop locations just as they are.

I think there may be a problem with the current firmware if you try to home several axes concurrently. What should happen is that if you home two or more of X, Y and U concurrently, the homing move should stop when the first endstop switch is hit. Then you need to finish by homing the axes individually. But I suspect that if you home X and Y together, if the X switch is triggered first then the homing move will not stop.

• @dc42 Usually the homing of U and X works good, but when i home Y it just stops when it hits the endstop and then I need to restart the board. I havent tried to home any axes at the same time, only individually.

Simetimes when I try to home X the U axis also moves and plunges in to the endstop...

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.