Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Dondolo v1.01b

by Gianni3D, published

Dondolo v1.01b by Gianni3D Feb 9, 2015



Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

48820Views 7800Downloads Found in 3D Printer Extruders


Dual rocking extruder for Prusa i3.
Direct extrusion with a single stepper motor.
Basculating heads prevent inactive nozzle to interfere with the part already printed avoiding contamination.
Anti-oozing system.
Reduced mass allow direct extrusion.

In order to make the project more "readable" I tried to simplify and put in some order.
i) Eliminated the 3mm version (too hard to make it working!)
ii) Added 0.5mm clearance from heatsink to backplate, so modified Idlers, Idlers_pivot and Pendulum.
iii) Modified Idlers to avoid mutual interference and Servo_Cam interference
iv) Modified the fan duct (print fan) for a more efficient cooling
v) Added "mouse ears" to Pendulum and BackPlate to improove adesion and make prints easier ( if you don't want them you can do a "Divide ojects" and remove).

Dual Dondolo on CoreGF: automatic head change

Published the "DONDOLO v1 Assembly Guide rev_10.pdf" to help during the assembly procedure.
Published the "PTFE Cutting Tool" to help cutting the PTFE tube in the proper way.

Added a driving wheel spacer fo use with E3D MK8 type driving wheel. Insert the driving wheel in reverted position, ( the grub screw outside ).

Firmware configuration tool available at: http://marlinkimbra.it/
thanks to MagoKimbra (Alberto Cotronei).
No more need to manually adapt the fw, you can configure and dowload an advanced version of Marlin supporting Dondolo (among other interesting multicolor extruders like "4 Way Flux Capacitor":

BOM in the instructions.

Note: the Cam _Pendulum is the part you have to "tune" depending on your filament diameter and drive gear effective diameter. Here is for 3mm filament and a 7mm drive gear (made hobbing a 8mm round bar).

Is ready the version for E3D v6 1.75mm filament hotends:
Tested Mk8 E3D drive gear,... very good drive gear, I strongly reccomend it.
Also added a "front bar" to increase the stiffness of assembly.

Thank you.


First test:
Anti-oozing test:

Change Log:
Ver. 1.02
Changed the hotend dual fan duct from 25mm to 30mm (4 CFM)

Ver. 1.01r
updated Cam Pendulum (Cam_Pendulum_101r.stl) the older was'nt enough to keep the clearance of the inactive filament from drive gear (for 3mm filament).

Ver. 1.01
minor changes on :
pendulum to increase stiffness and
idlers and pendulum cam to increase pression from spring to filament and stability on bistable system.


Print preferably in PETG, more elastic and durable material than ABS and easier to print.
Layer 0.2, T 240°C, bed 50°C, speed 45-60mm/s.
Follow "DONDOLO v1 Assembly Guide rev_10.pdf".

Soon a wiring diagram.

DONDOLO v1.0b bill of materials.
Screws and nuts

2 3.5mm washer
22 M3 nuts
4 M3 x 8mm countersunk socket screw (Motor)
2 M3 x 6mm socket head cap screw (Anti-oozing thin plates)
3 M3 x 8mm socket head cap screw (1 Servo Cam + 2 Prints Fan Duct Support )
6 M3 x 10mm socket head cap screw (3 Double Clamp + 2 Idler Pivot + 1 BackPlate)
4 M3 x 12mm socket head cap screw (Servo)
6 M3 x 16mm socket head cap screw (2 Cam Pend. + 2 Backplate + 2 Prints Fan)
4 M3 x 25mm socket head cap screw (2 Front Bar + 2 Prints Fan)
2 M3 x 15mm Spacer (X Carriage - Prints Fan Duct Support)

Mechanical parts

1 E3D MK8 Filament drive gear
1 F 695ZZ ball bearing
2 604ZZ ball bearings
1 6mm x 52mm x 1mm traction spring

Electrical parts

1 standard servo (metal gears MG995)
1 NEMA 17 stepper motor 42BYGHW208 (or 17HS13-0404S) 0,4A 30ohm 37mH
1 5v DC-DC converter
1 40mm fan

Plastic printed parts (0,6EU cm^3)

1 Backplate
1 Pendulum
1 Pendulum Cam
1 Idler sx
1 Idler dx
1 Idler pivot sx
1 Idler pivot dx
1 Double hotend clamp
1 Double hotend fan duct
1 Servo Cam
1 Front bar
1 Prusa i3 X Carriage modified
1 Prints Fan Duct
1 Prints Fan Duct Support
1 Driving Wheel Spacer

Custom parts

1 anti-oozing sx 0.5mm thin plate
1 anti-oozing dx 0.5mm thin plate
2 M4 x 7mm threaded rod


2 E3D v6 (or E3D Lite) Full Kit

the Cam _Pendulum is the part you have to "tune" depending on your filament diameter and drive gear effective diameter. Th recomended choice is the 1.75mm version with E3D Lite Hotends and E3D drive gear.

More from 3D Printer Extruders

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

i can not finde it M4 x 7mm threaded rod

Where i can buy it ?

Cutting an M4 screw to the desired length?....:-)


"What unholy wizardry is this!.."

Umm... Does this work with smoothieware?

EDIT: I have two semi-decent extruders and was hoping to use this with a bowden setup. What do i need?

Does someone made this for a prusa i3 mk2s?
I made one but there is not enough space between frame and servo...spacers for x axis are needed!

I had the same problem. I've designed a kit, including the spacer you need.
Take a look at: https://www.thingiverse.com/thing:2535888

Dondolo Geeetech I3 Pro B Kit
by Skytter

Take a look at: https://www.thingiverse.com/thing:1017953. Just as an example, spacers are provided for XZ frame.
You can design and print the ones needed for your Prusa i3 xxxx version.


Prusa i3 Hephestos Dondolo Upgrade Kit

For everyone that need it here is my design for solve this https://www.thingiverse.com/thing:2556656

Prusa i3 MK2S z-axis supports for Dondolo

Thank you, and compliments again about this project

Hi Gianni,
Could you send me Solid Works data for little rework?
I use different extruders and I don't want use a long time to replace it.
Your variant means "stationary" mounting. But my idea is "Quick extruder replace" possibility.
Thank You in advance.

Hi Gianni,

I would like to congratulate you for this amazing project.

I would like to ask you something:
1) Do you confirm these stl are suitable for e3d full metal version?
2) Cam setup manual is still missing. Are there some details to care of when mounting the cam?
3) Is there a reason to use threaded rods with 604ZZ? Why not smooth rods?

Thank you

I took a little inspiration from this and made one that doesn't require any electronics or motors :). I really would love to see someone else make it. It works flawlessly for me.

Simple Zero Ooze Dual Extruder - CRUX - no electronics, motors, or changed firmware

I have installed my Dondolo successful in my AM8. Nice work !!!!!!!!!!
Only one problem I have left. I can´nt change the Z-OFFSET of the 2nd hotend in Marlin 1.1.1
I can read out the offset but it makes no sense

