Lightweight agile plotter
Published: 2018-11-07 22:39:55

Project repository: Git

This entry was created mainly as a guide when assembling this machine. I was looking for some simple XY positioning system design and I found some inspiration in a few projects, but with closed or horrible sources what matters when you want to clone it and modify. Machine is intended to work with narrow variety of tools like drawing pens, small cutter knifes or lasers. CoreXY kinematics scheme allows for higher acceleration and speeds values because of all significant masses standing in place. Plotter from this design can be mounted to to any flat work surface like tables, boards etc. As always I try to keep designs being simple to fabricate by using widely available parts and FFF 3D printing, which become affordable and accessible for every hobbyist.
Aside of printed parts there are some vitamins:

  • 2x stepper motor, flange nema17, in standard configuration up to 50 mm long
  • 2x endstop micro-switch
  • 2x M10 threaded rods, length 420 mm
  • 4x M10 washers and nuts
  • 4x 8 mm smooth rods 400 mm
  • 4x M4x30 screw
  • 5x M4 nuts
  • 10x M4 washers
  • 4x M3x30 screws
  • 9x M3x15 screws
  • 8x M3x10 screws (for motors)
  • 8x M3 washers
  • 4x M2.5x10 screws (for switches)
  • 5x 604zz bearings
  • 1x MXL / GT2 belt 8 mm wide, 1700 mm long
  • 2x MXL gears for 5 mm axis, 16-20 teeth - there is a option to use printed ones instead.

Work area can be adjusted by changing smooth rods length (by the same value per axis, also M10 rods for X), be careful when exceed 500 mm per axis because from this point whole mechanics might start to bend too much while working. Of course belt length must be changed adequately as well. Scad files are parametric, some of the design parameters like belt profile, rods dia and some holes spacing can be changed (settings.scad file), default ones are optimal and will work well anyway.


Start by gathering 3d prints:

  • 1x belt_clamp.scad
  • 2x carriage.scad -> both halves are similar except holes for nuts and bolts, set by parameter in scad code module function call.
  • 2x x_end.scad
  • 1x y_end1.scad
  • 1x y_end2.scad

Attached assembly.scad file might be helpful to get an idea and closer look on how plotter is constructed.


Put together both axes by sticking smooth rods into their holes, any guide rod have a pair of linear bearings. Put some grease into bearings balls, before sticking them into. I have been using hardened smooth rods all of 400 mm length whats gives me 280x280 mm of usable work area.


Both plastic parts on X axis (basis where motors are mounted) are reinforced together with two M10 threaded rods, slightly longer than guide rods (for nuts and washers on both sides). Screw those parts and adjust for equal distances between ends.

 Linear rods are clenched in place with M3x20 screws and nuts opposite, do not use too much force for tightening. Be gentle while screwing plastic parts in general.


Assembling the Y axis is analogously similar, slits for belt and belt bearing in both plastic Y-ends are pointing towards the same direction, downwards (on picture above it is upwards). For Y-end1 a 604 ball bearing for belt guidance needs to be mounted by M4x25 screw, Y-end2 needs belt clamp screwed with M3x15 which will hold belt in intended place.


Put carriage frame halves onto its linear bearings nests, they are screwed together by 4x M4x25 and 4x M3x25 screws. Start from M4, there are four 604 bearings for belt in between plastic parts. Those bearings are mounted without any additional washers for separation. Finishing step is adding missing four M3 bolts. From there you should also consider where homing switches should be, they are mounted on this 'tooth' placed inside side cut. By flipping the carriage part in its place switch can be directed to opposite side.

 Belt bearings configuration in carriage before screwing, showed washers are unnecessary (updated design).

 Assembled carriage, everything should slide slightly and smoothly, just under the influence of gravity itself only. Note the homing micro switch screwed by two M2.5 screws. Wires can be soldered later on last steps.


Bottom side of the carriage assembly.

From this step motors can be mounted with 4x M3x10 screws and wider washers. Belt tension can be adjusted later on by changing motor position, before belt montage keep motor possibly close to the machine center. For printed pulley montage there are thrust screw (without head) necessary. If motor has cable plug socket, remember about directing it into accessible position. In default setup motors can be up to 50 mm tall, for bigger ones design can be changed.


Toothed belt passes mechanic parts as shown on schematic picture above (red lines). Belt ends are pressed and keep in place by clamp in y-end2 and grooves in y-end itself. Provide correct tension and screw the clamp. Exceeding length might be cut off, but leave some cm for reserve.

 Finishing touches, wiring on the last stage. Solder wires to homing micro-switches and secure them with thermo shrinkable sleeve.

 Proposal on how to mount the cable for endstop switches, it should not tangle on carriage movement and should not bend in just one place. For motor cables the matter is simple, just choose where the electronics board is going to be and secure them with mounting straps.

Work tool is mounted to Y-end2 by two 40 mm spaced M3 screws. Many electronics boards solutions can be utilized to control the steppers, including those described on this page, from different project. Pen can be lifted by easy to adopt PWM steered servo or solenoid.

Note: this article needs to be continued. I'm publishing this documentation mainly because of other project where it is used.

Add a comment

For problems related questions please use issue tracker on git project repository (if any). Tags in comment will not work for now.