Most Complex Independent Head System Possible?
-
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.
-
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?
-
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.
-
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.
-
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 configconst 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
-
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).
-
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 10LCD_DB4 -> Step 11
LCD_E -> Dir 11
LCD_RS -> Enable 11
ENC_A -> Endstop 11 -
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?
-
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.