The banana XY bushing block and belt tensioner. Drop in replacement for the ultimaker

by MoonCactus, published

The banana XY bushing block and belt tensioner. Drop in replacement for the ultimaker by MoonCactus Jan 29, 2013
9 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


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

30852Views 6387Downloads Found in 3D Printer Parts


This is a drop in replacement for the Ultimaker, though it should prove useful on other printers with belts with an X/Y moving head, such as the makerbot (it is all parametric: belt, rods, bushing etc)

It also embeds a novel and precise belt tensioner thanks to a sliding banana. No? Really!

Just have a look at the "exploded" STL view to know why!

Nb: these are for the Ultimaker gantry rods, so 6mm for the two central rods, 8 mm for the outer with a bushing of ~11mm (outside diameter). But the source can be adapted to other diameters (probably not smaller though).


One of my XY wooden block lost a leg and the head rod started to wobble.
As I had to design some replacement, I fitted a belt tensioning system by the way (have a look at the "exploded" stl file to understand).


  • drop in replacement for the XY wooden blocks
  • easily mountable/umountable (no need to remove your rods, except to get rid of the stock wooden parts the first time). This thing clamps the rods from the above and bottom, not from the side! If you do not want to disassemble the blocks you may be interested in http://www.thingiverse.com/thing:66866
  • integrated screw- and banana-based precision belt tensioner :)
  • probably lighter and easier to tune than the stock X/Y wood blocks (eg. I printed rev2 with rev1 faster than ever, my head moves better than before!)
  • the belt is not bent out of the block (ie. it is kept parallel)

Bill of material and howto

Never force on the screws! A good practice is to quickly and progressively screw/unscrew so as to benefit from the heat when you carve the threads in the plastic (I use & recommend PLA).

  • a somehow working printer to print the block... Mine was still usable when I printed the first version (see the pic, broken leg on the bottom of the wooden block)

  • 1x 30mm M3 screw + 2x 20mm M3 screws to clamp the axes vertically (screw them all progressively, with priority to the head rod and finalization with the rear long screw to clamp the bushing -- the latter almost does not have to be there so do not tighten it too much). I repeat: the bushing should not be over-tightened (no use / counter productive). Nuts may be added to secure the screws, but it was useless for me since the screw holes in the PLA were tight enough.

  • one M3 drill to widen the 3 holes of either the top or of the bottom part, according to the block you are printing. The screw must be able to move freely in the part closest to its head so as to clamp the rods properly.

  • 2x 15mm (20mm is ok) M3 screws for keeping the belt in place (these are the horizontal screws). No real need for nuts there because the belt will push them aside... but:

  • I recommend 2 small pieces of bowden or PTFE tube to put on the previous screws, and to avoid ruining the belt on their threads with time(?). The pieces must be cut to the width of the belt of course. Only one of them is shown on my pics, but I definitely should add the second one. Update months later: still did not do it and still no wear on my belts, they are probably superfluous.

  • 1 M3 screw for the belt tension (horizontal screw between the belt and the outer rod). Use the shortest length according to the tension you need. A 10mm may be enough (make absolutely sure it is not too long and does not scratch the rod!). Increase it for a longer banana :)

You may have to sand/cut a bit the banana so it slides enough in the curved slots. Then make sure the tensioning screw is able to push it, and that it goes back down when you press from the above as would the belt be doing. Once again, do not force on the tensioning screw, better cut more of the banana than ruin the PLA thread you'll be carving with the screw!

Also take care not to delaminate the walls when you screw the horizontal screws! I recommend you prepare the threads outside of the printer, then insert the belt, the tubes and slowly screw until you match the opposite hole. Then screw slowly again, keeping the bolt aligned. Quickly go forward and backward to heat the PLA by the way. You need a good print obviously for this part.

So... what to print?

Please make sure to use the proper parts for the proper location : they are not all alike as some feature the required tab to trigger the respective end-stop. Do not mismatch them just like you did not with the stock wooden blocks ;)

For the whole set, you will need to print:

  • 3 x bottom + no tab

  • 1 x bottom + tab

  • 3 x top + no tab

  • 1 x top + tab

  • 4 x bananas

Obviously, forget "exploded.stl" which is there just to show how it works!

Note also that the banana versions labelled "long" and "huge" may be useful when the default banana is too short (with used and sloppy belts). It probably means you should consider buying new belts by the way!

