Wednesday, February 11, 2015

Compensating for ABS Shrinkage

Summary: Quantify your ABS shrinkage rates and scale your model to compensate...maybe.


ABS is known to contract or shrink as it cools. The amount of shrinkage depends on the quality of your filament as well as your printer settings and capabilities. Heated build platforms and enclosed print chambers can minimize these shrinkage problems that can lead to warping in ABS parts. I never noticed much of a problem with the final size of my ABS parts until I started printing small holes. I was designing a bunch of 3 mm holes into my parts and each needed to be drilled out after printing to get the hardware to fit.

So I decided to print a bunch of ABS pieces and compare the CAD dimensions to the final printed dimensions. I used MatterHackers Red Pro Series ABS filament for these prints. All prints were with 0.2 mm layers at 230°C with 90°C bed temperature, 50% fan, and 107% flow. I also used the brim option for adhesion. I started with cubes 5, 10, 15, and 20 mm square.

test prints

When the prints were finished, I carefully measured the length, width and height of each cube with a set of precision calipers. Ironically, all dimensions actually increased except for two measurements. There doesn't appear to be any correlation between the size of the print and the amount of error. Note: I tried carefully to measure at points on the cube that were clean, avoiding any print fragments or over-extrusions.

shrinkage of cubes

Next I wanted to test hole sizes. I designed a 3 mm thick card with 5, 10, 15, and 20 mm diameter holes in it. It was printed using the same settings as above and measured with the calipers. In all cases, the diameter of the holes were smaller than designed. And this time, there was a clear decrease in print error as the size of the hole increased.

shrinkage of holes

As it turns out, it looks like shrinkage isn't as much of a problem as I thought it was. In fact the cubes were slightly oversized. Perhaps it is the quality of the filament. Or maybe the files I printed are accidentally designed in a way that minimizes shrinkage. Or does the extra flow at the nozzle make up for any shrinkage? I don't know, but so far the dimensions of ABS parts from the UM2 are almost perfect. But, if you do find you are having problems with final dimensions, you can always repeat this test and scale your final prints. As for the holes, you may want to oversize your small holes accordingly or simply drill them out to their final size.

for perspective, this is the average error in the cubes

Tuesday, February 3, 2015

Ratchet and Pawl Mechanism

servo-driven ratchet and pawl


I've been working on a project that requires some precision motion control, rotating an object 360 degrees in 12 steps. At first, I tried using a stepper motor but it drew too much power, ran hot, and was too heavy.  Worst of all, it wasn't strong enough to turn my load. A servo would be a better solution but most servos are only capable of 180 degrees of motion. How do you get 360 degrees of rotation from the limited throw of a servo? A ratchet and pawl looked like it might work.

drafting the ratchet
I looked online for an existing design but I couldn't find anything that would work for me. So I drew one up in 123D Design. It was pretty easy; simply draw two circles to define the top and bottom of your teeth. Sketch one line from the center point to the outer edge of the circle. Then use the Circular Pattern tool to replicate that line around the circle as many times as you need (once for each tooth). Then use the 3 Point Arc tool to draw the back edge of the tooth and replicate that arc just as you did the lines. Lastly, just extrude and remove any unwanted parts. The arm and catch aren't nearly as critical, just sketch them to fit the profile of the teeth.

the finished design

With the design finished, I printed the parts in ABS at 230°C with a brim. Since the appearance isn't critical, I printed with a 0.2 mm layer height at 80 mm/s. I mounted the pieces to a scrap piece of lexan and used some small springs to tension the pawl and arm against the ratchet. Using an online calculator I determined that for a 30° arc, the servo arm needed to be about 19 mm long to give me the necessary linear motion from the ratchet arm.

servo connected to arduino

I used an arduino to test the mechanism. I simply modified the Sweep code from the Servo library and shortened the sweep from 180° to 30°. To my surprise, it worked on the first try. I modified the code a few degrees to dial the servo motion in perfectly. This is a nifty little design that should come in handy in the future. Next I'll print a hub to mount this to the part I need to rotate.


Files are available on Thingiverse and YouMagine.