Direct drive dual extruder (single-nozzle and single-drive) by BigSteve 3d model
Warning. This content is not moderated and could be offensive.
m4
3dmdb logo
Thingiverse
Direct drive dual extruder (single-nozzle and single-drive) by BigSteve

Direct drive dual extruder (single-nozzle and single-drive) by BigSteve

by Thingiverse
Last crawled date: 3 years ago
This is a model of a direct drive dual extruder with a single nozzle and a single stepper motor. A switching between extruders (filaments) is done by a servo mechanism. To drive this mechanism, I used a HS-225 mini servo that is as strong as bigger and heavier HS-422 servo. The model is designed for DyzEND-X hotend by Dyze Design.
See video of the first print: https://youtu.be/STZg94co8CI
Advantages:
No filament oozing from the second nozzle.
No nozzle misalignment.
When printing from one filament on almost empty spool, it is possible to schedule switch to the new spool in the middle of the print.
Disadvantages:
Wasted filament by every filament change.
Can print only with temperature compatible filaments.
Needs some retraction calibration before the first use.
I just rarely use the dual printing with this extruder because DyzEND-X hotend has a big melt-zone so there is a lot of wasted filament by switching. It is worth to print just bigger parts with large layer height to minimize the wasted filament ratio. This design would benefit from a hotend with a small melt-zone.
Instructions
Print all the printed parts listed below and clean them by a modelers knife, if needed. The holes for a filament can be also cleaned with a 3mm drill. Cut two PTFE tube (OD 3mm) to fit the length of idler hole and slip it to the hole. Do this for both idlers. The rest of PTFE tube cut in half under 77° angle and the two obtained pieces insert into the body part. The cut faces of the tubes should touch each other. Then take the modelers knife and do final adjustments on the PTFE tubes.
Enlarge the inner dimeter of the PTFE tube (OD 4mm) to 3mm by the drills and cut it into two small tubes of 11mm length. Then insert each tube into one idler.
The rest of the extruder assembly is easy. Just follow the pictures, photos, and the lists of materials.
Screws and nuts
4 M3 x 10mm hex socket head cap screw (servo holding screws)
2 M3 x 5mm hex socket head cap screw (upper stepper holding screws)
4 M3 x 20mm hex socket head cap screw (2 for idler shafts and 2 for hotend)
2 M4 x 10-11mm cross (flat) head screw (ball bearing holding screws)
6 M3 nuts (2 for hotend and 4 for servo)
6 M3 washers (4 for servo and 2 for idler shafts)
2 M4 x 10mm screw (to mount the the body to the holder)
2 M4 screw of proper length (to mount the extruder to a x-carrier)
4 M4 nuts
Mechanical parts
1 623ZZ ball bearing
2 624ZZ ball bearings
1 MK8 filament drive gear
1 traction spring / paper clip spring / peg spring / some rubber bands
Electrical parts
1 mini servo HS-225 or similar with accessories (arms and mounting parts)
1 NEMA17 stepper motor
1 5V DC-DC converter
Other parts
PTFE tube OD 4mm, ID 2mm, length cca 30mm (for idler shafts)
PTFE tube OD 3mm, ID 2mm, length cca 120mm (filament guide)
Printed parts
1 body
2 idler (1 normal + 1 mirrored)
2 washer (1 normal + 1 mirrored)
1 bracket
1 holder
Hotends
1 DyzeEND-X hotend by Dyze Design
Tools used
Modelers knife.
Dremel tool or other drilling machine.
Drills of 2.5mm and 3mm diameter.
Firmware
I used Marlin firmware (Release Candidate -- Marlin 1.1.0-RC7 - 31 July 2016) with the new SINGLENOZZLE feature. I modified this firmware and hardcoded the extruder switching.
I attached the modified Marlin firmware. I changed following files.
Configuration.h - I configured my printer and edited some code:
// For Cyclops or any "multi-extruder" that shares a single nozzle.
#define SINGLENOZZLE
#if ENABLED(SINGLENOZZLE)
#define SINGLESWITCH_EXTRUDER_SERVO_NR 0
#define SINGLESWITCH_EXTRUDER_SERVO_DELAY 700
#define SINGLESWITCH_EXTRUDER_SERVO_ANGLES { 169, 11 } // Angles for E0, E1
#endif
The definition DISABLE_INACTIVE_EXTRUDER has to be false.
Configuration_adv.h - this was changed just because of my high-temperature thermistor at DyzeEND-X hotend. I recommend replacing this file with the original one from the github release.
pins_ULTIMAKER.h - I changed the board configuration. I set both extruder steppers to one driver and I defined the servo pin. You have to change your board configuration file like this.
Marlin_main.cpp - I added/modified some code:
#if ENABLED(SINGLENOZZLE)
inline void move_extruder_servo(uint8_t e) {
const int angles[2] = SINGLESWITCH_EXTRUDER_SERVO_ANGLES;
MOVE_SERVO(SINGLESWITCH_EXTRUDER_SERVO_NR, angles[e]);
delay(SINGLESWITCH_EXTRUDER_SERVO_DELAY);
servo[SINGLESWITCH_EXTRUDER_SERVO_NR].detach();
}
#endif
and this:
#if ENABLED(SINGLENOZZLE)
stepper.synchronize();
move_extruder_servo(tmp_extruder);
#endif
Toolchange scripts
Use this script at your own risk! High max. feedrade value and fast extrusion (instead of retraction) might damage your extruder.
G-code script for switch from filament 1 to filament 2:
M203 E400 ;set maximum feedrate to 400 mm/min
G4 S1 ; wait 1 s
G92 E0 ; reset extruder position (set it to 0)
G1 E-4 F120 ; retract 4mm
G1 E-2.5 F60 ; go slowly back to 2.5mm (push slowly back 1.5mm)
G1 E-39.5 F24000 ; retract fast to 39.5mm
T1 ; switch to the second filament
G1 E0 F1800 ; feed in the second filament
M203 Exxx ;set maximum feedrate back to your default value xxx mm/min
Please note that the max. feedrate defined in the firmware is in mm/s while the M203 command sets the max. feedrate in mm/min! To get the default max. feedrate value for M203 command you have to divide the value from firmware by 60.
To switch from filament 2 to filament 1 just replace the command T1 with T0.

Tags