Check the existing blocks to know what goes where. The most important thing is the tab! Of course, remove the thin oval skirts, as they just help to print the top parts (that tend otherwise to pop off the bed just before the junction and b/c of the overhang).

Printing options

I recommend 0.15mm layer height or less for the top parts b/c of the overhangs. I used 1.2mm wall thickness. You may like to end the layers with the perimeters.

Top part better be 100% file, bottom part can be almost empty.

The banana could benefit from a high resolution (used 0.1), but the way its printed sideways so it may not have an impact. What is important is to print it at the lowest temperature possible and 100% infill.

The flat rounded tabs at Z=0 on the top/big raft should prevent them from popping off the bed before the layer joins with the other side. If it still fails, you can also use a brim or a raft to stabilize them further (I needed nothing of these).

Belt tensioner

The belt tensioner works by pushing the "banana" upwards in the curved side slots below the sidewalled belt (check the exploded view to see better). It works very efficiently for me. By default, this screw features no embedded nut: it is just tightly screwed in the plastic itself so be carefull not to ruin the thread. Embedding a nut there is tricky because of the lack of space, but the option is given (I did not use it).

Last file updates and revisions

Version 3d: there are m3-sized holes only anymore, and drilling is required for the proper top or bottom 3 holes. You may also simply drill all the way and use nuts. For me, they were tight enough and I did not need nuts.

Version 3.2: a smaller/tighter version towards the outside because the block in the back was hitting the vertical bed rods and Z-screw as hreedijk noticed it! oops... This time I did print this specific block and installed it on my own printer. It is tight but OK (<2mm gap).


At last I can tune my long belts with the same precision as with my short belts http://www.thingiverse.com/thing:40041 Please comment & feedback :)

This thing is Attribution - Share Alike - Creative Commons. I will not and I cannot waive my moral rights on this thing whatever the Thingiverse bozos ask for. It would be illegal in most of Europe anyway.

More from 3D Printer Parts

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

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

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

Hello mate nice work ! would this work for the Ultimaker 2+ ?

HI! Note sure, but as long as the rods & bushings are similar I guess they would :/
It is usually easy with openscad to tweak the sizes otherwise, but this specific design is tightly packed. For larger bearings some minor translations may be required to avoid intersecting voids in the part.

thank you mate, can you export it to Stp file, i cant open Scad file in fusion.

Hi there, sorry, no way: openscad is another language which files cannot be imported as is.
What you may do though is to generate and save the STL from within OpenScad, and import the STL files elsewhere. You will lose the possibility to tweak the design by simply changing a number though :/

i printed your files too, but my belts slips through the bolts, where the banana mounts. Do you know how to fix this ? i have attached a picture in the i made one section . thank you for your work.

Thanks for the picture :) My belts would be super super tights if I was tightening it as much as yours, and they certainly would not slip. Or may be its material is uncommonly slippery?
Anyhow, here are a few hints that pop in my mind:

  • add short pieces of tubing on the outer screws: this will not only add friction to the belt by pinching them against the body, but it will protect it against the threads in addition
  • add a small flat tab (e.g. made of rubber) on top of the banana for the same effect
  • roughly file the top of the banana to add friction if tightening further is not a good thing (you could even add a tiny drop of glue on the tip of the banana in the worst case!)
    Obviously avoid any grease!

Hi and thank you for yor reply. I will try all the tips and get back to you.

Has anyone used this with the Ultimaker 2? I don't see why it couldn't work just as well with it, but wanted to make sure before I printed.

Did you try this out?

I have purchased some 12mm OD bronze bushings for my Ultimaker and am wanting to use these blocks but am having trouble editing the OpenSCAD files. Any chance you could upload a set of files with 12mm OD diameter for the bushing section. It would be greatly appreciated :)

In openscad, you simply change the value of "bushing_od_native" and set it to 12 instead of 11, then press F6 to re-generate the part (set the "what" and "which" sequentially to each of the parts). Some are really tight because of the very small place around the blocks, so I cannot tell if it will fit (I am confident though).

What are the measurements for the rods used here? thanks

I just measured 6 mm for the two central rods, 8 mm for the outer (bronze bushing seems to be 11mm).

I just replaced my wooden blocks. Thanks for the great parts. Could't test
it very thoroughly but looking good! maybe for a future revision make the
wholes that won't be threaded a little bit bigger so we won't have to drill

Thanks for the feedback! Yep that would be a useful tweak. It gets a bit messy in the source code though, and I am lazy: I think that ppl that are OK to switch to these blocks will not be annoyed much by drilling a few holes :)

