My setup:
1 6HC - @ 3.6.0-rc.2 (was 3.5.4)
3 3HC - all @ 3.6.0-rc.2 (was 3.5.4)
System has 13 stepper axes across the 4 boards (X, Y, Z, A, B, C, D, W, a, b, d, e, f)
System is set to CNC mode M453. This is a non-printer application
RPi 4, 4GB in SBC mode
I'm still having trouble getting multiple motion system to work again. Everything is fine in 3.5.4. Ever since 3.6.x, it has stopped working.
It seems the Duet will not release multiple motion axes after moves are complete. The DWC always reports out:
Error: in file macro line 18: G1: Drive A is already used by a different motion system
when trying to move an axis in a new motion system that it wasn't previously attached to.
I've got a test board set up with 2 axes and I'm running a very simple motion test.
config.g
; General preferences
M453 ; set CNC mode
M550 P"A2000-xx" ; set name of controller
G90 ; set absolute coordinates
G4 P1000 ; 1s delay for CAN comms
; Drives
; Motors are wired to Duet A-A, B-B - motor directions are flipped here
M569 P0.0 S0 ; physical drive 0.0 goes forward
M569 P0.2 S0 ; physical drive 0.1 goes forward
; Set motion system queue parameters
M595 P100 R50 Q0 ; set motion system queue 0 to 100 steps
M595 P100 R50 Q1 ; set motion system queue 1 to 100 steps
; Set drive mapping
M584 X0.0 R0 ; set linear drive mapping for gantry
M584 A0.2 R0 ; set linear drive mapping for gantry
; Set microstepping interpolation
M350 X16 A16 I1 ; configure microstepping with interpolation for linear motors
; Set axes scale values
M92 X250 A250 ; set steps per mm
; Set max speed change values
M566 X400.00 A400.00 ; set maximum instantaneous speed changes (mm/min)
; Set max speeds
M203 X10000.00 A10000.00 ; set maximum speeds (mm/min)
; Set accelerations
M201 X3000.00 A3000.00 ; set accelerations (mm/s^2)
; Set motor currents and idle factor
M906 X2000 A2000 I5 ; set motor currents (mA) and motor idle factor in per cent
; Axis Limits - minimum
M208 X-200 A-200 S1 ; set linear axis minimum
; Axis Limits - maximum
M208 X1000 A1000 S0 ; set linear axis maximum
Test program:
M400
M598
M596 P1
G90 G1 A100 F2000
M596 P0
G90 G1 X200 F3000
M400
M598
M596 P1
G90 G1 A0 F2000
M596 P0
G90 G1 X0 F3000
M400
M598
M596 P0
G90 G1 X100 A100 F2000
When I run the program, X goes to 100mm and A goes to 200mm, both starting pretty much at the same time but stopping at different times because of the feed rates.
X and A then return to 0mm, again, starting pretty much simultaneously, but stopping at different times because of the feed rates. All expected behavior.
When the system tries to add axis A back to motion system 0 on line 20, I get:

and the program stops so axis X nor axis A move to 100mm.
I didn't see any change in the documentation for coding multiple motion systems, so let me know if I am using the M595, M596, and M598 incorrectly.
I am able to run any desired test pretty quickly on my test board so let me know if there is anything else I can do to help debug the issue.