Keep it Cool! 3

Posted by Pat on June 22, 2010

A couple of months ago, we discovered the wonder of fans.   We thought we found a great leap forward in terms of print quality when we began incorporating cooling fans nearby the print head.  The focus was cooling the plastic quickly after it’s having been extruded, and the result was much smoother prints, particularly with small parts or delicate areas.  Towers are a good example of the issue – with a relatively small cross area, and continual build up of material in the same small area, the plastic stays too warm, practically molten, and eventually slumps.   Rather than a tall spire, one ends up with a lumpy mess.  Fans come to the rescue here by cooling the plastic more quickly, thereby allowing it to solidify, with the final result looking more like what one intended.

In our latest design, we’ve been trying to hammer out the details of our fan configuration, and along the way, decided to ditch fans altogether.  Initially, we assumed we would be using two fans, pointed towards each other, and just below the print head.  We purchased 3 different sized of fans to experiment with – 20mm by 20mm, 40mm by 40mm, and 60mm by 60mm.  Each pair had a different location within the printer – the 20mm fans were about an inch away from the print head, the 40mm fans were about 2.5 inches away, and the largest fans were about 11 inches away.

Here is a picture of the 40mm fans attached to the print head:

fans

These were the fans we used:

fans2

Although we used a variety of test objects, we settled on a tall (70mm) three sided pyramid as our primary test object.  The objective was to print a tall, tapering object and see where it began to slump – in other words, at what point was the plastic being extruded too quickly, such that it could not cool enough to maintain its structural integrity.  Our assumption was that the fans would promote more rapid cooling, and thus the object would more structurally sound.

To our surprise, the increase in airflow gave us only marginal gains in the structural integrity of the test objects.  We additionally attempted to increase the airflow by supplying the 40mm fans with more voltage.  While this improved things, the results were not what we were looking for.  As can be seen in the picture below, the four different fan configurations we tried gave only small improvements in the final print’s quality.

fancompare

Unsatisfied by the results we were getting, we began looking for other options.  Skeinforge has a plugin called “Cool”, which turned out to be just what we needed.  Particularly, one of the settings in the Cool plugin allows you to define a ‘Minimum Layer Time’.  What this does is let you specify the minimum amount of time it takes to build each layer.  Another setting, “Cool Type”, tells Skeinforge how to deal with layers when they would otherwise take less than the specified minimum time – we use the ‘Slow Down’ option.   Essentially, how this works is you specify a minimum time (in our case, 10 seconds seemed to work well), and then for any layer small enough, the print head moved correspondingly slower.

Here is a resulting print.  Note that both parts below were printed without the use of fans, the only difference being the use of the Cool plugin.

towers2

Our conclusion is that, while fans are of limited usefulness, Skeinforge’s Cool plugin is particularly useful for small parts that are prone to becoming too hot.  I might add that the Cool plugin is much more easy to implement too.

T-Rep Photos 4

Posted by Tim on June 21, 2010

We finally have some decent pictures of the latest T-Rep.  Enjoy!

t-rep 3 side view

t-rep 3 front view

t-rep 3 front view

t-rep 3 side view

Check out our Flickr page for more photos.

Our Latest Printer, the T-Rep 3 19

Posted by Tim on June 10, 2010

For the last few months we’ve been working on a new printer design that we are calling the T-Rep 3.  We made a big push to get it complete for the MakerFaire, and if you were there on Sunday you may have seen it on static display at the RepRap table.

Like our previous design, it is constructed primarily of T-slot aluminum extrusions (and associated components)  and flat aluminum parts.  Here’s a CAD rendering of the basic design:

T-rep 3 front

It has a number of improvements over our previous model.  For one, we are now using linear ball bearings on all axes. We found that bushings can work well, but they are very finicky and can bind at the slightest provocation.   By contrast, we found linear bearings much easier to use. They are smooth running, almost self-aligning,  and will support huge side loads without complaining. They actually seem to become smoother the more load you put on them.

