Skip to content

Motion System

Motion System


Discord forum thread: Motion System License: CERN-OHL-S-2.0


The motion system of the Pipettin Bot consist in a few motors, pulleys, and belts to achieve motion in 3 cartesian axes (i.e. X, Y, and Z).

The motion system is divided in 2 parts, with 3 linear actuators in total. There is the "XY Axes Linear Actuator", and then the "Z Axis Linear Actuator", mounted on top.

Throughout this section you will find general guidelines for building the Pipettin Bot's motion system, such as it's drawings, assembly instructions, and other options you could consider.


The motion of the robot can be manually controlled through GCODE or nicer frontends, such as Mainsail (referred to as "the joystick" elsewhere).


Do not move/touch any linear actuator while the robot its working or it can cause an injury to the user, damage the robot, or cause mis-calibration.

This last issue may not be apparent at first sight, but must be checked after a crash.


Motion system with the GT2 transmission belts on, mounted on the structural frame. Note that it's coordinate system follows a left-hand rule, which is heresy, but we can blame frontend developers for that :P.



The motion system is mounted on top of the Structural Frame, so if you haven't done it yet, go for it 😄.

The motion system has two basic structures: the XY-Axes actuators, and the Z-Axis actuator.

The following links point to the assembly guides for each one, and they will be referred to when relevant in the instructions below.


We recommend building the XY-structure first, followed by the Z-structure. See instructions below.


The instructions here are for an old version, and has already been replaced.

Documentation is pending, models can be found here:

Step 1: Gather all the motion system parts

Parts and materials:

3D printed parts:

  • Z-axis
  • 1x CARB-XZ-ST.V3
  • 1x CARB-XZ-PL.V4
  • 4x SEP-5-10.2.V1

  • XY-axes

  • 1x CARB-XY-PU1.V2
  • 1x CARB-XY-PU2.V2
  • 1x CARB-XY-ST1.V3
  • 1x CARB-XY-ST2.V3
  • 8x SEP-5-20.V1
  • 1x SEP-5-8.1.V1
  • 1x SEP-5-3.1.V1
  • 1x SEP-5-7.8.V1
  • 6x SEP-5-10.2V1
  • 6x SEP-5-4.V1
  • 2x SEP-5-5.8.V1
  • 2x SEP-5-10.V1
  • 8x SEP-4-27.4.V1
  • 4x SEP-5-6.2.V1
  • 1x CARB-XZ-PL.V1
  • 1x CARB-XX-PL.V1
  • 8x 2020_DOUB_TWLO_M4.V1
  • 4x CARB-Y-PL.V


CARB-XZ-PL.V4 is the only part the XY-axes and the Z-axis share. The hole motion system connects the Z-axis linear actuator and the XY-axes linear actuator through this part.

Of-the-shelf parts:

  • Z-axis

  • 2x M5 screws x 45mm

  • 4x M5 screws x 35mm
  • 2x M5 eccentric nuts
  • 4x M5 nuts
  • 1x THSL Ø8 8x4 threaded rod (define length)
  • 1x Pulley GT2 for THSL threaded rod
  • 1x Pulley GT2 for NEMA17 stepper motor
  • 1x Closed GT2 belt 280 mm
  • 1x KFL08
  • 2x M4 screws x 20 mm
  • 4x M4 screws x 30 mm
  • 4x M4 screws x 40 mm
  • 4x M4 square nuts
  • 8x M4 Washers
  • 2x Load Cell Weight Sensor HX711
  • 1x M3 screw x 5 mm
  • T8 Flange Lead Screw Nut Ø8 8x4
  • 1x NEMA17 Stepper Motor
  • 4x M2 screws
  • 4x V-wheels 11 x Ø24
  • 20x40 V aluminum profile

  • XY-axes

  • 16x M3 screws x 40 mm
  • 16x M3 screws x 50 mm
  • 8x M3 screws x 20 mm
  • 14x M3 nuts
  • 16x M4 screws x 12 mm
  • 16x M4 nuts
  • 14x M5 screws x 40 mm
  • 14x M5 nuts
  • 12x M5 eccentric nut
  • 1x 2040V profile x 490 mm
  • 3x Stepper motor
  • 2x M5 Rolling-element bearing
  • 4x GT2 16T pulleys
  • 3x GT2 Timing Belt
  • 1x 5mm x 16mm Axis bar.
  • 14x V-wheels 11 x Ø24

Tools for assembly:

  • Alen Wrench screw drivers:

  • 5 mm

  • 4 mm
  • 3 mm
  • 2.5 mm
  • 2 mm
  • 1.5 mm
