Saturday, July 22, 2017

UMMD Belt Lifted Z Axis Design, part 3

I decided that two equal length belts would be better than the single long belt. The two belts will stretch equally, keeping the bed level under load.

Complete Z axis rev 3 design.

I put a longer shaft on the worm drive, added pillow block bearings and two 36 tooth drive pulleys to both ends of the drive shaft, finalized designs for the belt clamps and the Z=0 and Z max limit switches, and ran more tests.

Close-up CAD rendering of the bottom of the Z axis. The switch on the left is the Z max limit switch that gets bumped by the belt clamp on the left side of the bed support. Orange parts are printed in ABS. This is not the final belt clamp design on the left side- a ramp was added to bump the roller on the Z max switch.

Belt Clamps

I experimented with different belt clamp designs as I developed the three different versions of the Z axis. In the end it came down to a choice between two designs.

The first design used printed teeth to engage the belt's teeth.

The second design used a short segment of belt to engage the belt's teeth.

I tried pulling on the belts when they were inserted into the clamps and found that the first design tried to flex open much more than the second design, so I went with the second design, printed in ABS to withstand warm temperatures inside the printer. Both clamps have metal plates preventing the belts from migrating out of their slots.

Z max Switch

I used an industrial surplus snap action switch that I found in a box at the makerspace and printed a mount using ABS. It attaches to the frame using a single t-nut and can be moved up or down by sliding it into position in the slot in the frame. It is positioned to stop the Z motor when the bed gets within about 1 mm of the bottom of the Z axis.

Z=0 switch

The Z=0 switch determines how high the nozzle will be above the bed for that critical first layer. There are two common methods for adjusting the Z=0 position. First, oldest, and most common is a simple screw that bumps a switch telling the controller that the bed is at the Z=0 position. More recently, the proliferation of poorly designed and built printers has been enabled by autoleveling that attempts to compensate for unflat, unlevel beds and automatically sets the Z=0 position. Yuck!

The problem with the screw adjustment is that when you need to adjust the Z=0 position, the threads of the screws commonly used are much too coarse. You might need to adjust the bed position by 50 um but the bed will move by 700-800 um per revolution of the screw. That means small adjustments have to be made using tiny, fractional rotations that are hard to judge, usually resulting in overshoot.

Z=0 switch action. The screw pushes the lever, the cam bumps the switch, providing about 8:1 reduction in screw pitch. The small square block is a magnet that keeps the lever in contact with the end of the screw. The metal bracket screws to the right side Z axis belt clamp.

Top End of the Z Axis

The pulley plates at the top of the Z axis were reused from the rev 2 design. Two 5/6-18 carriage bolts hold each of the 1/4" aluminum plates just above the ends of the linear guides. The pulleys, pairs of stacked F608zz bearings, are screwed to the plates using shoulder screws and a couple nylon washers as spacers. The bed support shelves are cut from 1/4" thick aluminum L stock and are screwed directly to the bearing blocks on the linear guides. I originally tried 1/8" thick L stock but found it too flexible- when I had to apply some force to remove prints, the bed moved more than I liked (it would probably be OK when printing, the movement just bothered me). The left side belt clamp is sandwiched between an aluminum plate (barely visible in the photo) and the bed support shelf. The aluminum plate covers the belt slot in the clamp and prevents the belt from exiting the clamp.

Top of the Z axis on the left side. The bed support shelf is cut from 1/4" thick aluminum angle stock. The belt clamp is printed ABS. The pulley is two stacked F608zz bearings mounted on a 1/4" thick aluminum plate using a shoulder screw. the belt clamp has a ramp that bumps the roller on the Z max switch at the bottom of the Z axis.

The right side is almost the mirror image of the left side, except that the belt clamp is sandwiched between the Z=0 switch bracket and the bed support shelf. You can see that assembly better in the video, above than in the photo, below.

Top of the Z axis on the right side. The Z=0 adjuster screw mounts on a piece of angle stock that holds the belt clamp on the bed support shelf.

Belt Stretch

A lot of people won't use belts to lift the Z axis because they worry about the effect of belt stretch on the print quality and accuracy. I was a little concerned, too, until I did some tests and calculations.

But what about that 42 um stretch? If you're printing in 250 um layers, that's 16% of a layer thickness. That's got to have some effect on the print quality, doesn't it?

Nope. None at all. That stretch doesn't get applied per layer, it is applied per kg of print mass.

So the absolute worst case stretch in any one print layer will be 1.18 um (how often do you cover the entire bed surface with plastic?). That error is so small it will be masked by other, much greater errors such as the variation in filament diameter, frame and guide rail flex, and other imperfections in the printer mechanism. Assuming everything else is perfect, that single layer will start out 250 um thick and will end 251.18 um thick. As the print mass grows the errors will accumulate and a 1 kg print will theoretically be 42 um taller than the design size. If you need to worry about an extra 42 um of height in a 1 kg print, you shouldn't be using a 3D printer to make whatever it is you're making!

TLDR: belt stretch in this belt lifted Z axis doesn't matter, and it's hard to imagine a design where it would.

Final note: the drive pulleys and pulleys at the top of the Z axis are carefully positioned so that the belts run parallel to the Z axis guide rails.

Cost

I never priced out a double or triple lead screw version of the Z axis, but here are the prices I paid for the parts to make this one.

12 comments:

It looks like you are using belts with a steel core, as that is usually what the white ones use. You will need to be careful not to use too small a bend radius with these, as if you do the steel core wires will break. Alas I can't find a reference just now as to what a suitable radius would be.

good day to you. Many thanks in publishing your Z-Axsis movement solution. I am currently looking forward to build a D-Bot style 3d printer (y=500,x=600 Z=500). Also I am planning to slightly change your setup due to the size of the print bed and the style of the printer. Therefore I am planning to use two geared and synced nema 17 motors (200 steps/res), using a gear reduce box of 14:0. I selected four 2mm pitch GT2 PU/steel core belts (two belts, driven by one motor per side). Based on your suggestion to use steel core belts to reduce the stretch (thanks for sharing) thats also my plan. As per my assumption two nema17 (200 steps/res) including 14:1 ratio gear box, in combination with the 2mm pitched belt and 40 teeth pulley should also provide enough torque to drive my system solid. What do you think about my planned configuration?Happy to hear from you as you already practically using these kind of setup. btw: using a gear box is also drastically improving the resolution available (without to increase micro stepping/less torque). I really like your setup and I would kindly appreciate your feedback, as I am shorty planning to order all the stuff to start building :-) Many thanks.

Sorry for the late reply, but any time you use two motors to drive an axis you have to worry about the motors getting out of sync when power is cycled. You'll need some sort of strategy to resync them when you power up the machine, otherwise you'll be releveling the bed over and over.

The Prusa i3 printer drives the X axis to the top of the Z axis until the motors slip which forces the X axis into a (hopefully) orthogonal relationship with the Z axis.

You could probably do something similar by running the bed to the bottom of the Z axis and set hard stops that are aligned so that the plane of the bed will be square with the Z axis.