Hey everyone,
last night I got my HAQ XY or markforged IDEX printer moving and homing correctly last night.
you can see it moving here: https://fb.watch/38agipCwQx/
Here is my config, once you get your head around the matrix manipulation it was easy to ensure it was moving in the correct direction.
The magic happens on M669 command....
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.2 on Tue Jan 19 2021 18:42:53 GMT+0000 (Greenwich Mean Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet3" ; set printer name
; Drives
M569 P0.0 S0 ; (Y) physical drive 0.0 goes forwards
M569 P0.1 S0 ; (X1) physical drive 0.1 goes forwards
M569 P0.2 S1 ; (X2) physical drive 0.2 goes forwards
M569 P0.3 S1 ; (Z) physical drive 0.3 goes forwards
M569 P0.4 S1 ; (E1) physical drive 0.4 goes forwards
M584 X0.1 U0.2 Y0.0 Z0.3 E0.4 ; set drive mapping
M350 X64 U64 Y64 Z64 E16 I1 ; configure microstepping with interpolation
M669 K1 X1:0:0:0 Y1:-1:0:1 Z0:0:1:0 U0:0:0:1; Matrix mapping for Axis - X:Y:Z:U
M92 X400.00 U400.00 Y400.00 Z1600.00 E420.00 ; set steps per mm
M566 X900.00 U900.00 Y900.00 Z180.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 U6000.00 Y6000.00 Z180.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 U500.00 Y500.00 Z20.00 E250.00 ; set accelerations (mm/s^2)
M906 X1200 U1200 Y1200 Z1200 E800 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X-45 U45 Y0 Z0 S1 ; set axis minima
M208 X220 U310 Y215 Z200 S0 ; set axis maxima
; Endstops
M574 X1 S3 ; configure sensorless endstop for low end on X
M574 Y1 S3 ; configure sensorless endstop for low end on Y
M574 Z1 S3 ; configure sensorless endstop for low end on Z
M574 U2 S3 ; configure sensorless endstop for high end on U
M915 X U Y Z R0 F0 ; Configure motor stall detection
; Z-Probe
M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X15:215 Y15:195 S20 ; define mesh grid
; Heaters
; Fans
M950 F0 C"out8" Q500 ; create fan 0 on pin out8 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out9" Q500 ; create fan 1 on pin out9 and set its frequency
M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off
; Tools
M563 P0 D0 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 are not defined
; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
Homing wise:
here is an example of my homing script (the standard IDEX setup guild is very good)
; homex.g
; called to home the X axis
M400
M913 X50 U50 Y50 ; drop motor current to 70%
M400
G91; relative positioning
;G1 H2 Z10 F12000 ; lift Z relative to current position
G1 H1 X-320.5 F10000 ; move quickly to X axis endstop and stop there (first pass)
G1 H2 X5 F12000 ; go back a few mm
G1 H1 X-320.5 F7000 ; move slowly to X axis endstop once more (second pass)
;G1 H2 Z-10 F6000 ; lower Z again
G90 ; absolute positioning
M400
M913 X100 U100 Y100 ; return current to 100%
M400
Please note I'm doing sensorless homing