As part of the CNC Mini Mill project, I needed to beef up the Z axis on the hypercube. If this is all news to you, check out the rest of the CNC Mini Mill series here.

The original hypercube design has a print bed which is supported only at the back which makes it a cantilever. This means that forces exerted downward on the bed are resisted by a twisting moment generated by the rear linear bearings. Because it's being supported by a moment and not just by linear forces, the resisting force gets weaker the further we are from the pivot. During a normal printing operation this is fine, because the extruder doesn't exert any meaningful force downward on the bed, but during a milling operation this isn't true. To make things doubly worse, this effect isn't uniform across the bed, with a downward force deflecting the bed by twice as much at the front edge, when compared to the middle.

Electronically coupled Z-axis with two drive motors

A common approach to fixing this problem is to go for two z-axis motors, just like with the hypercube evolution, and this is how I used to have the printer set up. The leadscrews in this design (two of them) are electrically coupled, which means that the electronics is responsible for keeping them in sync. If they get out of sync then the bed won't be level anymore which is bad. I've taken an alternate approach, to combat against skipped steps from either motor, which could be more likely under the higher loads of CNC milling. Rather than electronically coupling the axes, I've mechanically coupled them using a single belt, arranged in a loop, and powered by one motor. This means that if the drive motor does skip then all the leadscrews will stall together and the bed will remain flat.

The design above also shows that the bed is stabilised by two leadscrews (front and back), and two rails (both at the back). The bed levelling is done using the normal screws in the corners. This stabilises the front to back deflection quite nicely, but it's more difficult to stabilise the left to right deflection. To fix this, I've got for three leadscrews, two at the front and one at the back. This gives us three adjustment points, and allows us to to bed levelling of the whole build platform and not just the bed (opening up the possibility to do milling operations on a bed which is directly attached to the Z carriage, and one that doesn't move with the bed adjustment screws).

Three Z axes in parallel

Tension & Grip

In the first iteration of this design, I was using printed GT2 belt pulleys and a home made loop-belt made from a old open-ended belt spliced together. This clearly wasn't great. Once a full 1220mm closed loop belt arrived, along with some milled aluminium GT2 pulleys things got a little better, but still the drive would slip during fast moves. The problem was tension and grip.

When using pulleys the amount of force the a pulley can extert on the belt (or visa versa) is proportional to the contact area with the belt. This means that the more the the pulley that the belt covers, the greater the force we can transmit. In particular I needed more of the drive pulley on the motor to be covered, because this was where most of the problems were coming from and only about 90 degrees of the pulley were initially covered.

By adding a second idler pulley between the front-left axis and the drive motor, I've introduced both an additional 90 degrees of grip on both, but also introduced a way of tensioning the belt in an easy to access place. Winner 🙌.

Just look at all that grip. 180 degrees of contact on both the drive pulley and first axis.