Haq XY
-
PS:
-
Please clarify what you have in your M584 command in config.g, because it's not been rendered correctly in the config.g you listed a few posts ago.
-
When you send
G91 G1 S2 Y20
in what directions do the Y, X and U axes move?
-
-
PS:
-
Please clarify what you have in your M584 command in config.g, because it's not been rendered correctly in the config.g you listed a few posts ago.
-
When you send
G91 G1 S2 Y20
in what directions do the Y, X and U axes move?
- M584 X0 U6 Y1 Z2:5 E3:4
- Y moves forward, X moves left (-) and U moves right(+)
-
-
Small aside: putting the contents of e.g.
config.g
in paired blocks of three backticks (```) will activate code-styling in the forum. This should prevent automatic emoji replacements. -
@wilriker Thank you very much!
; Drives M584 X0 U6 Y1 Z2:5 E3:4 ; set 3 Z drivers and add one U driver 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 forwards M669 K0 Y1:-1:0:-1 ; set Y to react with X and U M350 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 U540 X540 Y550 Z750 S0 ; Set axis maxima ; Endstops M574 U2 S0 ; Set active low endstops M574 X1 Y2 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 X40:490 Y70:480 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 board ; Heaters M305 P0 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 0 M143 H0 S120 ; Set temperature limit for heater 0 to 120C M305 P1 T100000 B4138 R4700 ; Set thermistor + ADC parameters for heater 1 M143 H1 S280 ; Set temperature limit for heater 1 to 280C . ; Fans M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 ; tool 0 uses extruder 0 and heater 1 G10 P0 X0 Y0 Z0 R0 S0 ; set tool 0 offsets and temperatures M563 P1 D1 H2 X3 F2 ; tool 1 uses extruder 1 and heater 2 and maps X to U, use fan 2 as the print cooling fan G10 P1 X0 Y0 Z0 R0 S0 ; set tool 0 offsets and temperatures ; Automatic saving after power loss is not enabled ; Custom settings are not configured
-
Y moves forward, X moves left (-) and U moves right(+)
Please elaborate on "Y moves forwards". Do you mean that the carriage moves towards you (in the -Y direction), or away from you (in the +Y direction)?
I think I've just found a bug that may explain some of the homing issues. Also I think your matrix is wrong.
-
@dc42 Huh, it actually move towards me, in the -Y direction!
I tried to push the <Y-10 afterwards and both U and X moved superfast (like 400mm/s) at diffrent direction, around 50mm. X at - and U at +.Why do you think the matrix is wrong?
It works just as it should work when using the toggle buttons (or what they are called at the "Machine Control") -
@haggan90, I think the matrix may be unconventional, but valid. To make it conventional, you could change S1 to S0 in your M569 P1 line (to reverse Y motor direction), and change the M669 command to:
M669 K0 Y-1:1:0:1
Your X and U axes appear to be affected by the Y motor in opposite directions, so I guess you have one of those carriages attached to the front of the its belt and the other one to the back of its belt, or something like that. But it doesn't matter, as long as all the axes move correctly in response to the jog commands.
I've implemented a fix for the bug that I think I found, however I also want to fix it so that if you try to move X or U, it also energises the Y motor to lock it; and if you do a diagonal homing move then it energises the X and U motors to lock them. So I'll implement that tomorrow, test G29, then make a new binary available.
Meanwhile, I think most things should work if you home the axes individually, doing Y before X and U.
-
@dc42 I just reversed the Y motor and when I do G1 X10 F1000 S2 the Y axis moves in the right direction (+10).
But I've noticed a new thing when homing.
This is my homeall.g now:G91 ; relative positioning G1 Z5 F6000 S2 ; lift Z relative to current position G1 S1 Y550 U540 X-540 F2500 ; move quickly to Y axis endstops and stop there (first pass) G1 S1 Y550 F2500 ; Home Y seperate G1 S1 X-540 F2500 ; Home X seperate G1 S1 U540 F2500 ; Home U seperate G1 Y-5 X5 U-5 F2000 ; Go back 5mm on all axis G1 S1 Y550 F600 ; slowly home Y G1 S1 X-100 F600 ; Slowly home X G1 S1 U100 F600 ; Slowly home U G90 ; absolute positioning G1 X300 Y310 F2500 ; 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 positioning
But when it comes to G1 X300 Y310 F2500 the X axis just smashes into it's endstop.
It seems like both U and X looses their position somehow, or that X and U switches...so X becomes U and U becomes X.If I manually home Y first and then try to home X the U axis moves.
If I manually home U and X first, their postion is X0 U550.
If I then home Y manually X position is X1100.3 and U is U-560.Does this make any sense at all?
-
I've found a bug in the optimisation of the kinematics calculations. I have just fixed this and my initial tests seem OK. I'd like to run more tests, but it's late now so I will continue this tomorrow. If you want to try the latest binary, it's at https://www.dropbox.com/s/fyvibzm0zl92hiy/Duet2CombinedFirmware.bin?dl=0.
-
@dc42
I can't wait to try this when I get home from work!
Did you test the G29 in your test rig? -
@dc42
I can't wait to try this when I get home from work!
Did you test the G29 in your test rig?Not yet, but I hope to get the tests completed this afternoon.
The previous firmware got the positions wrong after homing. It was confusing to debug, because your original M669 command results in a matrix whose inverse was identical to itself! So for some time I thought that the matrix inversion code wasn't working.
-
I just did some more tests including G29. It looks to me that it is working properly.
-
@dc42 Great job! It seems to be working now, only updated the firmware and homing + G29 worked straight away!
-
@haggan90, thanks for confirming. I'm sorry it took so long to get it right. They say "premature optimisation is the root of all evil!" and I think there is some truth in that.
-
@dc42 No problem at all, I'm just thankfull for all the help
-
Can Haq XY-kinematics be used with RRF3/6HC mainboard?
I'm planning on changing from 3-axis (x,y,z) Corexy to Haq XY (x,u,y,z) but I need to be sure there is a working firmware for it. I use 6HC mainboard in my machine so I assume I cannot use binary posted several post above. -
Yes, RepRapFirmware supports any kinematics for which the movement of each axis is a linear combination of the movement of the motors.
-
Hi everyone,
Are you able to share how you set this up? I'm currently knew to RepRap Firmware, as I'm a long time user of Marlin but due to the fact Marlin doesn't support this type of configuration. I'm currently looking to move over to RepRap Firmware and purchase a Duet 3 6HC board.
I've actually already built this printer, photos attached. Its still got a little bit of work todo and due to the nature of Duet, Reprap and the open source community I intend to share this project among my other projects (Root CNC).
I would much appreciate any help on configuring this type of kinematics as it looks like I'll be taking a big leap into the world of duet and RepRap firmware and I hope it'll soften the blow.
appreciate the help!
Thanks in advance! Pete from Root CNC
-
@RootCNC Hi,
Sure I can share how to set it up.
But I'm having a hard time understanding how you route your belts to make it a Haq-XY kinematics? -
Ah sorry about that - Please see this photo.
I currently have two motors driving the Y axis - these shall be configured in a series configuration.
then two independent carriages driven from independent steppers.
Does that help?
Thanks