Designing the vertical axis was focused on reusing a THK ballscrew assembly I already had. This ballscrew required a bit of reconditioning before use, and no longer had a datasheet/drawing on file from the manufacturer, but I found a close approximation from which I could estimate numbers.

This particular ballscrew assembly has a dynamic load rating (axial) of 3.7kN and a stiffness of 120 N/μm, so at least it won't be the thing that breaks first.I also had on hand a number of Misumi-brand LMU8 linear bushings and 608Z bearings, so the desk rails would continue to be the 8mm diameter steel rods (though I swapped out my original rods for 400mm long hardened-steel ones). Coincidentally, the free end of the ballscrew has a diameter of 8mm.The unibody carriage was machined from a single piece of 6061-T6 rectangle stock. Since it was the most complicated component to machine, I tackled it first.

Carriage machine drawing: manual mill and bandsaw

The most critical dimensions of the carriage were parallelism and symmetry of the bushing-throughholes relative to the ballnut pocket, followed by surface flatness for the plane attaching to the desktop.

To ensure that the ballscrew dictated carriage positioning vs the rails, I bandsawed flexures into the carriage - one allows compliance in yaw, and the other in roll. Careful positioning in assembly would take care of pitch. It turned out that these flexures were unnecessary; the rails themselves were compliant enough.

Shaft compliance of 8mm rails

Bushing clearance holes were oversized by 0.05mm to provide a slight interference fit. Bushings were first added and held in place with retaining rings; after rails were inserted in the assembly I fixed the bushings in-place with Loctite 648.

The ballnut pocket took advantage of the preexisting hole pattern, although after machining I realized I had forgotten to make one set of holes tap-clearance instead of screw-clearance. I fixed my mistakes by drilling two access-holes and dropped M5 nuts in the bolt-paths (oops).

Bushings with retaining rings

Carriage with ballnut in place

The other major reuse-element was the motor. Final desk is going with a MachMotion 23-size stepper instead of the previous Nema 17-motor, which allows me more freedom in friction and weight loads on the ballscrew. Torque required to drive a ballscrew is:

where F = load (N), R = ballscrew lead (mm) andη = efficiency (assume 90% for ballscrew). For an expected desk axial load of 1000N and a ballscrew with a 5mm lead, torque required should be somewhere around 0.89Nm, which this motor can supply. I also don't need to worry about actuator resonance of the ballscrew... any reasonable speed running this desk will be under the critical speed.

I needed to make a motor mount that coupled to the ballscrew driver block. The motor itself is coupled to the driveshaft via a flexible coupling, so precision concentricity wasn't strictly required. Clearance hole patterns from both the motor and the driver block were drilled into a piece of angle stock, and the motor got bolted in place after attaching the coupling. This assembly method minimized overconstraint, though enough was present that the motor ended up being louder than necessary.

You might notice funny white blocks that got added the carriage. After the first desk-expo on May 10 (documentation trailing behind project schedules once again), I decided that despite originally not caring about deflection in yaw the amount I got was a little ridiculous. The purpose of these HDPE skids (from leftover kayak plastic!) was to act as hardstops against the wall to minimize desk rotation.

There was pretty minimal planning before machining these skids and adding them in - just measuring required distances on the desk with a tape measure and matched-machining a pair to ensure dimensions were the same.

The motor coupling I got ended up being a millimeter too large for the ballscrew shaft, so I shimmed it with a drilled-through, bandsaw-slotted bushing.

Bushing-shim, coupling, ballscrew shaft

I made a support block to match the commercial driver-block on the ballscrew assembly. This block held a 608Z bearing which would then press against the ballscrew shaft when bolted to the wall plate. The only critical dimension here was making sure the distance from the bearing center to the wall was the same as on the driver block. Everything else could be aligned in assembly.

Machine drawing for shaft-support block

Shaft support block with bearing

In the middle of assembling everything I decided I wanted to flip which side of the driver block was contacting the wall, which then made the support block dimension slightly off. I got two washers and pressed them into the pine wallplate with a vice until they were the correct height.

I made a set of 4 mounting blocks for the rails, which clamped them to the wallplate. These blocks were bandsawed in half after they were machined.

Drawing for rail-mount blocks x 4

A stack of blocks

Everything was first horizontally assembled on the table to position holes in the wallplate, then bolts were fed through the holes, wallplate was screwed to the wall, and everything got reassembled in-space.