Maximum possible number of servos and endstops?
-
Hello all!
We are working on a v2 of our larger printer and the question came up whether we could use Min/Max switches for each axis. With that in mind, we would like to use 3 servos on our Z axis as well as 2 servos for the X-axis and a single screw for the Y-axis. That leaves an additional servo for the extruder. If we use the breakout board, we can drive all 7 servos without any issues.
My question is thus: is it possible to use the breakout board to drive 7 servos while also using more than the 5 end stops allocated on the Duet 2 Ethernet / Wifi board?
Thanks!
-
What will you use the extra endstop switches for? If it's to do an emergency stop if an axis goes out if bounds, then you can connect the extra endstops in series (assuming NC switches), and they only need one endstop connector between them.
What are you intending to use the servos for? If they are for doing true bed levelling and axis squaring, you will probably find it easier to use multiple stepper motors instead, and the firmware already supports doing it that way.
You can tap into the expansion connector to get additional PWM outputs for servos and additional endstop inputs.
-
Hi @dc42
When designing the original printer, I placed an end stop at home position of the X and Y axis and an inductive probe at the Z-axis. This works well in concept, however I'd like to add extra limit switches to the bottom of the Z-travel to keep the machine from hitting the frame -- it's an issue we are currently experiencing. If we lower the Z-bed to remove a print and then re-home the machine, the default behavior is to lower the print bed and then to home X/Y before homing the machine. This is where we experience failures and where I would like to install a few z-min end stops, one for each lead screw.
With regards to your second question: we are using servos to drive all of our axes. The machine was designed with the understanding that we may change out extruders or controllers in the future. Clearpath servos were chosen for their ability to substitute for stepper drivers and for the extra overhead power available.
We use the built-in bed leveling in the firmware now with two servos. I'd like to add a third servo in our next design to allow for true bed leveling.
If we use the break-out board to drive our servos, how do we tap into the expansion connector? I suppose that was the intent of my original question -- how to use the break out board to drive servos, but to also wire up a few extra limit switches (in case we need more than 5?)
Thanks for the wonderful support forum!
-
There is not a clean way (that I know of) to patch into the 50-pin cable. You could just cut the relevant wires out of the cable and run them elsewhere, but it would be pretty hackish.
Thankfully you do have another option if you only need two extra inputs. There are two endstop inputs broken out the CONN_LCD connector (and two extra step pulse outputs as well).
So you could just tap into those and remap them with M574 (RRF 2.03 and later iirc). I think these can be used as axis endstops at the moment, but not mapped to external triggers, etc.
From what I have read, in upcoming versions of RRF (v3+) there will be a lot more reconfiguration possible to remap pin functions.
-
@kzamani said in Maximum possible number of servos and endstops?:
Hi @dc42
When designing the original printer, I placed an end stop at home position of the X and Y axis and an inductive probe at the Z-axis. This works well in concept, however I'd like to add extra limit switches to the bottom of the Z-travel to keep the machine from hitting the frame -- it's an issue we are currently experiencing. If we lower the Z-bed to remove a print and then re-home the machine, the default behavior is to lower the print bed and then to home X/Y before homing the machine. This is where we experience failures and where I would like to install a few z-min end stops, one for each lead screw.
With regards to your second question: we are using servos to drive all of our axes. The machine was designed with the understanding that we may change out extruders or controllers in the future. Clearpath servos were chosen for their ability to substitute for stepper drivers and for the extra overhead power available.
We use the built-in bed leveling in the firmware now with two servos. I'd like to add a third servo in our next design to allow for true bed leveling.
If we use the break-out board to drive our servos, how do we tap into the expansion connector? I suppose that was the intent of my original question -- how to use the break out board to drive servos, but to also wire up a few extra limit switches (in case we need more than 5?)
I see, you mean step-servo drives, not RC servos as I assumed.
You can drive an additional 2 external stepper drivers from the CONN_LCD connector. You will need to use level shifters to boost the signals to near 5V and provide a little more current than the MCU can, just like the breakout board does for the other 5.
I suggest you wire all your Z_MAX endstop switches in series, then they can be connected to the zstop input. But if you do want to use separate inputs, then there are 2 more endstop inputs available on CONN_LCD. If you need more than 7 endstop inputs total, tap into the expansion bus. To do that, make up a 50-way ribbon cable with 3 IDC connectors on it instead of 2.
-
Thanks everyone! I'll look into these solutions.