So I like to change the Pendulum to mak it adjustable. Can you share the CAD File, it makes easier to work?

Try this fw:
http://www.marlinkimbra.it/. Using the online configurator and setting 2 as the number of extruders you will ha ve the choice for "Dondolo".
With this fw you surely have the possibility of stting the Z offset for both.


Hi Gianni,

wich version of Marlinkimbra you´ve allready tested?
My test looked good first but every time I change my Tool (HotEnd) the machine is going 1mm down
If I print a job I have the same issue. So I getting a wrong height after switching extruder.

Hi Mike
I have the same pb :

MarlinKimbra code does not work on my printer (pb in MK_Main.ccp line 11243)

Here are the log of destination[Z_AXIS] during extruder changes when i send T1 and T0

09:08:47.944 : Echo:Origine XY Premier
09:08:47.944 : No move on toolchange
09:08:47.944 : z_diff: -0.80
09:08:47.944 : z_raise: 0.30
09:08:47.944 : z_back: 1.10
09:08:47.944 : destination[Z_AXIS] before raise: 100.00
09:08:47.944 : current_position[Z_AXIS] before raise: 100.00
09:08:48.116 : destination[Z_AXIS] after raise: 100.30
09:08:48.116 : current_position[Z_AXIS] after raise: 100.00
09:08:49.925 : destination[Z_AXIS] before back: 100.30
09:08:49.925 : current_position[Z_AXIS] before back: 100.00
09:08:50.628 : destination[Z_AXIS] after back: 98.90
09:08:50.644 : current_position[Z_AXIS] after back: 100.00
09:08:50.644 : Echo:Active Driver: 0
09:08:50.644 : Echo:Active Extruder: 1
09:13:42.907 : Echo:Origine XY Premier
09:13:42.907 : No move on toolchange
09:13:42.907 : z_diff: 0.80
09:13:42.907 : z_raise: 1.10
09:13:42.907 : z_back: 0.30
09:13:42.907 : destination[Z_AXIS] before raise: 100.00
09:13:42.907 : current_position[Z_AXIS] before raise: 100.00
09:13:43.470 : destination[Z_AXIS] after raise: 101.10
09:13:43.470 : current_position[Z_AXIS] after raise: 100.00
09:13:45.289 : destination[Z_AXIS] before back: 101.10
09:13:45.289 : current_position[Z_AXIS] before back: 100.00
09:13:46.007 : destination[Z_AXIS] after back: 99.70
09:13:46.023 : current_position[Z_AXIS] after back: 100.00

Original Code

    #if HAS(DONDOLO)
      // <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
      float z_diff = hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder],
            z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0),
            z_back  = 0.3 - (z_diff < 0.0 ? z_diff : 0.0);

      // Always raise by some amount (destination copied from current_position earlier)
      destination[Z_AXIS] += z_raise;
      planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder, active_driver);


      // Move back down
      destination[Z_AXIS] = current_position[Z_AXIS] - z_back;
      planner.buffer_line_kinematic(destination, planner.max_feedrate_mm_s[Z_AXIS], active_extruder, active_driver);

I change it to :

  // Move back down
  destination[Z_AXIS] = destination[Z_AXIS] - z_back;

It's ok with this change, it works when i send T0 or T1( when i don't hit the Z End Stop, for the firsts layers it's not good with my offset of 0.8 because i hit the end stop ... but it's an other problem)

But ... i don't not why (i suppose something like relative or absolute Z moving) ...when i try to print the extruder 1 is not at the right height

I try to find and other solution ... but if you find something ... please share it !

I have installed Version 4.3.2 Stable and it is working
Was Easy to use the configurator.

I can start calibrating :)

Thanks Gianni,

i´ll try it. I hope I understand the setting in the config

Comments deleted.

There is a "anti-oozing_printable_template.PDF" scale 1:1 (the file you are talking about is just the preview) and the original "anti-oozing_plate.sldprt" (SolidWorks part).
This project is not for you.


Hi Gianni,

i'm building myself a XY-Core 3D Printer and I a want to use your extruder - wich, by the way, is totally awesome !!!
I have to redesign the X-Carrige in order to fit my Printer - can you please give me the files as STEP?
My E-Mail is [email protected]

Thak you in advance for your answer!

Can you please email me the solidworks files if it does not bother. [email protected]


Hi Gianni
What a great design, I have been think of something like this for a while and you have a working design congratulations.
Will you be publishing the corexy tool changer files at any time? That looks very impressive.

Also, I have a D-Bot and would like to adapt the mounting of the Dondolo for this type of machine, I notice in this thread it looks like you have made the solidworks files available to a few people. Is it possible they can be made available to me please, I would upload the adaptions once complete.

This is an awesome design, thank you for sharing!

A request please, I make use of Z-Probe for bed leveling, any possibility to add a mount point for an Inductive sensor mount to the design?

Another question. Where I must set extruder offset for printing?

I have a question. In marlin_main.cpp i find a code :