You're right of course, I didn't mind drilling the holes. It's just sad seeing a perfect print made ugly by a drill bit :). On a side note, it's quite impressive how little force on the clamps/linear bearing is necessary to obstruct movement. Note to myself: I'm sure there is potential for even smoother movement (= just enough force applied on clamps to hold bearings in place). I'm also thinking about using your short belt tensioners. How did you mount your motors? Do you still have the wooden motor mounts or do you use spacers as in the newer ultimakers? I still have wooden blocks and I'm hoping to be able to make my ultimata a bit quieter...

True also! Even though the design gives very very little room (everything is highly packed), I always wanted to improve how the linear bearings are held. Actually there is no need to clamp them on their whole length as I did (only the sides would be OK). Indeed, do not tighten the screws too much, as long as it does not slide out of the block it is OK. Else they may get flattened or even break (if you really tighten them like hell)
As for the short belt tensioners, I think they are the best "improvement" I have designed for the UM, after YAZA (the Z adjuster, even more useful). They were originally made for the wooden mounts, until I re-designed a 4-screw version for the newer UM models with the 4 cylindrical motor supports (the latter works also for the old UM, so I would recommend using the 4 screw version everywhere). -cheers

Did you check the detailed "instructions" page? I am not sure I can say more than what's there! :)

is this one for 8mm??

Yep 8 mm rotating bars, 6 mm static bar (head). My bushing is not seen here, it shorter than the usual one :s

Could you make bushing hole 10mm? I have an ultimaker, but I have smaller diameter bushing. Thanks!

Had some time left... here there are: older_ultimaker_10mm_bushings.zip
Obviously did not try, please tell me if it works OK for you :)

Thank you, it works. :)

Hey, thanks for your feedback -- Good to know, as it may help other people!

I can't say how sad I am this design didn't work out for me. Hours of work went to waste. Perhaps the blocks I printed weren't in excellent quality. The concave for linear bearing and axis weren't exactly a perfect fit. I couldn't screw the bolts all the way without having to sand the blocks down a little. I think I sanded down too much in some areas, so the linear bearing the rods were a little loose... As a result, nothing stays aligned. I hope the rest of you have a better luck.

Ouch, sorry to hear that (really, since it is s painful to dismantle all the X/Y carriage stuff + recalibrate). Never had such a report so far, but you are of course right to say that one should proceed if and only if the replacement parts are printed nicely first!
Now, you may be able to improve sequentially, printing better and better. You can test the blocks without removing completely the wooden ones, just by sliding them loose to the edges (beware of the X/Y end stops no more being triggered though!). Only when you know the new ones are OK you can remove the old one, or even destroy them with a pair of pliers as done here, eg. https://www.thingiverse.com/make:39347https://www.thingiverse.com/ma...

The banana XY bushing block and belt tensioner. Drop in replacement for the ultimaker
by maxy

Hi Mooncactus!

Thank you very much for sharing your smart design!

I tried to configure the blocks for an replacement ballbearing with 15mm Od and saw that the variables were easily accessible for changing that.
But i stucked at the beginning and cannot render/display anything in sCAD, even not in the original file. I tried around with changing some fields, but always have the error report: WARNING: No top level geometry to render..
when i set true on: exploded_view it will show me an cubus, which i can export as stl. Also the "what" and "which" section, close to the header i have adjusted, but without any success..
My Open sCAD knowledge is yery minor but managed to adjust several things from other files in open sCAD for printing. As well i just updated my open sCAD to see if there is an error due a compatibility issue..
Have i missed something there or could you point me in the right direction?

Thanks again for you nice design and that you share it with us!

Best Regards

Hi! I finally took the time to have a closer look.

I have no clue why you have trouble there. Everything runs smooth as for me in openscad when I change the initial "bushing_od_native" constant from 11 to 15mm. So, I just added another zip archive with the re-generated STL for 15 mm outer diameter for you. You are looking for the "experimental_15mmOD_better_not_use.zip"

Note: linear ball bearings are "officially" meant to //translate// with no rotation, b/c they would wear abnormally when the balls do not circulate as expected. I suspect it would work anyhow for a long time before anything happens, so if you try it anyway, I would be happy to know (and get a picture!). Also please double-check by moving the blocks manually that no issue happens with these : I did not check myself and the initial 11 mm fit is already tight. It just looks OK in the renderer :p

Hi Mooncactus!

