Unsolved Increase maximum number of axii to 30?
-
@Thorpydo You don't have to assign multiple letters to extruders. They are just E0, E1, E2 a.s.o.
The letter "E" is the only drive letter, that allows different config values for steps/mm, motor current, acceleration a.s.o.Regarding the max axes number of 32: my best guess is that it's related to the bus width of the PWM registers or such.
Using more than 32 would mean twice the workload and memory-use I guess. -
@o_lampe Ahh, gotcha. Okay.
My modified understanding:
For extruders:
E1, E2, E3, E4
For motion:
X,Y,Z,U,V,W,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,t
(motion could use other lower case letters or A,B,C,D, but total number of axes cannot exceed3230 based on some internal limit)Thanks for clarifying!
-
@Thorpydo said in Increase maximum number of axii to 30?:
E1, E2, E3, E4
The internal extruder count starts with E0. Most slicers do the same.
@dc42 When a tool has more than one extruder, the only way of controlling them is via mixing ratio, right now?
Is there any change planned?
New nomenclatur could beG1 Xn Yn E0.3:0.0:-0.5:0.8 ; first extruder moves 0.3mm second does nothing, third retracts 0.5mm a.s.o
-
@o_lampe said in Increase maximum number of axii to 30?:
............... @dc42 When a tool has more than one extruder, the only way of controlling them is via mixing ratio, right now?
Is there any change planned?
New nomenclatur could beG1 Xn Yn E0.3:0.0:-0.5:0.8 ; first extruder moves 0.3mm second does nothing, third retracts 0.5mm a.s.o
I'd need to check but I'm 99% sure that the mixing ratio will only be applied if a G1 move contains a single En command. So I'm almost certain that your example of moving multiple extruders does already work.
-
@deckingman That would be cool, but I never stumbled across an FDM-printer with more than one nozzle per tool.
Maybe a burger-bot? To apply ketchup, mostard and special sauce in one move? -
@o_lampe said in Increase maximum number of axii to 30?:
@deckingman That would be cool, but I never stumbled across an FDM-printer with more than one nozzle per tool.
Maybe a burger-bot? To apply ketchup, mostard and special sauce in one move?Not sure I understand. I thought we were talking about tools with multiple extruders but a single nozzle. With such a set up (i.e. multiple inputs but a single output), then a G1 En command will move each extruder by whatever the mixing ratio is set to in order to extrude "n" mm of filament in total. However if the G1 command is in the format En1:En2:En3 then each extruder will move by those n1, n2 and n3 values. (At least I'm 99% sure it does).
-
@lampe
Okay, thanks, I now understand nomenclature should be E0,E1,E2,E3.What is the definition for a tool, as defined by the firmware?
Is the tool considered the XYZ motion system or is the tool considered something that can be attached or interchanged to the motion system?@deckingman
It's great to hear that there shouldn't be further issues here; that moving multiple extruders already does work.For this application, I don't want any mixing ratio applied.
I believe I want 4 tools, each with its own nozzle."... if the G1 command is in the format En1:En2:En3 then each extruder will move by those n1, n2 and n3 values ..."
Great, this is the desired output.
As I understand, Gcode output should be G1 Xn Yn En0:En1:En2:En3 -
@Thorpydo If you want to have all extruders work at the same time, you have to define one tool with 4 heaters, 4 drivers for extruders, all axis' drivers, all hotend- and partcooling-fans.
But there is of course no slicer right now able to control all the axes at once. You'd have to write your own script for that. -
@deckingman said in Increase maximum number of axii to 30?:
I thought we were talking about tools with multiple extruders but a single nozzle.
Until now, we don't know what the thread starter is planning to do. But I doubt, he needs a motion system with 25? axes to move only one nozzle?
-
@o_lampe
I might not have made it clear before:
All motion systems and all extruders moving at the same time. Multiple extruders, moving independently, extruding at the same time. Four heaters, four extruders, four filaments being driven, etc. (all at the same time)
I understand there is currently no slicer available to be able to control what I am asking.
Writing the slicer is part of my scope of work. I am writing the slicer and that's why I need to understand explicitly the proper way to communicate with RRF and command with Gcode, all four extruders, and all motion axes, simultaneously.It's still not clear to me if format should be:
G1 Xn Yn En0:En1:En2:En3
Or:
G1 Xn Yn En0:n1:n2:n3
(where n0, n1, n2, n3 represent feeding material in mm/s)Based on your input, it sounds like the later?
G1 Xn Yn En0:n1:n2:n3 -
@Thorpydo See https://docs.duet3d.com/en/User_manual/Reference/Gcodes#examples
Example there is:G1 E10:10:5:0:0 F300 ; with a tool that has 5 extruder drives, extrude 10mm on drive 0, 10mm on drive 1, 5mm on drive 2 and 0mm on drive 3 and 4.
Ian
-
@droftarts
Perfect, that jives with above. Thank you! -
@Thorpydo I'm glad this concept already exists. I'm not at all an expert in the latest gcode implementations...
Just for clarity, the line should look like:G1 Xn Yn Un Vn Wn {...etc. all axes receive their data at once followed by} En0:n1:n2:n3
Let's hope the line length doesn't exceed the planner buffer,
but @dc42 will surely find a way to help out.
//edit there's M595 command whichs allows setting the look ahead buffer for both queues. I thought, it was only for the second queue -
@o_lampe
Thanks!
I might have to clarify how to use the M595/look ahead buffer when I'm ready for that.Currently, the slicer outputs extrusion in absolute mode but I would like to change to relative extrusion mode. It looks like that will be no problem and I can use M83 in start Gcode to do so.
Here's a single line gcode output; I believe this matches what has been discussed and aligned on in this thread:
G1 X556.90665 Y559.4645 Z559.4645 U556.90665 V564.15183 W564.15183 a556.90665 b559.4645 c559.4645 d556.90665 e564.15183 f564.15183 g556.90665 h559.4645 i559.4645 j556.90665 k564.15183 l564.15183 m111.49454 n113.41718 o113.41718 p111.49454 q111.36289 r111.36289 t-14886 E0:2712.35717:1611.15904:25136.476 F250
Thank you all for guiding me here!
-
@Thorpydo The lower letters will still need a single quote to mark them as axis.
I'm also not sure if the motion planner can handle coordinates with 5 digits behind the colon? Maybe it ignores the least significant digits? -
@dc42 said in Increase maximum number of axii to 30?:
When a 6HC is used as an expansion board, a single CAN message contains the movement information for all 6 drivers. So only 5 CAN messages would be needed per move even if all 29 motors move at once.
After reviewing the hardware configuration documentation and CAN bus interconnects, I was thinking that it would be easier to use x1 mainboard 6HC and 8x expansion board 3HC's because each expansion board comes with 2x RJ11 connectors and termination resistor is straight forward.
However, after re-reviewing this thread and DC42's comment above, it sounds like it I should optimize from a bus loading perspective and keep the number of boards to a minimum, thus 5x mainboard 6HC's, using both CANFD-0 and CANFD-1 connectors, and bypass the termination resistor on the middle 3 mainboards; first and last mainboards using CANFD-1 connector.
I see in the revision notes for mainboard 6HC v1.02a:
"improved the CAN-FD termination resistor bypass solder jumper design to make it easier to use the 6HC as an expansion board."Where do I find documentation or detail on bypassing termination resistor for the mainboard 6HC v1.02a?
Does this all sound appropriate? -
-
@DIY-O-Sphere
Perfect, that's really helpful.It looks like my understanding of the CAN connection was incorrect (two separate buses vs two connections for one bus).
I've created a diagram to make sure I understand how to correctly wire.https://imgur.com/a/CbCiCU1
Is it correct?Thanks for the help here!
-
@Thorpydo
Hmmm, the RJ11 connector is made to accept one wire per pin, and it gets inserted instead of crimped.
How best to handle the junction here? -