else if(code_seen('T'))
tmp_extruder = code_value();
if(tmp_extruder >= EXTRUDERS) {

I should change it to :

else if(code_seen('T'))
tmp_extruder = code_value();

//Added for DONDOLO dual extruder
if(tmp_extruder == 0) {
if(tmp_extruder == 1) {

if(tmp_extruder >= EXTRUDERS) {


Could it be possible to get the assembly step file of the latest version?

Unbelievably AWESOME! Great work!

Would you be able to design a neat way to attach inductive probe?
Those things are so pupular nowadays, it is hard to believe that this great design does not have one.

Thank you


I would like to ask what are the exact dimensions of this extruder? And one more thing...This motor are strong enough? These are only 0.26Nm torque. What is the highest print speed with these motors?

And the most important thing... May could you upload something editable file from this. Maybe step file?

Thanks for your answer!

Hi, I like your extruder design. I would like to make one but I am not sure about flexible filaments... Please, does the extruder print also with a flexible flament? Isn't there a problem with the longer path from driving gear to the hotend?

http://www.thingiverse.com/thing:856101 , this was printed in ninjaflex. I tested the extruder both with E3D v6 and E3D Lite hotends without any problem. If you precisely cut the bowden tube as explained in the assembly guide there will be no gap in the filament path before the driving gear so no way to go out for the filament.
The ability of printing flexible filaments was one of the reason to make a DIRECT extruder.


i4 Logo

Very nice. Thank you.

So I've installed the extruders, and did all electronics and firmware adjusment! All looks good!

But I have 2 problems:
1.I have about 0.5 mm z offset between the 2 extruders

  1. The servo seems no to go all the way left and right. I changed the angles value in marlin from 10—120 to 10—180 and now it looks better, but not perfect...

Any ideas???


"I have about 0.5 mm z offset between the 2 extruders"

Simply adjust the second extruder "Z OFFSET" in the firmware accordingly to the actual offset.

"The servo seems no to go all the way left and right. I changed the angles value in marlin from 10—120 to 10—180 and now it looks better, but not perfect..."

Is the servo cam correctly centered? To correctly install the servo cam you have to set the servo angle at the center of the full range (65°) then install the cam pointing towards the stepper motor axys. Finally you can fine adjust the 2 positions angles (10°-120°).


Found the Z OFFSET and it is working. (better to add a delay after z movement, before servo actuation).
Can you please upload a video of the servo cam changing the 2 positions?
Playing with the dondolo and cam, it seems to span about 180+ degrees, not only 110...

Just saw this in your video.
So it doesn't need to go all the way!

Thanks again for the great design!!
By the way - where can i find such a spring? Couldn't find it on the Internet...


I found it in a briko market in Italy (BRICOMAN). If you can't find a steel spring try a rubber band. ... :-)


Just saw this in your video.
So it doesn't need to go all the way!

Thanks again for the great design!!
By the way - where can i find such a spring? Couldn't find it on the Internet...


the price could be right depending on how many I can have made...

Im going to make aluminum servo arms for this would any one else like one?

sure if the price is right

Hi! When I power on printer servo move to some angle and them move to angle from marlin(SERVO_ENDSTOP_ANGLES to {0,0 0,0, 80,100)). Do you have same problem?

I would like to ask you, where should I connect print fan to ramps 1.4? I would like to regulate the fan speed.

great job
in the video , what core xy design is this?

Thanks, all the printers in the videos are my own designs.


will you publish it ?

Hello Gianni,

Great design!, I though about something similar a while ago but it remained just as an idea, I like your cam system to ensure a consistent positioning of the hot ends, my idea didn't imply moving them, it was just a servo system type of clutch to grip one filament or the other.
I see that you discontinued the 3mm version but is there any possibility I could get those files?, all my filament is 3mm and I have a lot!, of course I would go ahead at my own risk!

Again, great design.


Hi Irobri,
altough every print in the examples gallery was printed with the (original) 3mm version this is more tricky than the 1.75mm.
You need a stepper driver with a current-decay adjustable and\or higher microstepping capabilities (G3D, RAPS128) otherwise you will see some artefacts mainly caused by the lower step rate. The lower step rate also increase the heating of the motor so you have to fine adjust the max current to avoid overheating and, on the other side, to have enough torque (more than in the case of 1.75mm filament) to drive the filament.
Anyway I added a compressed file (3mm_version_parts.rar). ...:-)



Hi Gianni,

Thanks, I already downloaded the file. Regarding you concerns, when you tried the 3mm version which I understand it was working ok, what drivers were you using?, I currently have 8825, and lots of people are using direct drive with them and 3mm filament so in theory there shouldn't be any problems or am I missing some thing?

Thanks again for the reply


I used G3D driver (only for the extruder motor). I have not tested the 8825 with 3mm filament in Dondolo to say they don't work, I tested the 8825 with 1.75mm, 24v power supply, motor 17HS16-0284S and I can say that RAPS128 is better.
What I wanted to explain is that the 3mm version is harder to make it working.
The artfacts I speaking of are such that are visible only in GOOD CLEAN prints (the most of people never saw them!). My motors never heat over 40°C even if they print continuosly for 27 hours (and 200 hours in 9 days http://www.thingiverse.com/make:214269), many people often put a fan on the back of the extruder stepper (I call this "being stupid").
This project has more than 300 "I like it" ( not many indeed ) but only 7 "I made it", in my opinion it means that is not so easy as it appear. It's not for beginners.



Medieval Castle

tnx 4 the gr8 design!!! I've printed all parts and assembled the mechanical assembly.
but, electrincs is not my strongest side and arduino in quine new for me...

  1. You wrote "the Servo Cam (PP10) will be installed in the Servo Setup Procedure." - where is the servo setup procedure...?
  2. how should I connect the 5v convertor to the servo...? where should I connect it to the board (Arduino Mega + RAMPS)

I still havent got to the firmware yet....... I'm thrilled to see it working!
thanks in advance!


  1. the "Servo Setup Procedure" is still a "coming soon" topic!... :-D
    I' ll try to put it down in the next days.
  2. the DC-DC input is the main power supply of your board (typically 12V).



Thanks for the answes.
I'm sorry i'm really new to this arduino thing... I'm using arduino Mega + Ramps 1.4.

  1. I don't have "Marlin_main.cpp" in my firmware files... tried to search for the line “else if(code_seen('T'))” but couldn't find it in no other file...
  2. In Pins.h, under "#if MOTHERBOARD == 33" (which fit Arduino Mega, right?) I have Servos pins definition. I want to add it, but how can I know the pin numbers? I found that RAMPS1.4 servos pins numbers are D11, D6, D5, D4.

Except this, I think I changed all other codes...
Thanks in advance,

Is it right that there is no 3 mm support with this project at the moment?

It is right. Tough the 3mm version was the first I made the 1.75mm is far more reliable and esier to setup. Also the 1.75mm filaments are gaining the market becoming cheaper and more available the the 3mm. Too many versions, too many pieces and variants made the project harder to understand for the people and harder to maintain for me. So I decided to simplify as much as I could.


Did you know that the (Idler_3mm_sx_dx) is the same part as (Idler_175mm_sx_dx)? If so why....mine wouldn't drive the1.75 filament because both the idlers would touch together in the middle by the holes ..I had to grind both of them to get it to barely work...Im going to change them and move the hole some for the filament...

Ciao,quale scheda madre monti?

Megatronics v3 e RADDS con Arduino Due.
In attesa della Ultratronics.



I was wondering if you would be willing to collaborate or provide the CAD files for this so I can do a remix that incorporates a nema 14 and a 5:1 gear set?

Do you mean a NEMA 14 with planetary gear box?


Gianni, sei un grande! ;) grazie!
Proverò a stamparlo... voglio due colori sulla mia piccola prusa!

Leggi bene tutte le istruzioni. Stampalo in PETG, usa i componenti indicati. Non è un progetto facile ma seguendo le indicazioni funziona ... e bene!... se hai una Hephestos c'è anche l' upgrade kit completo.



On a delta printer, would be cool to mount two extruders, rotated as your, then change the delta movement to compensate every nozzle rotation.

EDIT: Nevermind... was a stupid idea.

Too heavy for a delta.
There are more elegant solutions to implement a multi-nozzle system in a delta printer.


to do what i meant, the delta printer must have 1 only arm instead 2 so can be possible to control the rotation of the nozzle with just the 3 motors. Can be done such thing? You are the engineer :)

I understand what you mean!...:-) ... Well, the configuration you suggest is simply unstable.
You can do what you have in mind in a different way but not so simple as you suggest.


Can you send me the Solidworks files (.part) on my mail plz

Hi, is it just me or we are missing PP14 from the assembly guide?

page 5 PP14 in picture and part list
page 22 "Print Cooler Assembly" PP14, PP13 and EP4
page 25 "Connecting the Print Cooler to the X-Carriage"

Did I forget something?

Please let me know.



nope, i ment that the part is not uploaded in here

Ok, I understand!
The "Print Cooler" it is not intended as belonging to the "core" of Dondolo, (the X-Carriage itself is on the "borderline"!).
Among the Dondolo files the PP4 is named "Extruder_Chain_Support_v2.stl" and is slightly different.
The PP4 part referred in the "Assembly Guide" (and the X_Carriage) is uploaded in the project:
http://www.thingiverse.com/thing:1017953 (Prusa i3 Hephestos Dondolo Upgrade Kit.

I hope this will help you.



Prusa i3 Hephestos Dondolo Upgrade Kit

sorry i didn't get back to you, yep that was what i was looking for, thanks .)

Gran bel lavoro Gianni. Oggi guardavo una Stratasys e mi sei venuto in mente. Un saluto!


:-D.... non ho mai fatto mistero di essermi studiato anche gli estrusori della Stratasys. Lo sforzo progettuale è stato piuttosto orientato verso la possibilità di realizzarlo interamente in plastica e con pochi pezzi pur conservando una buona precisione.
Questo anche per dimostrare che con le FDM si realizzano anche oggetti funzionali e non solo prototipi. Se poi scegli il materiale giusto (io uso il PETG) durano quanto e più del metallo. ... :-)
Questo per consentire a tutti di realizzarlo e stampare in dual meglio delle varie ShareBot, Ultimaker, MakerBot etc. etc. ... anche Zortrax volendo! ... :-D

