@deckingman Just in case you are still around, I’ve tried out my idea, and it seems to work! I can only test it in a simplistic way, but I don’t see why it shouldn’t work scaled up. So…
In my config.g I assign a dummy driver number to X and Y. My first (and only) ‘real’ axis is defined as U and V. So driver assignments are:
M584 X5 Y6 Z2 U0 V1 E3
This is just on a Duet 2 WiFi, so drivers 5 and 6 aren’t there, but need to be defined, otherwise it defaults to driver 0 and 1.
For the kinematics, I told it to move U/V to move with X/Y, for the same X and/or Y input move, with:
M669 X1:1:0:1:1 Y1:-1:0:1:-1 Z0:0:1:0:0 U0:0:0:1:1 V0:0:0:1:-1
This shows the matrix as (I've formatted it to show the gcode input axis as rows, and shows how it affects each axis in the columns):
So a move in X eg G1 X10 causes a move in dummy motors X/Y, and real motors U/V. The X position in DWC changes, but the U position does not. A move in U cause the U/V motors to move and their position is reported in DWC, but not the X or Y position.
I also tested motor current. I set M906 X100, and G1 X10. U and V motors moved correctly, and X10 reported in DWC. I waited for idle hold and did it again, U and V motors moved correctly. I then sent M906 X1000 U100 and tried it again. U motor stalled on moving. So it would seem that the axes keep their individual motor settings this way.
This setup allows for individual ‘Core’ axes homing, with each motor pair being able to have it’s own motor settings. You’d set X/Y as the dummy axis (though there are no motors attached, so you would just set it with G92 X0 Y0), and define the other 3 Core axes pairs as U/V, A/B, C/D, which can be homed individually. From there, normal X and Y movement inputs would cause all three axis pairs to move together. Care would be needed to set accelerations and speeds to settings that all axes are capable of, though.
Ian