Writings - 1D Linear Rail Motion System

Niek Sanders, May 2026

When first exploring 3D printers a few years back, I planned to build my first printer entirely from scratch. I researched, found great resources, and sketched designs. However, it became clear that fabricating brackets and mounts for the build without access to an existing printer was beyond my skills at the time. I ended up buying a cheap Ender 3 instead.

In the years since, I acquired enough odds and ends to build motion systems, including some cheap linear rails, a Bigtreetech SKR Mini control board, and a NEMA-17 stepper motor. I decided to whip up a one dimensional motion system.

Initial prototype motion system build on plywood.

The prototype was layed out on some scrap plywood. For simplicity, the belt travels entirely above the rail rather than looping beneath it. Hard stops prevent the carriage from coming off the rail ends. After fitting the stepper motor with a JST-XH connector, it plugs it directly into the SKR Mini board. My trusty Thinkpad T480 successfully controls the motion via gcode sent over USB.

Two things stood out to me. First, the bulky assembly cluttered up my office. Second, the carriage at speed caused the plywood to flex and wobble. I decided to tackle both problems by tossing the plywood and building directly on the rail instead.

My design has four prints. The stepper motor mount attaches to one rail end. It's lop-sided to bring the motor face close to the belt path, reducing the lever force on the drive shaft. Three rounded ports give access during assembly. The mount includes integrated bumpers which I originally intended to cover with felt.

3D printed parts iterating towards a better design.

The other rail end has a simpler print, connecting in turn to the idler pulley mount. Slots on the idler mount adjust the belt tension. In the final version, I put the aluminum idler pulley on a shoulder bolt, sandwiched between shims to keep the pulley bearing from rubbing against the mount walls. This moves really freely but leads to a finicky assembly process requiring tweezers. It's definitely something to fix if I ever iterate further.

Here's the final version:

Final motion system built directly on linear rail.

The only other thing I'd really like to improve is the plate mounting the belt to the carriage. It just seems inelegant. But that's an exercise for future me.

>>> Writings