Comunque grazie!... ;-)

Avevo letto che pezzi funzionali non conviene farli in PETG per via della sua elasticita o sbaglio ?
Credevo che era Meglio ABS o Nylon per tali realizzazioni CMQ Grazie progetto :D

Ormai si leggono più cazzate che cose serie. A scrivere non ci vuole molto. Io faccio così: ondivido la mia esperienza e la supporto con i fatti senza aver la presunzione o la volontà di convincere nessuno. A ciascuno la sua valutazione. L' ABS non lo considero nemmeno per questo tipo di impiego sia come caratteristiche meccaniche che come facilità di stampa lo ritengo inferiore al PETG, l' elasticità è una caratteristica positiva, a mio vedere, ed una maggiore rigidità può essere ottenuta aumentando lo spessore dei perimetri e dell' infill. Il nylon è meccanicamente adeguato ma MOOOLTO più difficile da stampare e con stabilità termica dimensionale nettamente inferiore il che si traduce in minore precisione e tolleranze di realizzazione più grandi con conseguente aumento delle criticità nella realizzazione del sistema.
Spero di essere stato sufficientemente chiaro e di una qualche utilità. .... :-D


Come darti torto, da quando ho scoperto il Petg non ne faccio a meno! Si stampa come il PLA, non è tossico come l'ABS ed è resistente come il Nylon :)

I have arduino mega 2560 and Ramps 1,4. Please let me know how and where to connect servo. Some pictures would be great.

Servo signal S (usually yellow) on RAMPS pin D11.
12V and GND from power supply to Vin+ and Vin- of an external DC-DC 5v switching converter.
Vout+ and Vout- (5v , GND) of the external DC-DC switching converter to 5v and GND of servo input (usually RED and BROWN).

That's all!




at first i want to say, that the extruder is really great - but i have a little problem with the servo.

I use a ramps board, and connect on every servo port a servo from another producer. The Extruder motor changes the rotation direction but no servo rotates. I don't know where's my mistake.

Has anyone an idea?

Thanks a lot

I have non information about your fw.

Did you enable the servo support?

define NUM_SERVOS 1

Did you have a power RC servo (like the servo used in the Dondolo)?... in this case you need an external DC-DC to supply the servo (the internal DC-DC have no enough current driving capabilities, only 500mA or less).

Let me know!...:-)


Hello Gianni,

thanks a lot for your fast reply.

Yesterday evening i've found my mistake. I've forgotton to plug a jumper for the power of the Servo.

Nice weekend


Nice w.e. to you too!..:-)

Comments deleted.

what do you mean for "to print from the other side"?... upside down?... mirrored?
Mail me:
[email protected]


Hi, It tried to use http://marlinkimbra.it/ to configure the Dondolo extruder, but for me it looks as the code contains no dondolo lines at all. I just could find some lines in the configuration...
Found it... As firmware version you have a least to use th 4.2.x.dev.
Now it is fine

Ok!!.... let me know about your progres!...:-)

The software itself is working fine now. Now I´m trying to tune the parameters to get it working. I have the issue that I would like to use the same filament as on my other printer and this one is 2.85mm. And currently the filament is slipping quite a lot..
It would be great if you could share the most important parameters as:
Steps per unit / Feedrate / Retraction Feedrate / Max Acceleration / etc....
For me it is also still not crystal clear which parts I should now use for the 3mm filament. Down in the comment it is written that it might be better to use an Mk7 with the Cam_Pendulum_1392_175mm?

altough the 3mm version was the first I made (and almost all the prints in the pics gallery of this project are printed with the 3mm version!) it is also harder to make it working. The 3mm filament need a stronger traction spring (shorter spring) and a higher torque. Being the first version, every part that is not explicitly marked "175" is intended for 3mm version. The driving wheel is MK8 for both, GOOD QUALITY Mk8, with sharp theeth!... I found E3D are very good altough more expensive.
The parameters you are asking for are machine depending. If you make the "Hephestos Upgrade Kit" I can give you the fw already configured and the profiles for Cura and Simplify3D for others you have to do it yourself. When you have a system "almost" working please contact me and I help you to make it, at least, "good" working. ... :-)


I would say it is almost working :-). I´ve checked your design to fix the springs and noticed that there are two slots, so I´ve put now two springs. Bothe are very tight. I´m hoping that the piece will not break, but till now it worked fine. If it will break I will have simply to reenforce the spring holder...
I´m not 100% sure with my Mk8 drive, so I ordered two new onces, hopping that they are maybe a little bit sharper.
I believe I still have an issue with the retraction. I have the impression that the drive is retracting better as inverse.....
I also believe that the retraction length is to long, but I´m not sure where to adjust this.
I have the E3D hotend... And the printer is a self made MegaPrusa. So I have also had to adapt your design a little bit.

Would also be great to get two pictures of the servo in both endpositions. I did the setup as described, but it is always better so see how it should be..
The problem also with the servo is that in some places I could find one enpoint set to 120. And on some others to 110.

the spring (one) dont' have to be so tight if the teeth drive are sharp enougheven if 3mm filament need more force respect to 1.75mm. The drive gear must be positioned with the hobbed part centered respect to the filament duct on the pendulum. Depend on the dimensions of the dive (MK8) may be better in reverse position with a spacer. I use a retracion length of 6mm.
For the insertion of servo cam you have to put the servo in the middle position of the full ragge (65°) the inserting the cam pointing towards the motor shaft. In both end-positions the cam must be perpendicular to the surfaces of the pendulum it is pushing. Fine adjust the end-positions (default 10, 120) to satisfy this condition.