Thank you very much for your help and your uploaded zip file!!
i guess i am just too stupid to use open sCAD...
as soon as i have the prints and the ballbearing, i will share them and make a small report from the whole setup, but this will take some time, as my hotend making troubles all the time...
But thanks again for your help!

Best Regards

Works very good for me, thanks for sharing...

I'm glad you like it - it is probably the most useful thing I designed for the ultimaker so far (well, with the short belt tensioners may be, or the Z adjuster, ah, also the quick head mount also lol) :)

Hey man the part looks great,
I was wondering if you were going to post a CAD model of this as well.

Thank! The source code is already included -- but you'll have to use the programmer-friendly openscad CAD modeler. There may be really no mouse-based modeler that know how to import scad files though :s

Overall its a great concept. Tensioner idea is really good. However comments for improvement are:

Your STLs are not correctly named. You have the x1 and x3 parts mixed up.
I still had very slight collision to the rear 12mm rods (with latest x32 revsion)
The front block main body hits the LH limit switch case before the lever

Actually, I think that the automatic zip archive was not re-generated by Thingiverse as I did fix the wrong naming 3 months ago (see jpg remark below). Have no clue how to have them update the archive.

I guess the issue with the Z screw also comes from this broken archive, because mine is OK and so is the one of others (I have 12mm Z screw also). I just uploaded one more related picture showing the gap between the block and the Z screw... may be it will trigger the update of the archive? Please tell me then. Also had no problem with the LH limit switch, may be again due to the old block design left in the archive?

Else you may better download the individual files... :(


The archive seem to have been updated (with the upload of the Z-scew picture which is not part of the archive, go figure...).
Feel free to tell me if it still collides with your Z screw though!
And thanks for your feedback anyway.

Any chance we could get stl's with better quality? Thanks for the design!

Hi. Well, more facets is easy but it would probably not improve the printed object quality (there is a hardware limit not worth going past and I cannot see any facet on my printed versions, may be I did not look carefully enough). Or is it more about slicing issues, such as hollow walls?

Hey Mooncactus, it looks like the file name quantities are switched. ie: bottom_notab_v32_x1.stl and bottom_tab_v32_x3.stl

Sorry for the late answer, was offline on holidays :)
I did fix the wrong filenames but for some reason the zip archive was not re-generated by thingiverse... I have no clue how to have it updated!

See the individual files:

  • bottom_notab_v32_x3.stl
  • bottom_tab_v32_x1.stl
  • top_notab_v32_x3.stl
  • top_tab_v32_x1.stl

Will mention it in the doc, weird!

No need to remove the rods at all. You can take the wooden blocks apart in place. Slide layer by layer over the brass bushing, then mount the new block. If it works, use a wire-cutter to destroy the wooden pieces.

If you have ever tried to hold the nuts to re-install the end-caps for the rods, you will understand.

Well, during the development cycle, I certainly did not want to destroy the blocs since I had once to put them back but leaving them temporarily as you say is clever indeed.

For the tricky nuts, did you check my "nut calumet" and rod end caps? http://www.thingiverse.com/search?q=nut+calumethttp://www.thingiverse.com/sea... But in fact I would use this very nice derivative next time http://www.thingiverse.com/thing:75572http://www.thingiverse.com/thi...

Nice one. I'm still amazed how well tight holes work to hold the screws.

Finally got around to switching out my xy blocks for your wonderful banana blocks. I think it took like ten minutes to swap them out and 45 minutes to get everything square again :(. One of my belts doesnt seem to want to twang the same as the others though. I wonder why that is...

Yep changing the wooden blocks are the most annoying operation that can be found on an ultimaker imo, especially as it destroys all the calibration (pulleys, belts, alignments...).

Make sure to loosen both pulleys on a belt before you tighten it, so that the tension is equal "before" and "after" each pulley. You may have to push and pull the belt a bit on both sides before you tighten the pulleys again.

Check also the pulley alignment before you tighten the belt: ideally, no belt should touch a pulley flange when you move the head (as it would wear out faster, and it could make it twang differently).

Yea I kept all that in mind. I loosened the pulleys, drug the block back and forth, shifted the pulleys around sideways and it still sounds different. Maybe it is already worn out enough to change its stiffness. I find that difficult to believe though. Whatever! Will try a print with this setup today

I like the design, thanks for your work! How long has anybody used these printed with PLA? Depending on forces, some things printed with PLA just don't last and the slide blocks are one of the things with a lot of changing forces during use. Also, any hints with printing like needed support and infill% would be helpful. thanks again!

Actually, the pictured ones already are 100% filled PLA (I'm printing 90% with PLA).

The first ones were mounted around mid January, so they are pretty solid: I printed with many different scenarios since, including a 350mm/s for 4-5 hours. Also got a heavy crash on a thick medium wood plate (nylon...) as I stupidly forgot to set the Z level appropriately. The result was a ~6 cm long and 3 mm deep engraving & no harm but for the destroyed wood :)
Actually I don't really see how they really could wear out. And you could replace them easily if needed (no need to unmount your rods)

To print: I realized it was only in the scad source code: In Cura, slice with 0.1mm layers and 1.2mm walls. Top part better be 100% file, bottom part can be almost empty. Banana low temp 0.1mm 100% filled.
I recommended 0.1mm just to fight the overhang at the start, but I also added tabs on the bigger parts to make it easier. No support needed, but you may need a raft for the top/bigger parts if the rounded overhangs really nag you (did not have to as for me)

I am updating the instructions accordingly, thanks for your interest :)

