MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now

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

FunX4 - Toolchanging 3D printer

by tpra Apr 9, 2019
Download All Files

Please Login to Comment

I have a question about ''So v2 will have an oDrive-driven brushless-powered XY gantry :) Whether it's with belts or with leadscrews''.
How do you manage to use the brushless motors? Is the Duet capable to drive such servos?

I'm searching quite some time now to eliminate the steppers because of the bad performance, but I'm using Marlin at the moment.

Is there a date where you'll have finished your V2?

I'm looking forward to using your design and redesign for my purpose :) Nice work so far!

Can you upload full assembly file if possible
I'm trying to build a PEEK printer. It would require a heated chamber capable of operating @ 90 Degree Celsius. That means requiring motor to be mounted outside the chamber. I have built 3D printers before but not a CoreXY design. I like the E3D design, but they've not released it yet. If this is too much, can you please upload photos of belt winding. That's the part confusing me about core XY

The file "funx4-20190409.f3d" (15mb) is the complete assembly.
You can open it with Autodesk Fusion 360 (which is free for hobbyists and students, btw).


Thanks for the reply.
Can you specify the pulley and idlers you've used, like tooth number ??

Also E3D has released there designs, though I couldn't find the complete assembly.

From there XY assembly PDF file, they've used
16T, 2GT, 5mm bore pulley : 2 Nos
P20-2GT-6-A-P5-H10 Idlers : 6 (I think these are toothed ones)
IDLER-D12-6-A-P5-H10 : 2 Nos (I think these are smooth idlers)

Can you confirm with yours or just update your ?

I'm following your design with slight modification to build 3D printer, not a tool changer one. Never built a CoreXY before

Also how are you tightening your belts. ? Is there any tension mechanism?

Hello tpra, thank you for your awesome work! Any chance you can share your Duet configuration including tool change scripts?


Where did you order carbon plate ?

It had it machined by a shop specialized in RC-drones frame cutting.
(mainly because carbon dusts are very dangerous and one needs proper equipment to cut it, so i couldn't do it with my own cnc)

Can you send me what shop was please.

so you make this cnc parts with your cnc?
what cnc do you have ?


  • the shop that did cut the carbon plate is 1001copters.
  • the toolchanger parts are machined by Weerg because one part is very hard to machine on a hobby cnc, and i did want correct precision (.1mm -- which is actually not mandatory if you use the right method to glue the balls). For v2 i'll try printing with X-Strand fiberglass-loaded filament instead of machined aluminium. Should do the job nicely when reading the specs.
  • the aluminium plates are laser cut with tolerance, then re-milled and drilled with my OX-cnc
  • the pcb's are milled on the OX too
  • the Z square is milled by Weerg too, and this one is just impossible to do at home (though i'll also try X-Strand filament for this one).

Hi, do you have any date about the 2nd release ? dont want to start the new project and then reorder all cnc parts

Hello exti, it will take about 6 to 8 weeks from now, because you know, real life :D
So v2 at the end of summer. And i'd wait for it, because it will be great, print quality is already outstanding on the v1, it is even better on the v2 prototype. The motion system change from coreXY to regular XY is a big move, and even if not a "sexy" choice, it's a real game changer about smoothness and easy --forgiving-- belt tension. Also i prefer to take my time, v1 was more like a public prototype, v2 will be optimised for an easy build.

Still, if you want to do the v1 fast now and need the machined part i can sell them.

Hello Thibaut, thank you for sharing this TC system, like it a lot, the most I like is the 5mm x4 balls and T-shaft lock. I'm remixing it to fit on my needs and components that already have.

Basically I'll try to make it printable instead of machined aluminium, using 6mm steel pins (I already have this size) and I'll drill myself the T-shaft, M4 acorn nuts (7mm sphere), and also planning to use 24BYJ48 as you will in V2.

I don't know how to connect it because it has 5 wires, so I ordered a ULN2003 driver board, is that the way to connect it?

I read from you that smaller steppers won't work because the need too much gearing and consequent slow speed, I also purchased a DS748 and another one with 36:1 just to see how they work and if any could be suitable. Did you tested the DS748?

Just a last question, what kind of probe/sensor do you use for Z? I can't see it.

I wanted to share with you how is looking the remix at the moment so there is an attached pic.


Hello :)
Great to see that people do remix it !

The micro stepper is this one :
it has 2 phases (4 wires)

The Z endstop is an hall effect sensor.
I never had any problem with bed level, so i don't see the need for a Z-probe except on a delta perhaps.

Comments deleted.

Nice to hear that really the use of Z-probe is dispensable! I was focused that the best way to go was auto-leveling, but don't use it could have some benefits, as to free up the space in X-carriage. I was considering piezos but I think I'll try to put an endstop to the bed out of the carriage. It solves a problem I have with an interference between the Mk52 bed wiring protection and the Bltouch pin. In fact, has more sense don't use a probe for a tool changing system because it limits the movements depending on how you mount other things.

The 24BYJ48's from seeed have 4 phases and 4 cables; the 24BYJ48 clones I've purchased from aliexpress have 5 wires : ) I will see when arrive how to connect it.

