Adding an additional extruder
5 extruders, 5 pre-extruders, 5 axis and two steppers to rotate and lock the rotating turret are impressive but in our configuration there are still two stepper motor drivers free and I would like to use them to control an custom build extruder ;)
However I am stuck right at the first gcode I want to change. Currently the axis and extruders of our system are defined like this:
M584 X0 Y1 Z2 U3 V8 E6:6:6:6:6:9 A4; Set driver mapping, E drive is multiplexed.
When I try to add one more axis or extruder, so for example:
M584 X0 Y1 Z2 U3 V8 E6:6:6:6:6:9:5 A4;Set driver mapping, E drive is multiplexed.
I get the following error (after enabling debugging and connecting via a serial terminal):
"Executing config.g...Error: Gcodes: Attempt to read a GCode unsigned array that is too long: M584 X0 Y1 Z2 U3 V8 E6:6:6:6:6:9:5 A4"
I'm not sure if this is the slightly customized diabase firmware or that I just missed something in the documentation of the Duet. Do you guys maybe know what I'm doing wrong?
Martijn
-
Hi Martijn,
This is a known problem that we have so far avoided, but now need to address. The total defined drives are limited to 12. And that is baked pretty deep into the firmware, so is unlikely to change.
There are a couple reasonable solutions:
- Don't define the A axis - this is fine for most applications, and perhaps even rotary printing, where we actually redefine the rotary axis to be Y. It would take a bit of testing. But 5-axes would be impossible going this route. Also you would not be able to take advantage of your other unused motor output.
- Don't define each extruder separately. That is, "M584 X0 Y1 Z2 U3 V8 E6:9:5 A4". This will work just fine, but it will NOT allow you to apply independent extrusion multipliers from the web interface. That is - there will be ONE slider to set the extrusion multiplier, and that multiplier will apply to all the drives at the turret (E9 and E5 would still be separate sliders). It is still possible to have independent control by adding to the toolchange files, but that is not at all user-friendly.
Option 2 seems better, as it also allows several more drives to be defined. (Although there aren't additional drivers on the controller board beyond the 10 you can see, there is an expansion header with additional motor signals and endstops, so there is room to expand further.) Also, the latest firmware adds the ability to use different directories on the SD card for different machine configurations. We have yet to develop this capability, but it would be an easy way to switch back and forth between defining each extruder independently (E6:6:6:6:6:9) and giving you control of the extrusion factor for each, or increasing drive definition slots at the expense of this independent extrusion control.
-
Hi Austin,
Thank you, I indeed went for option 2, I wasn't using the feature to adjust the extrusion multiplier during a print anyway. This worked just fine, the only other things I had to change to make this work were some of the other commands directly underneath the M584 and the M563 commands in the tcreate files.
The rest of the process turned out to be very straightforward. I added the new extruder to the relevant commands in the config file and added an additional tcreate8.g, which I called from the config.g file. An tpost8.g and tpre8.g were already present on our system. This was nice because I didn't have to search for a new turret location. For any future extruders, am I right that the spare positions are located approximately 30 degrees below or 42 above the current tool locations? So:
position tool U delta 10 Touch probe 0 30 1 extruder 1 30 42.3 6 new position? 72.3 30 2 extruder 2 102.3 42 7 new position? 144.3 30 3 extruder 3 174.3 42.1 8 confirmed position 216.4 29.9 4 extruder 4 246.3 42 9 new position? 288.3 30 5 extruder 5 318.3 41.7 Martijn
-
Hi Martijn,
How many extruders do you have now?
You are correct about the U-position spacing between extruder positions. It may take a little bit of tweaking (+/- 0.3) of each position to get it to lock consistently. (You can see whether it is locked by removing the front plastic shrouding from the cover and watching the latch position.) In 90% of cases, it will follow whole-integer values exactly.
Please sign in to leave a comment.
Comments
4 comments