Moving to linear bearings allowed us to make the X and Y axes more compact.  Here’s a detail shot of the X & Y axes (and extruder) from below:

T-rep 3 side detail

Using linear bearings also enabled us to use a simple, cantilevered Z stage.  The stage is very stiff, with no noticeable play.

We also designed the frame to allow acrylic panels to be mounted on all sides and added a door in front.  With an enclosed system like this, you can add some dryer vent tube and a bathroom fan to create  a nice fume extraction system.  The enclosure isn’t airtight, but the fan creates negative pressure within the enclosure which effectively contains the fumes. So far it has worked well and we haven’t noticed any smells while printing.

Here’s what the printer looks like when fully enclosed:

T-rep 3 with door & panels

The frame also incorporates a bottom compartment for power supplies and electronic boards. Compared to our previous design which required a separate controller box, this change eliminated a ton of exposed wiring and greatly reduced the number of connectors. The end result is very clean and easy to assemble.

Here’s Pat assembling the prototype:

P1010052

The T-slot parts are really nice to work with.  It took Pat two leisurely days to completely assemble the mechanical parts (with no instructions), and another day to complete the wiring.  The end result:

T-Rep 3 side

It is difficult to see in the photo, but the entire printer is enclosed in clear acrylic.

The design for this printer is almost complete, and I’ll be posting more info soon.  Our goal is to release the plans under an open license, and if the interest is there, to offer complete kits.

Worm Drive Extruder 6

Posted by Tim on May 18, 2010

Here’s a video I recorded this morning showing our worm drive extruder in operation:

Worm drive extruder

We’ve found this design to be extremely reliable, powerful, and smooth running. And it uses the same NEMA 17 stepper motor that we use for all other machine axes.

The only improvement I’d like to see is the addition of a spring loaded pressure wheel, rather than the fixed position setup we use.

I’m currently assembling a new version that has a similar design, but is more compact. More pics to come.

UPDATE: I should mention that this was inspired by NopHead’s worm drive extruder

Pretty Green Boards 2

Posted by Tim on December 08, 2009

My dabbling with Eagle has started to yield some results:

new boards

On the far left is a shield for the Seeeduino Mega that turns it into a RepRap motherboard. The Seeeduino (above the board) is a really nice Arduino Mega clone.

In the middle is a temperature controller board for an Arduino Pro Mini 328 (also shown above the board).  It will provide thermistor based PID temperature control for two heater elements, and uses RS485 for communication.  The sensor/drive circuit is borrowed from the RepRap extruder controller, and the firmware will be running my PID temperature code.

And on the right is a carrier board for four EasyDriver stepper drivers (one shown at the top).

I’ll provide more details after I finish assembly.

Microstepping 1

Posted by Tim on November 09, 2009

As part of my push to improve print quality, I’ve been experimenting with microstepping. The SparkFun EasyDriver boards look like an interesting alternative to the standard RepRap driver boards.  They only drive 750mA compared to the 2A for the RepRap boards, so they may turn out to be underpowered for RepRap use, but so far they are working pretty well.  They can operate at full, 1/2, 1/4, or 1/8 step. I’ve been able to get the standard Gen3 firmware operating the at 1/8 step at pretty reasonable speeds (the fast traverse speed will definitely be lower than what I’m used to, though).   The smooth movement is very nice!

For a RepRap running on the Gen3 (Sanguino) firmware, the motor power requirements are primarily driven by the need to provide instantaneous large velocity changes.   So the second part of this effort will involve firmware changes to incorporate acceleration into the movement.  This should greatly reduce the stepper power requirements and make the lower power drivers a better fit.

However, the acceleration code is still a long way from being done — more about that later.

To make the EasyDriver boards easier to use, I’m building a board that can hold 4 of them.  The board just makes the wiring cleaner, and has dip switches that allow easy selection of the stepping modes.

stepper-mb-2

Extruder PID Temperature Controller 7

Posted by Tim on September 30, 2009

