Having quite a lot of trouble with getting parallel moves working - on 5.6.0b4
If I only have a small number of G1's then they run in parallel ok, but as soon as I introduce more than 5 moves then only the last 5 seem to run in parallel.
For example if I send 10 moves to motion system 0, plus 5 to motion system 1, then it seems that the motion system 1 moves will not start until there are only 5 moves left on the motion system 0 queue.
I have tried lots of combinations of P,R and S values M597 values on both queues - but it doesn't seem to make any difference to when the queue 1 start to run in parallel.
It also doesn't seem to be a speed or time related - because changing the speed of the last 5 moves in queue 0 also exhibits the same behaviour.
I guess I could do some complex processing on the two streams to work out their likely move times and then try and present them in tiny little blocks - but that is not the way I was expecting things to work.
What I have like to be able to do is ideally have a whole 'segment' (probably about 1/4 the size of the print bed) sent to motion system 0, in parallel to another 'segment' sent to motion system 1 - which could be 100s of G0/G1/G2/G3s running in parallel.
Have tried to understand the code - but it is quite complicated.
My only discoveries so far is that it looks like the M597 P value defaults to 60 on both queues - not 3 on queue1 as per documentation. Also I can't see anywhere that the S value is processed.
Example very simple job attached.
if move.axes[0].homed == false || move.axes[1].homed == false || move.axes[2].homed == false || move.axes[3].homed == false || move.axes[4].homed == false
G28
T0
G1 Y20 X100 G5000
M400
M596 P0
G1 Y10 F500
G1 X100 F500
G1 Y20 F500
G1 X150 F500
G1 Y30 F500
G1 X160 F500
G1 Y40 F500
G1 X170 F500
G1 Y50 F500 ;First Parallel Move
G1 X180 F500
G1 Y60 F500
G1 X190 F500
G1 Y70 F500
M596 P1
G1 U100 F5000
G1 U200 F5000
M596 P0
G1 Y20 F10000
G1 Y50 F10000
G1 X200 F5000
G1 X300 F5000
M596 P1
G1 U120 F5000
G1 U200 F5000
G1 V300 F5000
M598
M400
M596 P0
I this example Gantry0 does the first 8 moves by itself, with gantry1 only starting to move in parallel to the last 5 moves. If I change the number of moves in the first block then the parallel start moves back or forward - so that only the last 5 moves are done in parallel.
The 2nd two small blocks of moves run in parallel ok.