Dual head machine
-
While the same could be applied to a 3D printer, I am interested in a dual-head CNC machine. That would have six axis, as two groups of XYZ axis. We can name them X1,Y1,Z1 and X2,Y2,Z2.
At any moment, two independent movements could be happening. G-code could be created so there is a decent balance in the movements' duration for X1Y1Z and X2Y2Z2 so that a new movement for any of the two heads becomes available moments before the previous one is over. If one of the two heads has not had a pending move on time, it just sits at the last position until a new movement becomes available in an upcoming g-code line. G-code is generated in a way that prevents any collision between the tools.
I do not think the above behavior can be obtained with RepRapFirmware. However, all the building blocks are there. Using two independent boards would work, so each one controls three axes independently. But in that case, two independent g-code files would be operated and that could raise synchronization problems in case one of the controllers is paused while the other continues. Bear in mind the two independent heads could crash into each other if sent to coordinates close enough.
Anyone can think of a way to handle that with a Duet board?
-
@misan multiple independent motion systems have been added in the 3.5 betas
https://docs.duet3d.com/en/User_manual/RepRapFirmware/Multiple_motion_systems -
@jay_s_uk Wow, you read my mind then I am going to learn all about it. Thanks a lot!