Hello any changes to the any head part because i just few days ago order aluminium parts from weerg?

hi, no changes at the moment.

it will take at least 2 months from now before i release v2.

please take extra (super extra) care when glueing the balls, especially the 6mm balls. You absolutely need to glue them with good 2 parts epoxy (araldite metal works really nice) and to not put too much glue. If there is too much glue you will have absolutely no way neither to remove the ball, neither to get it going all the way down.

for this reason i really recommend to (very gently) create two notches in each 6mm hole edge of each toolplate with a very tiny file.
this is enough to help the excessive glue to escape, and is really needed. will add this to the description

So all balls are 6mm ?
and where will you add BL touch sensor if would you useded, because i would like to have BLtouch sensor because i will have automatic leveling bed with three motors.

The 3 balls for the positioning system are 6mm (onto pairs of 5mm pins).
The 4 balls for the servo-lock are 5mm.
I didn't plan for a BLtouch support sorry as it's not needed with the Z design. Files are open for modification though ;)
Just mention if you remix it, i'd be happy to see the different remixes if there are some :)

if i design something i will sure inform you and we can add to this files ;)
what spring do you use for locking system.

it's a 12mm long and 1mm diameter thick pretty hard spring (sorry for the precision :D ) fits a 5mm shaft with enough free space. if i remember it's something like 6mm ID / 8mm OD or close.
it has to be hard because it's better if there is a sweet spot where a small distance switches from almost no tension to the tension required for good locking.

will this work
15mm long 1mm diameter and 6mm inner diameter

yes it should work even if a bit too long.
it's not crucial as anyway it has to be fine-tuned for every setup.
there is not so much place between the front and back plates (19mm if you count the igus bushing's thickness). And into those 19mm you have to fit the spring and a lock-collar. so Depending on your lock-collar thickness, a 15mm spring could fit.
you'd still need to have more than one spring at hand because it'll help a lot to find the sweet spot.

where did you source the shaft your using from the servo to the tool???

The shaft is a Thunder Tiger PV0030.
PV0246 fits well too but is harder to find (that's the one i use in the v2 i'm currently working on).

in this prototype version i re-drilled the traversing hole to 3mm instead of 2mm, and that wasn't so easy (the shaft's steel is really hard).

I'm also working on an aluminium shaft version with easier-to-source components.
Actually, that's all the work about the upcoming v2 : easy to source components, easy to build, low parts count. And probably about oDrive too ^^

Very interesting.
Could you publish some information about tool changing head? It looks like working perfect.

I added some informations in the description, after the v2 stuff ;)

Hola, Como configura el cambio de cabezal? en marlin y en el slicer (cura o simplify3d). Desde ya gracias. MUY BUEN TRABAJO!!!

Hi, i'm using simplify3d to generate the gcode (one process per extruder) with simple Tnnn commands for toolchange. I'm not using toolchange scripts in simplify, but rather those inside the board (duet wifi). Though it's the same result.
I still have to add extruder priming in a filament trashcan, it is clearly mandatory in this kind of design.

Really nice job - what benefits / improvements do you see over the E3D machine?

All in all it's a similar design, even if designed from scratch.
My suspended Z is imho better than e3d's motor at bottom and Z weight pushing on the leadscrew, but e3d's one-rail Z design is really cool. maybe a mix of both would be great :)