XY: parts, tools and materials


Z: parts, tools and materials


Step 2: Motion System Machining Instructions

Parts and materials:

  • PLA filament
  • Aluminum 20 x 20 V profiles.


  • Seals
  • 3D Printer
  • Band-Saw
  • Screwdriver


  1. Follow the XY-Axes Machining Instructions
  2. Follow the Z-Axis Machining Instructions

Step 3: Assemble the structure


  1. Assemble the Z-axis.
  2. Assemble XY-axes.

Expected result:


Insert a picture of the final model or construction.


As mentioned before, Pipettin Bot's motion system consists of two linear actuators: the XY-axes linear actuator and the Z-axis linear actuator.

The XY-axes linear actuator functions as a guide and support platform for the X-axis carriage. The X-axis carriage is responsible for movement along the X-axis.

The Z-axis linear actuator is fitted to the X-axis carriage. It is responsible for maintaining the positioning of tools and providing movement along the Z-axis. The Z-axis also provides movement for the tools, which are connected to the Tool-changer.

For movement along the Y-axis, the actuator is attached to the structure using Y-axis carriages. These carriages are supported by the upper profiles of the Structure and connected to the actuator via brackets attached to each end of the actuator profile.



Daily, it is essential to clean the motion system to ensure the proper functionality of its moving parts. Failure to do so may result in potential sticking. Additionally, it is important to verify the correct alignment of the structure using a spirit level and a square.

If any 3D-printed components are broken or deformed, they can be reprinted.

Regularly, you may check the condition of the timing belt, including assessing belt tension, wear, and potential damage.

Also, the pulleys need to be inspected on a regular basis. They should be cleaned and free of damage. If any signs of damage are observed, the pulleys should be replaced to prevent accidents.

The stepper motor does not require maintenance, as it does not have brushes that need replacement.


You can build the motion system without building any other part of the Pipettin Bot previously. However, you need to have the correct measurements of the structure to be able to mount it to those parts. We recommend to follow the steps of the assembly guide.

The motion system is connected to the rest of the robot through its joints with the Y-carriages. In turn, this connects the XZ-axes to the robot.

It uses a 20x40 V linear rail, but it can be made with a 20x20 V linear rail (if you use it, you will need to adapt the 3D models to the new linear rail).

Previous versions

The previous version of the robot (Pipettin Bot V1) employed template rods as axes to facilitate its movements.


The vertical axis of this setup exhibited excessive wobbling, which hindered precise movement. We think that the following factors might have caused this issue:

  • the use of LM8UU bearings with a lot of play.
  • the use of template rod in the Z axis. It was very flexible.

We tried disassembling the robot and making probes manually to test this theory:


To address this, in that previous version, we opted to implement 20x40 V profiles. These profiles are also cheaper an easier to buy than rods in Argentina.

We also analyzed the possibility of adding a third template rod, to eliminate one degree of freedom. However, we finally leaned towards a complete redesign and decided to work with 20x40 V profiles.

The position of the tool-changer motor added other factor to increase the instability. It performed as a pendulum. For this, we redesigned the Tool-changer mechanism.

The design of this part incorporated a single stepper motor and a pulley, both of which are oriented perpendicular to the profile on the X-axis. The brackets were carefully designed to fit the dimensions of the GT2 16T pulley.

Initially, we attempted to create a model using a lone bracket for the motor and another for the pulley. These brackets had a width of 10 mm to fit both the pulley and the motor, and a width of 3 mm to match the 20x40 V profile. However, upon printing and assembling them, it became evident that these models lacked the required strength and rigidity necessary to effectively support the overall structure.

Broken models:


To enhance the rigidity and durability of the brackets, a decision was made to increase their width to a consistent 10 mm. Additionally, an identical extra piece was incorporated to each grip, enabling them to provide support to the 20x40 V profile from both sides.

img_20230713_151005_853.jpg img_20230713_151048_473.jpg

The pieces were generated using FreeCAD, with the intention of optimizing them for 3D printing. This approach was chosen due to its cost-effectiveness and the convenience it offers in terms of making edits based on your robot's requirements.


The latest versions of all files are available at this link.

You can also find the models of each linear actuators in the following links:


These 3D-printed parts were designed in FreeCAD 2.1 and 2.0, then exported in the FCStd format for slicing. They were printed on an Original Prusa i3 MK3 using STL files. Most pieces were inspired by Jubilee's designs for compatibility between these CNC machines tools.

If you want to dive into file formats visit here.