Thanks Jeremie! This thing joined my personal hall of fame, with Bertho's Extruder Upgrade and Owen's Bowden Clamp.

Une petite remarque quand même : Les instructions indiquent qu'il faut imprimer les no-tabs en 3 exemplaires, et les tabs en un exemplaire, mais les noms de fichiers disent le contraire. Et comme je n'ai pas lu les instructions.... :)

Thanks & you're right, I have fixed the file names!
Au pire les "tabs" doivent pouvoir être sciés :)

All 4 sliders mounted. I just forgot how painfull the axis alignment was. For now still not good enough, i'll try again tonight to calibrate it better. BTW, i printed all blocsk at 0.2mm slice, 0.4 walls, 100% infill and then saw that the openscad file was recommending 0.1mm slice. Any chance this may have a negative impact on the axis alignment process due to some lack of accuracy?

PS: Je vieillis. Scier les tabs ne m'a même pas traversé l'esprit. J'ai juste réimprimé les pièces manquantes....

I do not think layer height could impact alignment. I was recommending 0.1 mm just to get better overhangs. It may lower a bit the wall robustness for the two horizontal screws, if the weld is between your thick layers is weaker.

To align the axis, you'll find lots of tools here (that I do not use!). My head was moving better after I changed the blocks, but it probably comes from a more precise alignment, not from the design itself. Usually I unlock all pulleys, then move the head to one corner, lock the corresponding pulleys, and go to another corner, then repeat... When you tighten the belt, you need to unlock one pulley so that the tension also goes to the other side.

Yes, that's what i usually do. I guess i may also have to loosen a bit the screws holding the head axis, just like it is recommend for the calibration when using the original wooden parts. I'm not worried, it will work, juste takes some time, as my last calibration was like a year ago :)

By the way, i just realized that my UM is more and more MoonCactus' branded (i also have http://www.thingiverse.com/thing:34785http://www.thingiverse.com/thi..., http://www.thingiverse.com/thing:25436http://www.thingiverse.com/thi... and http://www.thingiverse.com/thing:54075)http://www.thingiverse.com/thi... :-)

Robust and precise NEMA 17 steppers / belt tensioners
Locking key for Ultimaker filament feeder (aka "extruder")
Yet another rod/axis end cap (fine-tunable) for the Ultimaker

Thanks! Unlimited edition thanks to creative commons ;)

Can't afford royalties anyways:) Too bad you are not in Paris, it would have been fun to meet...

hehe, too bad you are not in Montpellier, we get much better weather here :D

True, i miss the sun here. Anyways, calibration went well (still some effort and oiling needed to reach perfection) and i'm back to printing lazing fast. Thanks again for your nice design.

And thanks for your feedback, it's always nice to know someone else is using these :)

Marvelous design. I just installed one yesterday. It feels solid and the banana is doing its work: it tightens the belt. Although my belts are still slack, because they are worn out. I stretched them too far using previous belt tension systems. I guess I should order new ones! I am definitely going to print the other 3! And probaly 2 spares, just in case.

You probably just can print additional bananas, saw them in half if needed, and stack them in the slot. Put the shortest one first, so the second one will not collapse. Else it is easy to generate longer bananas, just tell me and I will add one :)

Update: check the banana32 "long" or "huge" versions :)

Thanks I used a longer banana and the system is printing without backlash again! Many thanks for this great design.

