We’re not just cleaning the parts (although they badly need it!). One of the things we’re doing with the Bernhard robot is redesigning it as we put it back together, to transform it from whatever it used to be into a beautiful new rapid prototyping machine.
Arrangement of X, Y, Z axes
This robot has a rather unusual construction. At heart it’s a basic Cartesian platform with each axis stacked on top of the previous one – so the X axis rides on the Y axis, and the two of them ride on the Z axis. The nice thing about this is that it means the print bed gets to be stationary, so it can have a nice solid mount. The disadvantage is that the axes move at different speeds, as each one has to carry the weight of all of the parts on top of it, meaning that the axes at the bottom of the stack will accelerate quite slowly. Fortunately the Z axis doesn’t have to move quickly at all on a rapid prototyping machine, but for the other two, speed is quite critical. So without a doubt, the Z axis is going to be the the one that carries all the other ones.
Nonetheless, the X axis will have to carry the entire Y axis assembly around with it. This probably means we’ll need quite a powerful motor to drive one of the axes. On the upside, the print bed is stationary and therefore can be very large, with a stiff and precise mount, without any concern for mass. That’s good because the mass of the bed scales as the square of the axis length, whereas the mass of the axis increases only linearly. So while it may not be perfect, it is a decent architecture for this size of printer (400 x 400 x 400 mm).
The original X and Y transmission stages on Bernhard
The Bernhard robot has another interesting construction style: Even though the axes are all mobile, all of the motors are stationary, mounted directly to the frame. To accomplish this, the motors each drive a square rod, which works sort of like a spline to transmit torque. Special pulleys with square holes slide back and forth along the rods, so that no matter where the axes are, they can receive power from the motors. In fact, to get all the way to from the frame the X axis, the rotation is transmitted from the first square rod through a bevel gear coupling to a second square rod, to another pulley. It’s quite an elaborate setup!
The advantage of this construction is that very heavy motors can be used, since the extra mass won’t slow anything down – the machine came with three heavy-duty NEMA 34 motors mounted on it. Unfortunately though, each step in the transmission adds a little bit of backlash. That might not be so bad on its own, but due to the aging hardware, the square holes are fairly worn out, so it’s quite a significant problem. And to make matters even worse, pulleys square holes are not so easy to replace, since it’s not a standard part. (And they don’t sell square drill bits at Home Depot!).
Lastly, although the Z axis doesn’t have to move quickly on an RP machine, it has to move with extreme precision. Layers are just fractions of a millimetre thick, and keeping a consistent thickness is very important for inter-layer bonding and decent print quality. The Bernhard robot drives all three of its axes with timing belts. Timing belts are great for many things, especially smooth and high-speed linear motion, but they suffer from two main drawbacks. The first is that they’re not a high-stiffness drive, because even though the belts are reinforced with stiff cables, they need to be very thin to remain flexible. The second is that they don’t have much built in mechanical reduction, because the minimum pulley diameter is limited by the minimum bend radius of the belt. You can always gear it down to get the required reduction, but each gear in the train adds to the backlash, and also to the cost.
So what is to be done to solve all of these problems?
The main problem is how we’re ever going to find replacement square-hole bushings for the transmission, and how we can cut the backlash down to an acceptable level. Fortunately, from the RepRap forums I came across the EvaNut technique, wherein Delrin leadscrew nuts are directly cast onto the leadscrew thread. Why shouldn’t the same technique work to get form-fitting square bushings? These can then be secured inside standard timing pulleys with a pin or a setscrew.
On that note, why not adapt the Z-axis to be driven with a leadscrew? Leadscrews can have a significant built-in mechanical advantage (eg. one full revolution = 2 mm of motion, vs ~30 mm with a timing belt). They aren’t as efficient for moving at high speeds but that’s okay for the Z-axis. The EvaNut would work well for this too, and while I’m a little skeptical of its claimed zero backlash, that wouldn’t even matter since the Z-axis moves in one direction only during a print.
Since the Z-axis is already fully constrained (overconstrained, in fact) by the two linear rails, the trick will be to make sure that the leadscrew doesn’t introduce any undesirable constraint to the motion. This might not be not too hard – milling a flat across the nut allows it to be mounted with a simple piece of thin sheet metal, making a sort of “blade flexure”. This is very stiff along the Z-direction, but flexible in the thin direction. It might be better still if it had a 90-degree bend, to let it flex in two directions, but that might not be torsionally stiff enough (the nut has to resist the twisting force from friction with the screw).
Proposed leadscrew setup for Z axis
With a slow, leadscrew-driven Z-axis, there’s very little drawback to putting the Y-axis motor on the moving Z platform. The extra mass of the motor won’t slow anything down, and it cuts out two backlash-inducing stages in the transmission (square rod + bevel gear train). The motor itself can be fairly small too, since this is the lowest-mass axis. The difficulty is just in finding an adequate way to mount it, because the Z pillow block wasn’t designed with a direct-drive motor in mind, and has no conveniently available mounting holes and a scarcity of surfaces in which new ones could be added. However, there ought to be space for some screw holes between the two linear ball bearings, above and below the rail… More updates on this later!
Next post: Planning a print surface