Most Complex Independent Head System Possible?



  • I'm aware that RRF supports IDEX, and have come across this page and read a good portion of the wiki as well: https://duet3d.com/wiki/Configuring_multiple_independent_X-carriages_on_a_Cartesian_printer

    In this page, it states that RRF can support up to 4 X Carriages. So I'm just trying to imagine what this could look like, and if the developers had any specific use case envisioned when they wrote this.

    For example, could I make a 4 head, dual Y, IDEX printer?

    This would essentially be 2 individual Y axes, one that homes to the front of the machine and one to the rear. Each Y would have the typical dual independent head on it, like on the Sigma.

    So we're looking at:
    1 Z axis/ motor
    2 Y axes/ motors
    Either 2 or 4 unique X axes depending on whether each motor is a unique axis or both left motors are slaved to the same axis, and the same for right, or there are 4 uniquely controlled x axes/ motors there.
    4 Extruders.

    Does the firmware support more than 10 motors? One of these cases adds up to 11, so perhaps Duet + X5 expansion + use some leftover gpio pins to put the Z axis on an external driver.

    Just shooting for some ideas here and wondering what the devs envisioned for "configure up to four X-carriages".

    Cheers,
    Ray



  • I think this is possible with Duet, especial once the CANbus Duet is available.
    https://vimeo.com/157523884


  • administrators

    Currently 10 motor channels are supported on he DuetWifi and DuetEthernet, 5 of those can be on a Duex5 or external drivers. The GPIO on the Duex5 would probably not be fast enough for an 11th motors to run concurrently and keep the step rate high.


  • administrators

    Actually we could support an 11th motor and probably a 12th if we used the CONN_LCD connector pins to connect to the drivers. The CANbus Duet when it comes will make it easier.



  • Thank you for the responses.

    So there is no hard limit to # of motors in firmware then?

    Is the kinematics setup I described what you had in mind with respect to the 4 independent X carriages? Or perhaps you were thinking 4 extruder carts on a single X rail, something else, or nothing specific at all?


  • administrators

    The current firmware builds have a limit of 6 axes and 10 motors, but it would be easy to increase these. There is no facility to map the Y axis in the firmware yet as there is to map the X axis, but that could be added, or worked around by switching the motor mappings when you change gantry, if you only want to print with one gantry at a time.



  • It's possible – very close with my system. And the LCD pins work fine for the 11th driver -- was super easy to add, in theory I suppose if I need a 12th, there are a few pins left over which I could use. I made a little header which plugs into the LCD port and it breaks out and connects to an external 4A driver -- re-assigned to drive the Z axis to use the extra Amps, running 2 nema 23s in series -- using an external driver in this case I could use a boost converter to boost 24v DC to max 40VDC of the TB6600 driver and have 20V DC and full 2.8A per stepper, though so far with my bed being able to lift and hold a 30lb dumbbell without any struggle, I see no reason to increase the voltage as the bed is not expected to move rapidly anyway.


  • administrators

    The latest beta firmware for the series 2 Duets now supports 9 axes. I'm looking to add official support for additional drivers connected to CONN_LCD in the next one. Either 2 drivers with separate enable pins and an endstop/filament sensor input each, or possibly 3 drivers with 2 of them sharing and enable input and no filament sensor or homing switch support.



  • @dc42:

    The latest beta firmware for the series 2 Duets now supports 9 axes. I'm looking to add official support for additional drivers connected to CONN_LCD in the next one. Either 2 drivers with separate enable pins and an endstop/filament sensor input each, or possibly 3 drivers with 2 of them sharing and enable input and no filament sensor or homing switch support.

    Realistically, I see no kinematic at this point which needs more than 9 limit switches (though I can be wrong)
    This is what I added to my config

    const size_t DRIVES = 11; // The number of drives in the machine, including X, Y and Z plus extruder drives
    #define DRIVES_(a,b,c,d,e,f,g,h,i,j,k) { a,b,c,d,e,f,g,h,i,j,k }

    const Pin ENABLE_PINS[DRIVES] = { 78, 41, 42, 49, 57, 87, 88, 89, 90, 31, 85 };
    const Pin STEP_PINS[DRIVES] = { 70, 71, 72, 69, 68, 66, 65, 64, 67, 91, 84 };
    const Pin DIRECTION_PINS[DRIVES] = { 75, 76, 77, 01, 73, 92, 86, 80, 81, 32, 83 };

    ..
    const Pin END_STOP_PINS[DRIVES] = { 46, 02, 93, 74, 48, 200, 203, 202, 201, 213, 82 };

    I assigned pin 82 to the end stop tentatively, but I'm not using it – I'd probably set to NoPin in the future.
    With those pins connected to the TB6600 -- everything worked perfectly
    I am assuming the LCD header is for the old school click wheel LCD -- with panel due, not sure the purpose for it.

    Yakov


  • administrators

    The limit switches on the main board are also going to be dual purpose for filament sensors (trigger a macro/interrupt if the filament becomes stuck or runs out) so for a diamond hotend you could have at 5 of them, + movement axi.

    The LCD header was for an 20x4 character LCD with an encoder as you describe. The functionality has not been added to the firmware as there was limited demand (the touch screen panel due is miles better).


  • administrators

    This is what beta11 will be using (2 extra drives and endstops/filament sensors supported):

    const Pin ENABLE_PINS[DRIVES] = { 78, 41, 42, 49, 57, 87, 88, 89, 90, 31, 82, 60 };
    const Pin STEP_PINS[DRIVES] = { 70, 71, 72, 69, 68, 66, 65, 64, 67, 91, 84, 85 };
    const Pin DIRECTION_PINS[DRIVES] = { 75, 76, 77, 01, 73, 92, 86, 80, 81, 32, 83, 25 };
    const Pin END_STOP_PINS[DRIVES] = { 46, 02, 93, 74, 48, 200, 203, 202, 201, 213, 39, 8 };

    The pins for drive 10 and its endstop input are on one side of the connector, and the pins for drive 11 are on the other side. The corresponding pin names are:

    LCD_DB5 -> Step 10
    LCD_DB6 -> Dir 10
    LCD_DB7 -> Enable 10
    ENC_B -> Endstop 10

    LCD_DB4 -> Step 11
    LCD_E -> Dir 11
    LCD_RS -> Enable 11
    ENC_A -> Endstop 11



  • @dc42:

    Actually we could support an 11th motor and probably a 12th if we used the CONN_LCD connector pins to connect to the drivers. The CANbus Duet when it comes will make it easier.

    ETA on canbus?

    11th = Z as it hardly moves?


  • administrators

    The CAN bus Duet is still some time away. We've done some design work and some of the firmware for it, but no prototypes yet.


Locked
 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.