This banana finally looks like a trustworthy belt tension mechanism. And it seems to have ripened, too. Thanks for designing this! I'm counting my screws now...

Thank you very much for sharing this with us!

I've printed all the parts, sanded the banana's a bit, and de-assembled
my UM to install the new bushing blocks.

Front, left and right parts are just fine, except the back part.
I double checked I've got the right bushing blocks on the right
rods of the UM, they are.

The back part is touching the 12mm rods and the
threated rod when the bushing block passes it.
It’s about 2mm to big toward the rods of the Z axis.

I’ve installed the wood bushing block back for now.

Ouch, that's true... I just posted a fix (v32) for this block. This time I did mount this block also, and it's something I would not like to do again and again -- you'll hate me for this!! ;-)
There is about 1-2mm gap left between the block and the vertical rods & Z screw. Thanks for your excellent & friendly feedback and sorry for this!

No problem, it can happen and no, I won't hate you.
I'll print the new part and will mount it tomorrow.
Thank you for ajusting the files.

Thanks Jeremie, It's been working good for me so far. I printed all four pairs.

One thread in the plastic stripped and I had to use a nut there.
The banana tensioning is a real treat to use and works brilliantly.

This is the kind of comments that moves me further, thanks Owen! :)

I've just uploaded a new set of STL, check the "3b" versions. I checked that KISSlicer like them better, at least I was able to see a much better gcode :)
Also reduced the chance to get hollow walls around the vertical screws for some setups.
Thanks for the feedback.

Ouch indeed. Thanks btw, you made me try KISSlicer for the first time, because of its nice path display (second screenshot). I do not understand clearly what's wrong with the orange lines though, could you tell me what it means? I had the chance so far to never get such issues with openscad, too bad! ;)

Now for your second problem, the very weird "corrosion holes" cannot come from me -- actually, I would not even know how to design such strange shapes. I just tried to thicken the thin layer left between the top of the bushing and the banana slot where KISSlicer failed to slice properly... but it started to wander like a fool in its generated path elsewhere! When I have time, I will try another CSG operator for the banana generation, as it may simplify the shape in the end and let it slice it correctly.

I'll try to contact the author about the "corroded holes". Meanwhile I suggest you try with another slicer such as Cura; or may be tweak the openscad sourcecode until it works for you (just let me know!).

The corroded paths happen when there are holes in the mesh. It's some quirk of the "signed distance field" that KS uses to generate its paths. By the way I printed all the parts and they look pretty good! Have yet to install them (don't fix what aint broke?). Honestly I don't know what happens to generate those errors but I never got it with other STLs.

I actually have another question: Have you considered positioning the "top" parts on their side? That way, the half-circle holes will be printed on the side of the shape which would eliminate the bridge (and source of bad printing) at the top of them in the current setup. You would have to flatten the side of the parts but I think it would be worth it. I did get several failed versions that lifted from the bed.

Great idea! My first prints showed no issue, but then, I also started to find the top parts tricky. Definitely will try. Also I could print the two parts together at once and re-implement loose/tight M3 (to avoid the need of an M3 drill). Thanks again :)

I also had the idea to change the wooden bushing blocks to printed blocks based on plastics which makes them of course lighter and thus providing more accuracy for the print head. Your design is already very nice but I think the belt tensioner could be improved as mike already said.

Its a very nice design. But. The belt tension is build up by pushing the belt away from the block. Hence it pushes the block away from the metal rod. It will bend a little, and will effect the overal leveling of the print place in relation to the extruder.

Not really: check how the belt escapes only at the very same place whatever the tension thanks to the two horizontal screws), so this effect is not possible. The banana only reduce the belt length without displacing the block vertically :)

I see, you are right. I printed one... I want to print all 4 of them and assemble them on my printer.

Your STL has mesh issues which prevent KISSlicer from slicing it properly. I tried Netfabb cloud and the issues persist. Any advice on how to fix this mesh to allow printing?

Could you tell me what's the part that fails? Did netfabb complain about something?
I could add more tolerance and regenerate it with openscad (which I do usually, in order to make sure to merge CSG parts), will try to check anyway otherwise

Ran it through netfabb twice and the errors are much less. Printing one now.

I failed to find any issue, even going thru netfabb webservice. Nonetheless, I added the zip file with "repaired" STL things. Did not try it though ;)

This is so cool. I was going to design one myself after getting frustrated with belt tensioning issues, but thanks for saving me the trouble :) Will print this very soon.