After getting my extruder running, I noticed that the drive was struggling a bit. I could hear the motor working harder, and the filament would start slipping. The problem didn’t happen all the time — just periodically. That first got me thinking that the drive bushing wasn’t engaging the filament evenly. But then I noticed that the problem was synchronized with the blinking of the heater drive LED. Hmm…

Is it possible that the extruder temp was falling low enough during the heating cycle that the drive would have trouble pushing it through the extruder?

Mostly out of curiosity, I began to investigate the heater controller code. After a bit of poking around the code and tinkering with the thermistor location, I wasn’t quite satisfied with the temperature control, I decided to try to improve it a bit by implementing a PID controller. At the time, I also stumbled across the BareBones Coffee Controller which uses an Arduino to control the temperature of coffee and espresso machines and has a nice GUI temperature monitor.  With a bit of tweaking, I was able to hook up the monitor to my extruder controller and do some experimenting.

Here’s a plot of the default bang-bang temperature control operating on my machine: (click image for larger version)

Extruder default (bang-bang) temperature control

This shows the controller taking the heater temperature from ~50C to a target temp of 220C. The blue line shows the heater control PWM output (0-255). You can clearly see how the bang-bang control switches between high and low settings when the temperature crosses the target.

Now here is a plot of the PID controller in operation:

Extruder temperature PID control

The target temperature is reached a bit slower, but with minimal overshoot. And when it is up to temp, the temperature error is greatly improved.

The heater control looks very erratic (and it is!), but I found that the spikes are from the D (damping) term which is a function of the temperature rate of change. Since the temperature sampling produces a relatively low resolution discrete value, the temperature changes in steps. And each of these steps looks like a big rate of change of temp to the controller. What is interesting is that it still works well. When I take out the damping term, I have more overshoot, so the term is still doing what it should.

Selecting good PID gains was a bit painful due to the slow moving plant. I’m not at all sure that I’ve got gains that are even close to optimal. But I’ve been using the controller for the past week, and it seems to work fine as it is.

Could the performance of the default bang-bang controller be improved? Most definitely. This is somewhat an unfair comparison because I did a lot of tweaking of the PID parameters, but didn’t change the default heater_high and heater_low parameters at all.

I’ve made the code for the PID controller available here as a patch to the arduino slave firmware. I’m working off the Makerbot svn codebase. The default controller or the PID controller can be selected at compile time.

To run the monitor, you need to connect your serial line directly to the extruder (the monitor can’t be used during normal printing operation — it is just for testing). I’ve included the ability to change target temp, toggle the motor on and off and change direction, and a few other things from the monitor. The code is available here.

Extruder Design Work

Posted by Tim on August 21, 2009

Got tired of waiting for the Makerbot extruders to come back in stock, so I’m working up a pinch wheel extruder design I can build on my mill. Hopefully, running the filament between a 0.5″ bearing and a 0.5″ brass bushing will do the trick. I’ll probably have to play with the knurling/tapping to get it right. This version uses the Makerbot Kysan gearmotor.  Here’s a pic:

2009-08-18_1723

Cartesian Bot Beginnings

Posted by Tim on August 06, 2009

2009-08-06_1652

I’ve been slowly building a CAD model of my RepStrap design.  As you can see above, the basic mechanics of the X and Y axes are similar to the RepRap Darwin.

I’m trying to stick to easily available materials.   Since I’m getting most of the materials from McMaster-Carr, I’ve started calling my machine the McMaster bot :) .

The main building block will be aluminum extrusions.  This is an amazing building material.  Strong, light, straight and true, machines very easily, and available from any neighborhood Home Depot.  What’s not to like!

The erector set extrusions you can get from companies like 80/20 are even nicer, with a variety of well engineered ways to join them.  But they aren’t cheap, and since I don’t like dealing with salesmen and waiting for parts,  I’m sticking to the cheap stuff for now.

2009-08-04_1731

I’ve played around with a number of ways to join box sections, and I’ve settled on using a pair of small aluminum connector brackets pop riveted to the pieces.  It forms a very strong connection, and if you drill the final holes in place, you get perfect alignment every time.