In this post, I will be writing about assembling linear rails, carriage block, effector, stepper motors, electronics control board (Duet Wifi) and board mount.

I used linear rails instead of wheel carriages. The jury is still out on which yields better results. I prefer linear rails because they are precise (assuming you have a good quality one) and used in many other precision machines (CNC and alike). I believe it is easier to have good lubrication between linear rails and carriage block than between wheels on v-slots. Moreover, for my triangular extrusion, it takes a bit more effort to make the motion systems with wheels. Instead of buying from aliexpress, I got the linear rails and carriage blocks from Germany (link below) but the company which provides them is from Taiwan and it is called Chieftek Precision Company (CPC). It is a bit more expensive.

Linear Rails:

Linear Rail Carriages:

M4 Bolts for fastening the linear rails with triangular vertical extrusions:

Springloaded M4 T nuts:

As a cheaper and smarter alternative, I would suggest getting MGN12 or 15 rails and corresponding carriage blocks from robotdigg. Take the steel balls from the blocks, replace them with good quality ones, bathe them in lithium grease, pack them again into the blocks. Make sure you get stainless steel rails to avoid corrosion. Also, lubricate them with 68 Cst viscosity oil or very close to it. 100Cst also works fine. It will help you to have a smooth and precise motion. This option will save you money.

For mounting end stops at the same height from the top, I used a 120mm spacer. The spacer is butt against the 90 degree bracket. The spacer is fixed to vertical extrusion with a small screw and t nut.


Here is the CAD file for the spacer:

Spring loaded M4 T-nuts were placed in the extrusion slots for fixing the linear rails. Before using the rails, please clean the oil on the rails with a micro fibre cloth, then clean with a solvent. The linear rails were butted against the spacer. M4 screws were placed in the 60mm pitch holes of the linear rail. The other end of the screws thread into the T nuts for securing them with vertical extrusions. At the bottom of the linear rails, I used a small stopper so that the linear carriage blocks do not slide off the rails during assembly. Once the rail is fixed, now you can lubricate with 68Cst or 100Cst oil. I also fixed the motor mounts in the bottom plate. Please measure the distance from the face of the vertical extrusion to the vertical face of the motor mount. It is important to place them at a correct distance otherwise the belts will not be parallel introducing errors.

I also fixed the motor mounts in the bottom plate. Please measure the distance from the face of the vertical extrusion to the vertical face of the motor mount. It is important to place them at a correct distance otherwise the belts will not be parallel introducing errors.


Here is the CAD file for the Linear rail lower stopper:

I bought NEMA 17 stepper motor mount from OMC stepper online, here is the link:

For attaching the motor to the mount, I did not have smaller screws on that day. I was a bit impatient so I printed some spacers to fix the stepper to the mount. I used GT2 20 teeth pulley on the stepper motor shaft and 2mm pitch belt.


At the top end of the linear rail, I placed the end stop holder which butts against the linear rail and fix it with M4 screw and T nut.

Being a newbie, I was so enthusiastic that I forgot to use my engineering common sense/brain. When I took a step back and try to do things carefully. I had to redesign many parts I described in this blog.

I found that following design of idler pulley did not work well and it had lot of friction. It was slipping terribly. You can watch the video here (youtube link – will be updated soon). I redesigned the idler pulley part and it is working well for more than 5 months – will post the design soon and update the blog.

I had some wobble with the end stop holder, so I remixed a model from dc42 and used it. Here is the link for the stl file in thingiverse (will update soon).

I suspected some tilt in the carriage and it might be due to the printed magnetic arm holder (the printed part which attaches to the carriage), so I changed it to aluminium. Here is the .dxf file for it, you can use it to either water jet cutting/laser cutting.

Soon I will update the blog with the parts I am using which are working fine for over an year, till then please ignore the below section. Still if you want to know how a bad design looks feel free to look at the picture.

For the belts to move the linear carriage block, we need to mount the idler pulley and printed carriage belt holder.

Here is the CAD file for the endstop holder. I used the standard Makerbot V1.2 endstop switch.

I had to do some filing at some places to fit the switch.


If you tighten the screw properly with the end stop, then they won’t move. All the linear rails were placed at equal distance from the top using a spacer. When the end stop holder is butted against the linear rail and fitted with M4 Screw, we can ensure that the end stops are placed at correct distances with minimal errors. It will help in getting a good calibration result.

Here is the STL of the printed part to mount the idler pulley:


For idler pulley, I used two MF 126 zz bearing (flanged) and some washers to avoid movement. The main reason to use this bearing is that with the flange, the belts won’t move. The other reason is the outer diameter where the belt rides on is almost same dimension as GT2 pulley. Choosing the same diameter is important to keep the belts parallel. Here is how the MF 126 ZZ bearing looks like.


Image Source:

The inner diameter is 6mm. I used M6 bolts and T-nuts to fix the assembly to the vertical extrusion. You can adjust the M6 bolt and nut to slide the mount along the height of the extrusion to adjust the belt tension. You can see that I used two washers under the head of the M6 screw and one on the back side of the bearing assembly. Make sure the bearing rotates freely.

The printed part which attaches to the linear carriage block serves two purpose:

(1) As a belt holder, which transmits the motion to the carriage block

(2) To hold the magnetic arms at correct spacing

I used 60mm spacing for the 360mm magnetic arms. The reasoning behind 60mm is that for better effector stability, the arm spacing is between 1/7th to 1/5th of the arm length. I chose 1/6th. This is more about arm spacing in the following wiki page:

More the arm space, better the stability but it leads to large effector and reduced build diameter, so I chose 60mm as my arm spacing. Here is the STL for my carriage block printed part:

Here is the link for OpenScad original source file from Ian Lee in Github:

The file name is magnetic carriages.scad and it needs configuration.scad file too.

I have modified the file based on the hole spacing of my carriage block (26 mm spacing in both x and y directions)

Here are the modified OpenScad files:!AsIRjBKI2lbxngUh5zaXfqyw-1q8

Here is the picture of printed part for carriage block. They have nut traps for Haydn Huntley’s magnetic ball studs:


I assembled the carriage block on to the rails assuming it will have enough lubrication, It’s my bad. My suggestion is to carefully open the carriage block and lubricate the balls in its place (do not take them out, it is a PITA to put them back) with lithium grease for ball bearing. Here is how it looks:


Because of not having enough lubrication, I had slipping problem which affected my calibration and made me go around in circles for some time. It never hurts to lubricate a bit more, so do it while you are assembling rather at later stages.

After you have mounted the carriages, check the belt tension, add the small spring type belt tensioner and prevent the slipping of belt by using zip tie.