The past weeks (2021/02) I worked on various printhead designs, to summarize and provide an overview by mounting them on Ashtar K:
Also improved the display controller to simulate Marlin firmware and list heads and tool selection (MSE), coordinates (IDEX) or rotation angles (RTN & PAX).
So far all options are available for Ashtar C, D and M as well, but currently (2021/02) are just in draft and mostly untested.
RTN and PAX promise printable support-free overhangs, yet no public available slicing software exists to really take advantage of those two designs, as new algorithms of volume decomposition, sub-volume sequencing, collision detection are required and mostly debated in scientific papers as 2021/02 and only few companies, e.g. HAGE and VSHAPER, implemented new 5-axis 3D printing procedures, and DotXControl advertises a 5 Axis Slicer.
Status: early draft with rotary Z 4 printheads and rotary Y 2 printheads
4 printheads on rotary Z MSE, tool 0 selected
4 printheads on rotary Z MSE, tool 0 selected (top view)
2 printheads in rotary Y MSE, tool 0 selected
2 printheads in rotary Y MSE, tool 0 selected (top view)
MSE Y2 Mockup, testing motion & precision
Updates:
2021/08/01: MSE Z4 printed & mounted
2021/02/09: matured Rotary Y MSE dual with a servo
2021/01/31: added more drafts and formulated Pros and Cons for Rotary Z MSE, post published, with part cooler
2021/01/29: starting with collecting existing solutions and consider my options, Rotary Y (max 2 printheads) and Rotary Z (max. 4 printheads) design started
Introduction
Since I dedicated some time for the IDEX upgrade on all the 4 Ashtar Series: K, C, M and D, I realized one of the main advantages of IDEX is to have the non-active printhead aside and not moving over existing prints and certainly not oozing over it.
There is another way to achieve such, by having multiple printheads mounted on the X carriage and mechanically switch them so only one nozzle actually touches the Z plane to print, all other printheads aside and sealing their nozzle with anti-oozing measure like an underlying metal sheet.
As I like to have my own solution in OpenSCAD source, so let’s dive into the design process:
Multiple Switching Extrusions (MSE)
Design Goals
2, 3 perhaps 4 heads switching, only one printhead/nozzle at Z printing head
share one heatsink fan
share one part cooler setup and fan
simple adjustable calibration of X, Y, Z repeatability
ideally interchangable between
E3D V6: proven reliability
Micro Swiss / CR 10 clone: single screw to set Z distance
inactive printheads non-ooze with shield
keep it simple, don’t overengineer, keep construction simple and light
Drafts
Rotary Y-Wise
Rotating around the Y axis, suitable for 2 printheads only, as 3 or more printheads use up too much in X space:
40mm fan
30mm fan
30mm fan each
132mm distance, 20°
2 printheads using SG90 servo, 132mm/20°, tool 0
2 printheads using SG90 servo, 132mm/20°, tool 1
3 printheads, 100mm distance, 30°
2 printheads using SG90 servo
2 printheads, 100mm/30°, tool 0
2 printheads, 100mm/30°, tool 1
Simple design, shared fan is difficult, as I like to go with Micro Swiss as it’s very compact, I likely end up with dedicated heatsink fans as all printheads in use will be heating and the heatsinks require fanned air. The ooze-shields are easy to attach.
132mm / 20 degrees
120mm / 24 degrees
110mm / 27 degrees
100mm / 35 degrees
132mm / 20°: tall (not good), narrow X space (good)
120mm / 24°: still ok
110mm / 27°: extending X space usage
100mm / 35°: low but extending too much in X
So let’s combine most narrow with a common fan approach, for a compact dual switching printhead/extrusion sacrificing as little X space as possible:
using SG90 servo to switch extruders (only for dual extruder setup), tool 0
using SG90 servo to switch extruders (only for dual extruder setup), tool 1
including part cooler in front
The actual axis of rotation can be moved lower by becoming an arc or swing, which will make the construction more complex, but likely more reliable as the servo cannot be trusted to keep position exact enough – so a spring to keep the swing in either two position, or constant force to push to a left or right limit in dual extrusion setup – for now I use a small SG90 servo to push toward the mechanical stoppers, either left or right hence only usable in dual setup, and using a 1mm wire to connect the swing with the servo.
increased distance of base to anchor, to support silicon sock on hotend
single bearing on anchor
dual bearings on base & anchor
Rotary Y 3 using too much space
The Rotary Y approach definitely is only suitable for dual extrusion setup, as anything else, as seen on this comparison, uses up too much X space for my consideration.
Addendum: DerM4209 did a design with 6 extruders on full 360° rotary, and as the setup shows, he has plenty X-axis space to dedicate to such.
Let’s explore another idea . . .
Rotary Z-Wise
This design is heavier with NEMA17 motor, and with the focus of more than 2 printheads but 3, or 4 printheads, inspired by the Rotating Tilted Nozzle:
4 printheads on 9 sided polygon, 20° tilted
4 printheads, tool 0 (front view)
4 printheads, tool 0 (top view)
4 printheads, tool 3 (front view)
4 printheads, tool 3 (top view)
4 printheads, tool 0, full mount (side view)
4 printheads, tool 0, full mount (side view)
4 printheads, tool 0, full mount (bottom view)
4 printheads with ooze shields (metal sheets)
4 printheads with ooze shields (metal sheets), tool 2
4 printheads with ooze shields (metal sheets), tool 3
4 printheads with ooze shields (metal sheets) (bottom view)
4 printheads with ooze shields & part cooler
part cooler (close up)
4 printheads full assembly
moving mount beneath NEMA 17 to save space for rotating Bowden tubes
moving mount beneath NEMA 17 to save space for rotating Bowden tubes
removing excessive material of the rotor
adding support with new space given
simplifying fan mount
simple fan mount
I first went for 9 sided regular polygon, and then switch to 360°/9 angle and only make a connector where the heatsink/printhead is mounted to.
I could tilt the other way and regain some of the Y offset, but the Bowden tube and cable of the printheads would clash with the mount – the same problem arise when I would position the full circle with printheads, it looks nice but doesn’t work with Bowden tubes:
tilted forward, clashes with mount (won’t work)
tilting 10 degrees and position 6 printheads full circle (won’t work)
6 printheads won’t work as Bowden tubes will clash with mount
So for the moment I stay with 360°/9 angle and explore further on the details with 4 printheads/extrusions.
Printable Parts
MSE Y2
Not yet.
MSE Z4
mse_rotz_mount
mse_setup-type=rotaryz,heads_n=4
mse_partcooler_mount
cr10_hotend_fan_mount_simple (4x)
mse_rotz_fannose
Assembly
Each hotend is mounted with 2x M3x20 mounting heatsink, and
2x M3x16 mounting the 30mm fan on top.
4x M3 x 8mm used to mount NEMA 17 on top of mse_rtz_mount, and
4x M3x8 to mount it to the X carriage.
The part cooler mount is attached with M3x10 with a M3 nut and can be adjusted.
MSE Z4 experimental mount on X-carriage
Brief tool changing test:
and guiding the PTFE tubes with a guide:
Ashtar K with Multiple Switching Extrusions (MSE)
Rotary Z with 4 printheads mounted on Ashtar K to see how much space X and Y is sacrificed or otherwise fit with existing design – so far it looks good:
4 printheads, tool 0
4 printheads, tool 3
4 printheads, tool 0 (top view)
4 printheads, tool 3 (top view)
4 printheads, tool 0
4 printheads, tool 0 (side view)
4 printheads with part cooler
with controller/display, tool 0
with controler/display, tool 3
4 printheads & 4 extruders
This design is more flexible and extendable, the ooze shields are mounted on the “nose” underneath using metal sheets.
And the Rotary Y with 2 printheads (MSEY2) mounted looks good so far, sacrificing little X space as well:
2 printheads on MSEY2, tool 0
2 printheads & 2 extruders
Issues to Resolve
Rotary Y with Servo
mature draft to something actually promising, done with SG90 servo
strength to hold angle, likely use servo to constantly push toward a mechanical limit, dual mode: left/right limit, tripple mode some kind of spring the servo has to overcome
alternatively using magnets (e.g. 6mm/0.8mm) on anchor and stoppers: pushing anchor without servo or motor, but pushing carriage to X home left and X home right to switch between two states
reposition reliability, some kind of spring mechanism, and servo is only used to “jump” to new position
mount to X carriage, servo clashes with belt mount, resolved
press-fit 625 ZZ bearings based switch axis
sufficiently narrow play/margins for printing? tests needed
dual bearings still wobbles in Y-axis (when mounted)
single bearing doesn’t wobble, more friction when switching
Rotary Z with NEMA 17
early draft, untested
rotation tested: 40° per tool, e.g. G1 A0, G1 A40 in RepRapFirmware (Duet3D boards)
testing holding torque when printing (nozzle running over overextruded parts)
mount heatsink fans, done
rotary angle calibration at start, position/tool #0 (0 .. heads_n-1) => tool number (e.g. T2)
either mechanical homing of the rotation to position/tool #0 or
end stop switch to home rotation position
ooze shields. mounting for metal sheets prepared & illustrated
heat creep toward the “nose”?
do ooze shields add to cross-contaminating when changing tools
paying attention to details how to bend metal sheets
mount to X carriage, done
part cooler, will be tricky as, resolved
above mount won’t work due Bowden tubes cross through
mount via “nose” where the non-ooze metal sheets are mounted, done
Marlin firmware tool changing Gcode support with NEMA17 rotating?
rings around NEMA 17, in particular around the edges
combine tubes & wires above the motor
Considerations
Rotary Y 2
Pros
simple mechanical setup incl. ooze shields
fast switching of extruders
Cons
servo SG90-based: only suitable for dual setup (not extendable to 3 extruders)
Rotary Z 4
Pros
fast switching of extruders
heavier than a servo, but more reliable holding position
simple design, as this design mounts on all of Ashtar Series (K, C, M & D)
2, 3 or 4 printheads/extruders mountable, more flexible than IDEX which only has 2 printheads and requires more modifications
Cons
additional moving weight on X axis (NEMA17)
loss of build volume in X space ~5-10mm left and right
optional loss of build volume in Y space, it can be compensated if printer is used with MSE option only, otherwise some Y space sacrificed as well ~20-30mm
ooze shields may contaminate material to rotating nozzles, needs to be tested
all nozzles are heated even when not currently selected but will be used during the print
some people still print a purge block to purge material from the nozzle newly selected – fast switching material should be ok, long wait between switches may require purging of material – tests needed
Requirements
Rotary Y
1x SG90 servo
2x 625ZZ bearings
1x M5x25 screw
1x M5 nut
50mm x 1mm wire, bend as hinge
Rotary Z
1x rotating motor (NEMA17 20/25/39 mm) with motor driver
per additional printhead (given there is a single printhead already installed)
printhead (heatsink, heatbreak, heatblock, heat cartridge, nozzle, push fit adapter for bowden)
heating driver on the mainboard
thermistor input on the mainboard
So for
2 printheads: 2x additional NEMA17 (1x rotating motor + 1x additional extruder), 2x 40W = 80W power
3 printheads: 3x additional NEMA17 (1x rotating motor + 2x additional extruders), 3x 40W = 120W power
4 printheads: 4x additional NEMA17 (1x rotating motor + 3x additional extruders), 4x 40W = 160W power
Obviously you need a mainboard with sufficient heating drivers or (1 digital output and MOSFETs per hotend) and thermistor inputs (ADC), the motor drivers can be added to 2 digital outputs (STEP & DIR) and external motor driver. More detailed informotation will be added later.
Gallery
Very early draft to see how MSE4 looks mounted on Ashtar K, C, D and M:
in theory no purge block, but if ooze shields are shared among switching extrusions (more than 2 extrusions) there may be cross-contamination between colors/materials
the printheads individually are proven to be reliable
Hints:
single heatblock = same print temperature
dual heatblock = different print temperatures possible