Hi Again
First and very important: MANY Thanks for your Help
So I´m doing some progress. In fact I´ve had a technical issue: I´v had the ball bearing in the main Pendulum being out of the pendulum, because I was not using a spacer.. So the whole construction became unstable, unfortunately I did not see it direct...
Now I´m wondering about the DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,120,120,120,120}? YOu are using 120 for the 1.75 filamant I believe. Would be great to know the values for the 2,85 or 3mm Filament. And yes, it would be great if you could upload me your prusa configuration/profile as well.

right 120 steps/mm is good for me and my driving wheel the same for the 3mm filament version.
You have to fine tune this parameter on your machine marking the filament and extruding a known length.
What do you mean for "configuration/profile"? I already uploaded the entire Marlin fw for a very common prusa like the Hephestos.


Hi Franci
Sorry, wrong expression. I wanted to say the Cura Configuration / Profile.


name = Hephestos
defaultQuality = Xs4yddQh1TfTsq4yBoTeU4deOBOj5ROS
travelSpeedMin = 125
travelSpeedMax = 150
firstLayerSpeedMin = 15
firstLayerSpeedMax = 30
infillSpeedMin = 20
infillSpeedMax = 45
infillType = 0
innerPerimeterMin = 20
innerPerimeterMax = 45
outerPerimeterMin = 10
outerPerimeterMax = 30
printSpeedMin = 30
printSpeedMax = 60
nozzleDiameter = 0
gcodeFlavour = 0
retractionCombing = True
multiVolumeOverlap = 0.05
cutOffObjectBottom = 0
shellThickness = 0.2
infillTopBottomThickness = 0.9
infillDensityPercent = 20
supportType = 0
platformAdhesion = 0
dualExtrusion = 0
wipeAndPrimeTower = False
oozeShield = False
enableRetraction = True
retractionSpeed = 60
retractionDistance = 5
multiExtruderSwitchAmount = 6
startGCode = """
; Default start code
G28 ; Home extruder
G1 F9000 X15 Y15 Z5
{IF_EXT0} T0
G28 ; Home extruder
M107 ; Turn off fan
G90 ; Absolute positioning
M82 ; Extruder in absolute mode
; Activate all used extruder
{IF_EXT0}M104 T0 S{TEMP0}
{IF_EXT1}M104 T1 S{TEMP1}
G92 E0 ; Reset extruder position
; Wait for all used extruders to reach temperature
{IF_EXT0}M109 T0 S{TEMP0}
{IF_EXT1}M109 T1 S{TEMP1}
endGCode = """
; Default end code
G1 X20; Get extruder out of way. Uncomment to use!
M107 ; Turn off fan
; Disable all extruder
G91 ; Relative positioning
{IF_EXT0}G1 E-1 ; Reduce filament pressure
M104 T0 S0
M104 T1 S0
G90 ; Absolute positioning
G92 E0 ; Reset extruder position
M140 S0 ; Disable heated bed
M84 ; Turn steppers off
preSwitchExtruderCode = """
G0 F9000 X100 Y130
postSwitchExtruderCode =
wipeAndPrimeTowerVolume = 30
retractionMinimumTravel = 0.5
minimumExtrusionBeforeRetract = 0
zhop = 0
skirtLineCount = 3
skirtDistance = 3
skirtMinimumLength = 150
solidInfillTop = True
solidInfillBottom = True
infillOverlapPercent = 15
supportStructureType = 0
supportOverhang = 65
supportFillPercent = 20
supportDistanceXY = 0.5
supportDistanceZ = 0
supportExtruder = 1
spiralizeOuterContour = False
brimWidth = 5
raftExtraMargin = 5
raftLineSpacing = 1.5
raftBaseThickness = 0.3
raftBaseWidth = 0.3
raftInterfaceThickness = 0.3
raftInterfaceLineWidth = 0.3
raftAirGap = 0
raftAirGapLayer0 = 0
raftSurfaceLayer = 1
fixCombineEverythingA = True
fixCombineEverythingB = False
fixKeepOpenFaces = False
fixExtensiveStitching = False
fanFullAtHeight = 1
minimumSpeed = 10
coolHeadLift = False
numQuality = 4
skinSpeedMin = 20
skinSpeedMax = 45
combing = 1
perimeterBeforeInfill = True
name = 0.3 mm
signature = yUmVhdY1RX30Bo6avwaujiBjY0TOBwJk
layerHeight = 0.3
layer0widthPercent = 100
firstLayerHeight = 0.3
name = 0.2 mm
signature = Xs4yddQh1TfTsq4yBoTeU4deOBOj5ROS
layerHeight = 0.2
layer0widthPercent = 100
firstLayerHeight = 0.3
name = 0.15 mm
signature = dgsYInkvVQfPpA0i77x9q7GCXH6Kc892
layerHeight = 0.15
layer0widthPercent = 100
firstLayerHeight = 0.3
name = 0.1 mm
signature = 66b4LMslFhzDcgy0zERniFSC1aL8Yjcs
layerHeight = 0.1
layer0widthPercent = 100
firstLayerHeight = 0.3

Hi, is it also possible to connect the servo direct to the ramp board without using an external dcdc power supply?

Hi, the servo connectors of RAMPS board are for low power servos, for this design I use a high torque metal gears servo. Altough the servo is active just during the switch between the hotends and the power consumption is very low, during the switching (and for a fraction of a second) can absorbe up to 2A of current. The 5v regulator on the board is capable of 500mA. The cost of a DC-DC switching regulator is about 2EU.


hello, amazing design.
I have two E3D v6 3mm Bowden extruders which pendelum do I print?

Hi FL3X,
there is no specific version for 3mm bowden, I think it is possible to print the 1.75mm version and use a drill bit to enlarge the ducts to fit the tube of the 3mm filament.


I tried the 1.75 file but the metal parts don't fit. Is it possible to get the source file so i can edit it tho fit these ?

The dimensions are the same for all the E3D heatsinks ( v5, v6, Lite, Pro, bowden, direct) originals. Maybe the problem is the shrinking factor of the material used. I prefer to use PETG, the shrinking is negligible. With ABS you have to scale (enlarge) a bit. I'm far from home for Christmas holiday when I'back home I'send you the source file if you mail me: [email protected]


Thank you very much for your work!
I printed parts and tried to update the firmware. I uses an ultimaker2 so i modified Marlin for UM2 with arduino software. My motherboard is an ultiboard v2. In "pin.h", i haven't pins for the new servo and honestly i don't know where i can plug it on my motherboard. I am mechanical engineer and electronic is totally new for me so could you please help me?

Thank in advance.


I' ll take a look at Ultimainboard v2 schematics. ...:-)



thank you! i checked the pin mapping of arduino 2560 and the drawing of my motherboard and i found a available pin!!!!
now, the servo moved between two layers (i mean two changement of filament ), i changed in "Marlin_main.cpp (after "void servo_init()" ), this lines :
// #if (NUM_SERVOS >= 1) && defined(SERVO0_PIN) && (SERVO0_PIN > -1)
// #endif
// #if (NUM_SERVOS >= 2) && defined(SERVO1_PIN) && (SERVO1_PIN > -1)
// #endif
// #if (NUM_SERVOS >= 3) && defined(SERVO2_PIN) && (SERVO2_PIN > -1)
// #endif
// #if (NUM_SERVOS >= 4) && defined(SERVO3_PIN) && (SERVO3_PIN > -1)
// #endif
// #if (NUM_SERVOS >= 5) && defined(SERVO4_PIN) && (SERVO4_PIN > -1)
// #endif
// #if (NUM_SERVOS >= 6) && defined(SERVO5_PIN) && (SERVO5_PIN > -1)
// #endif
// #if (NUM_SERVOS >= 7) && defined(SERVO6_PIN) && (SERVO6_PIN > -1)
// #endif
// #if (NUM_SERVOS >= 7)

I changed the maximum numbers of servos from 5 to 7. It seems the first one are already used by printer (X,Y,Z,E0,E1).
But now at the end of the print, the bed don't move down and i have the error message "Z switch error" but only in case of end of printing...strange!

Did anyone using this extruder already print Filaflex, or Filaflex-like filament? Is the path between the motor and the hotend not too long?
Nice piece of mechanic, BTW!

I printed Ninjaflex (shore hardness A85, Filaflex is A82), 1.75mm :
The path is not very short but the PTFE tube of the hotend is very close to the driving wheel and cutted it to fit both the pinch roller ball bearing and the driving wheel itself, no space left for the filament to run out.
I usually print at 30mm/s that is 50% faster then the recommended printing speed.
I tested both E3D v6 and E3D Lite hotends with success.


i4 Logo

Very interesting! I've been looking at ways to solve the issue of oozing for dual extrusion, and this looks like it works quite well! Have you considered creating a bowden-only version/releasing all of the SolidWorks files? I'm running a DIY Ultimaker V2, and I would love to keep the printhead mass down as low as possible. I understand if you don't want to release your files though!

Betwen the goals of this design there is the capability of printing flexible filaments like gum. It's a very hard job to print gum with a bowden feeder. About releasing the source files, it's still a "work in progress", too soon now, surely in a near future!..:-)


Hey Franci,
First of all, great work, great design! Thank you for sharing :)

I printed one, assembled everything and tested it with a servo tester i had. Everything works great so far.
Unfortunately i would ram the extruder into my frame (Prusa Steel) if i print too tall objects.
Thus i have a request/suggestion:
Would you please extrude the x-carriage on the side which connects to the backplate? by 10mm for me? this would act as a spacer and the stepper motor wouldn't touch the printer-frame anymore.
If you can't tell what i meant^^ i would be glad to send you pictures or a shematic. Right now i'm printing a spacer to do the job, but a spacer is... meh.. i don't like spacers :)
Greetings, Sebastian

Hi, for a standard Prusa i3 6mm is enough. I designed the extruder in this way tryng to balance the mass and avoiding a torque on the X smooth rods. The best would be to move the Z-X structure 6mm far from the frame. In my upgrade kit for the Hephestos I redesigned the lower and upper Z support. I know that this is harder with the Prusa Steel. Please send me some pics and I' ll try to redesign the X-Carriage .

This is my email: [email protected]


Thanks for your work,
I've send you an Email.

Greetings, Sebastian

Ok, i understand. And else one question. How better to fix bearings? In picture is see like black fastenings. In construnction there are like mounting faces.

I think you are speaking about the LM8UU linear ball bearings, they are assembled to the X-Carriage by two plastic strip ties each.
I think the is simplest, fast, relyable way I found. But you are free to redisign the X-Carriage with a different locking system.


And else one question. Have you any problem with servo trembling? I have bed autoleveling and sometimes there is a big problem.

The mechanism is self-stabilizing in extreme positions. The servo only switch from one to the other and then is disabled. This ensure a long life for the servo, low power consumption, absence of trembling due to servo instability and first of all PRECISION, because this not depends on servo precision.
Anyone who pretends to use a RC servo for precise positioning really don't know how a RC servo works!..:-)


"The mechanism is self-stabilizing in extreme positions." How it does exactly?? I did not notice any means for that...

Can i use 1.75 filament with different nozzle diameters - 0.3 and 0.5?

Sure!... tipically 0.3 for perimeters and 0.5 for infill or 0.3 for small detailed models and 0.5 for large and strong machanical part.
It is just a matter of slicing software, Simplify3D can manage different extruders for infills and perimeters.


Hello, franci! Thanks for great idea - i will use it. I have a question - in you Marlin firmware can i use bed autoleveling? Ramps 1.4.

Certainly, you only have to assign a different servo channel for the bed autolevelling servo and the Dondolo servo.
Please use the http://marlinkimbra.it/ firmware configuration tool selecting the firmware version 4.2.x dev, it support Dondolo for many boards.


Thanks for the great design!
Extrusion with one Extruder works perfect but I can't get the servo to move.
I have used Marlinkimbra with enabled servo and have tried out several Setups. The Servomotor is hooked up to an external 5v powersupply but the servo isn't moving anyway. Can someone help me out with a working Firmware to find out what is going wrong? Thanks in advance!

I have uploaded a Marlin for Prusa i3 Hephestos Dondolo Powered. Make the changes you need to fit your printer.
Be also sure that the external 5v power supply share the same GND connection of servo signal pin.


Thanks for the fast Support! You saved my day :D
Servo is moving now. I will check the source Code to find out what went wrong.
Again, manny thanks!

To inserte the servo cam in the right position send a M280 P0 S65 command then insert the cam pointing to the motor shaft.


What's nema17 used for?

Comments deleted.

For driving both the filaments (alternatively, not at the same time!). This is a direct driving double extruder.


So if I use two Bowden extruders I can make printhead lighter.

Of course!..:-) ... with bowden feeders the head is lighter. Problably you will have more trouble trying to print with flexibles materials like gum (ninjaflex).

Advantages & disadvantages...


do you have a printable template for the anti-oozing plate? I will need to hand cut those and I am unable to open a .sldprt file to get exact dimensions.

Just uploaded a .pdf file with the anti-oozing printable template!..:-)


thank you very much. :) and thank you for sharing the design this was allot of fun to put together!

Happy to know you liked it!...:-)


What does the number on the cam reference?

The number on the pendulum cam indicates the distance of the upper corners from the motor shaft axys. The greater the filament diameter the greater the number. The reason why they are strange numbers (13.92 instead of 14, or 16.08 instead of 16?) is that they are indirect parameters.


Does anyone have some tips and tricks to prevent slipping of the filament?
I have a MK8 pulley, but the 3mm filament keeps slipping. I used a verry stiff spring, and even applying tension by hand doesn't work.

If you have a good quality driving wheel (well shaped and sharp teeth) you don't need a "very stiff spring"!
Surely the 3mm filament version is more critic then the 1.75mm version because a more large wheel (like Mk7) with a planetary-gear reduction would be better. But I made it working with an Mk7 (very good from E3D) and the direct stepper motor,... so you too can!... ;-)


Thanks for the reply.
I re-hobbed my mk7 pulley, now the filament doesn't slip.


Hello Franci,

Can you explain how to integrate the firmware into my printer? I'm using a RUMBA board which is essentially a RAMPS with everything on one board. I assume that I will need to find a pin for the servo signal output (I will use the pin that is my bed leveling servo, after turning off bed leveling). After I update the steps/mm of the marlin package that you uploaded here, Is there anything else that I need to edit?


Alberto Cotronei integrated the Dondolo on is MarlinKimbra firmware. So it's pretty easy to configure the fw with Dondolo support for any supported board that have the requested feature to drive it (like Rumba is). Please use the configurator tool available here:
Select the Firmware version 4.2.x dev which is stil under dvelopment but I have already tested with success on a Prusa ie Hephestos "Dondolo Powered".

Has anyone found a spring for sale in the US that works well?

Ciao, sto cercando di costruire il tuo dondolo, progetto che ritengo molto interessante.
Il tutto per un doppio jhead con filo da 1,75mm. Ho alcuni dubbi:
A cosa servono i due fori nel centro della parte bassa del backplate? e gli incavi nel retro del pendolum?
il motore dell'estrusore ha abbastanza forza nonstante le dimensioni ridotte?
se ti interessa ho aperto un post sull'argomento nel forum di reprap italia:

Do you have you any info on wiring in the servo, motors etc, onto circuit board?

The wiring strictly depend on the board model. Any board capable of driving two hotends can succesfully wired. Depending on the driving capabilities of the DC-DC converter on your board you may need an external DC-DC to supply the 5v to the servo (3-4EU), if you have an heated bed and a RAMPS board you also need an external mosfet driver (3EU).
There are a large variety of possibilities and configurations. .... :-)


Nice work Franci, did you have to post process the g-code in your slicing engine in addition to the firmware changes?

No, no need to post process the G-code. ... :-)


Hi! so I need to use the commands "T0" and "T1" to change extruders?

Yes!... just as any other double extruder.


ok). thanks for response.

This design is great! I'd love to modify it to be compatible with my ORD Hadron. Could you please upload an .STP file for each of the parts that mate with the linear bearings? I can then reconfigure them so that the entire assembly can mate with a base plate. It'd be awesome if you would export an STP of the entire assembly, but I really just need the parts that connect to the linear bearings.


I suppose you have to redesign the X-Carriage or modify the Backplate to match your actual X-Carriage.
I'll send you the step files of both.


Love the design and want to build it. But worried about thickness of stepper motor as I have a prusa i3 and are concerned about it hitting the top frame. What are the measurements of that motor, as it looks thinner than a Nema17 42BYGHW208 I'm looking to buy?

I've just uploade a 6mm spacers set for standard Prusa i3. Just put between the frame and the Z axis (top, bottom, right, left) supports. The stepper motor I use is exactly the 42BYGHW208: 43mm x 43mm x 33mm (H x W x D).

Ciao. ... :-)

Still waiting on a few parts ordered, but thought I would get the printed parts underway.
Just printed the twin fan ducts, and realized they don't fit my J-head hot-ends :(
Have you any plans to design fan ducts for the J-head hot-ends? If so when? Or should I give it ago in sketchup.

Much thanks

Usually the J-head hot-end don't need the cooling fan.


is there a diagram or some feedback on which screw goes where?
the m3x25mm are the only ones I knew where they go hehehe...

My confusion also comes from the fact that I still didn't disassemble my extruder motor to be placed here yet.


Hi, I'm working on it!...:-)


Thank you :)

How important is it to have the spring exactly 50x6x1mm?

You can use any spring you like but you have to tune it for the right tension. Because there is no adjustable tensioner you have to shorten the spring until you have the right tension.


Any suggestions on where to purchase the spring?
Thanks for the fantastic design. Can't wait to have it on my printer

You can experiment different expansion spring shortening, if necessary, to achieve te right compression force.

Ciao. ... :-)

un lavoro eccellente.

Grazie Daniel!!...(y).... :-)

I have the same idea and similar design,
Urs r better then mine, i love it

Hi Liusega,
I saw your work when it was still in progress. I' m a follower of your videos on Youtube. No mistery, no doubt it was a source of inspiration in my design. Thanks!!...:-)


I wasn't a mechanical designer, And the 3d software for the design is not too good.
Don't have enough knowledge ,skill and experience.
But I know there are better way to do this...Here u r.
Great job~~

This is the magic of sharing and of co-operation!!.... Congratulations to you too!!....:-)


Hi, I am very impressed with the project, just got myself a MiniMax by Maker's Tool Works, and since it has no Extruder assembly and a flat vertical X carriage, I am convinced I need to make your Thing.
I need to modify the Back Plate to work with your design and OpenBuild Rail system, most likely will CNC it,

I would appreciate if you can email me the full assembly in solidworks format, so I don't have to redraw it from the existing stls?

Thank you!
[email protected]

Thanks for sharing this project ! :)

Hi franci. Great job!

I´d like to know which material I have to use to print this, PLA or ABS? Since it´s use E3D All Metal hotends, I think the better material is ABS. Am I right? By the way, As I have some spare J-Head hotends, is that possible to have a version of the "Pendulum_101.STL" and "Doble_clamp.STL" to be used with then?

Thanks in advance.

[email protected]

I printed all the parts in PETG but you can use ABS or PLA without any problems.
I' am currently working on the E3D v6 1.75mm version, the J-Head version... "coming soon"!..:-)


Thank you for the prompt response. I´ll wait for the J-Head version....
PS: I forgot to tell you that all my spare hotends and PLA filaments are 3mm in diameter.... :D

Just uploaded the modified Pendulum and Doble_Clamp for J-Head.
I have not phisically tested (virtually assembled in CAD!)
"Pendulum_J-Head.stl", "Doble_Clamp_J-Head.stl".
Let me know!... :-)


Hi franci, see the results of you great job in the "Make" section. The J-Head fitted very well. So, I´ll start to print the entire extruder. Have to buy the specific stuff like bearing, servo, spring, etc.... It took 2 hours to print the pendulum and the clamp. BTW, do you have the X Carriage to be used with LM10UU linear bearing? My Prusa I3 uses all 10mm linear guides. Thank you once more. Regards.

Thank you again! I will start print those parts right now to see if it fits well, I´ll keep you informed.
Regards from Brazil.

Mail me the cad drawings of your X carriage and I' ll try to help you.


Hi Gianni,

What I asked is if you can make a version of your "X_Carriage_R2" to be used with LM10UU. I´m pretty sure that the one in "Thing files" is for LM8UU. Am I right?
PS: The center of the two parallel bars of x axis are 45mm.

Thanks and regards.

Are you using a GT2.5 belt?

It is a GT 2 belt and pulley 6mm width (2mm pitch).

This is another difference!... I asked the model to evaluate everything I have to modify.

it is not a very easy job and I want to be sure to make a usefull work.... :-)


hi, very good job, does exist a 1.75mm version ?

Hi, in this days I'm assembling a second Prusa i3 GW with a 1.75mm filament version of the Dondolo. I think easier to make it working then 3mm. You can adapt this version, just sand the pendulum cam to adapt to the reduced diameter. In the final version I put the PTFE tube of E3D v6 inside the pendulum channel to make a continuos and very smooth channel direct to heatbreak.

already designed it for chess hotend, got all the pieces but no time to mount it... anyway i can share redesigned pendulum if anyone is interested

Please publish your redesigned "pendulum" and I put a link to your work!..:-)


Hi, would it be possible to somehow get even 40mm fans to cool the nozzles? O:) I was searching for quite 25/30 and not quite successfull :/

You have to re-design the double fan-duct. You can put the fan you like but be carefull to ensure at least 4FCM of air flow for each hotend to avoid jamming problem.

Hey Franci, do you perhaps have some sort of a drawing file (or solidworks file) of the metal anti oozing plates? I am modifying this to use with E3D's V5 hotends. Thank you in advance!

I uploaded "anti-oozing plate.sldprt". Among the configurations there is a "flattened" version usefull for cutting on a brass or aluminium (or what you prefer!) 0.5mm sheet.


Thanx!! would it also be possible to get the solidworks file of the x-carriage?
I just noticed that my belt has a different pitch than yours..
Sorry for the hassle and thanks for sharing!!

Done!!... :-D

Is it in the thing files? can't see it..

Sorry!... maybe something went wrong! Now the X carriage (sldprt) is there (thing files).

can't find sldprt file of x carriage...

I am impressed with your work so far, thanks for sharing with us all.

I was wondering if you had any problems getting the hotend nozzles to the exact same height. How did you set up the firmware for different heights of the nozzles, if any, to stop printing issues? Or are you using some kind of auto bed levelling for both? If this is the case do you have any recommendations for auto bed levelling with this?

no problems in getting the hotend nozzles at the same height. Just slightly loose the 3 screws of the hotend clamp, put the bed in touch with one tip nozzle, switch to the other hotend and adjust to put bed in touch with this too. Tighten the screw and check the alignment. The alignment of nozzles is not so critical as in fixed hotends. 0.1mm of misalignment have no serious effects on print quality. No auto bed levelling is used.

Excellent, thanks for the quick reply and the advice, it is appreciated.

I was unable to configure marlin because it does not compile when I'm your guide , could you send me the marlin program I modify it to suit my RepRap . thank you

I uploaded my Marlin in the Thing files. I hope it may be of some help for you. ... :-)

Hey, what type of fan duct are you using in the pictures? and does it work well?
Great work! I am printing the parts now!

The fan duct in the picture is out of date, resulting in jamming problems with PLA and PETG.
I replaced the stl file with the new one supporting 30mm fans. The pictures shows the old one. Adopting fans with CFM > 4 allow a lower working temperature with ABS too and then less warping problem (I lowered the temperature of 10°C).

Is a 40mm fan duct for model cooling. Nothing special, it does the job for me but I' m not a specialist of PLA. I' ll upload the stl file in case you are interested in the "complete solution"!..:-)

At tool change what is triggering the servo?

Please read the "DONDOLO_v1_firmware_setup_guide.pdf" in the "Thing Files". ... :-)

Sorry totally missed that one. :-) I have to say, this thing looks amazing. Great work!!

Uploaded the stl file for the new hotend dual fan duct. Now supporting the original 30mm (4 CFM) fan of E3D v6 hotend.

WARNING!! Testing PLA and PETG raised an issue with the hotend cooling system (not enough!). I' m redisigning the dual hotend fan duct
for original 30mm fan (twice the air flow).


impressive the cleanness of your prints. I'm fighting with my dual bowden .. thinking to switch on dual direct.
This solution seem very good way to prevent the problems generated by 2 extruders at same height.
I think that i'll buy the components... and try to assemble your solution.

What about 4 extruders? Any problem with FilaFlex?

Hi,. 4 extruders = 2 extruders x 2 carriage my next step but in a more robust CoreXY frame!... :-)
Never tested FilaFlex!,,, Did you plan to print two colors woman shoes?..:-)

Saludos Renato,


The two part have no empty intersection!... my slicer can't manage this situation. If you can arrange the stl files in such a way that lead to disjoined parts I' ll try to print it. ... :-)

Simplify3D should slice it good, almost from my impression looking the result. Let me see if i can fix :)

hi!.... I uploaded some pics. The result is not as good as I 'd like. I printed at half of the original size (50%) but loading a previous factory file I forgot to reduce the extra distance on restart after a tool change resulting in exceeding flow with some little blobs and contamination. I fixed in Blender the problem of the intersecting parts with a boolean subtraction.

Comments deleted.

No problem with the slicer. The problem is printing, there are region common to black part and to red part. ... :-)

I tried to print my Pigalle V5 in 2 Materials.. but still my bowden have problems with the tool change retractions.. sometime the filament stuck.

I'm uploading soon the Pigalle V6 in 2 materials.. so you can print it.

Ps. I'm italian too :)

So for 1,75 filament i just make shorter arms of a camma pendulum?

NO!... it's not a matter of diameter but of type of hotend!... you can put hotends for different filament diameters without any modifications if they are of the same type (and then of the same length) v6/v5. ..:-)

Ah, i see now. Iam going to put 2*1,75 chess hotend on it, but still waiting for bearings from ebay .)
Anything that i should consider when planing to use it with 1,75 instead of 3mm filament then?

Looks awesome,

but I have little bit tricky setup and I am not sure about it.

Do you think it would be possible to have this setup?

A. e3d v6 1.75mm
B. e3d v5 3mm

I have the v5 now and I want to swithc to 1.75mm but got tons of expensive material for 3mm.... so your design would be perfect

Hi, it not possible without redesigning the "Pendulum" part to accomodate the two different hotends (v6 is shorter!)

Amazing. Can you share your design files so others can tweak it to print on their machine? I had this idea for so long. It's great to see it in action.

lay out initial model in solid works?

Comments deleted.

What diameter of filament are you use? 3mm or 1.75mm

I'm using 3mm filament (the "worst case" between the two!). I had to build my custom drive gear, the commercially available are not sharp enough!!... :-) I suppose with a 1.75mm filament is easier and the commercial MK8 drive gear will do the job. :-)

nice work!,

How do you mount the pendulum on the backplate? Theres a 5mm hole on the pendulum that looks like a pivot, but theres no hole on the backplate.

The pivot is the motor shaft, this is the really good idea. A F695 ball bearing (5x13x4 flanged) is mounted in the 13mm hole in the pendulum and then coupled with the 5mm motor shaft.
I have to write a more deatailed description but it's still in progress (but working!). ...:-)


awesome!, would you mind sharing the source file of the pendulum, so i can make a 625 bearing version?

Do you use google+?, i would like to contact you.

The 625 is 5x15x5 bearing no flanged, its hard to fit. ...:-)
This is my mail [email protected]


Guys, did you worked out a version for 625? I would have use for one .)