Hercules Extruder

September 26th, 2008 § 10 comments § permalink

When I began working on an extruder, I spent quite a bit of time working on a screw based drive, attempting to engage the plastic in order to push it into the heater barrel. Turns out – plastic is slippery. I’ve seen lots of problems with screw based extruders, so I looked into using a pinch pulley. It works beautifully!

There are a few nice side effects of the pulley – The extruder is very simple, doesn’t require much fabrication, and can be reversed instantly to stop plastic extrusion (there are no plastic fuzzies). Unfortunately, since I use a stepper, this extruder cannot be directly used by the reprap firmware without modification. I’m currently refactoring the reprap firmware to enable device abstraction which will allow either a stepper or dc motor.

Hercules Extruder

Hercules Extruder

Download Sketchup

The heating element is 8 inches of insulated nichrome wire, purchased from RepRap Research Foundation wrapped around an 1/8 inch brass plug. The brass plug was turned to a point (or filed to a pyramid). A .01″ hole was drilled in the tip (very carefully!). The brass plug is threaded using a 1/4″-28 pitch tap. (The brass plugs from home depot are hollow, so it is easy to tap; otherwise it needs to be drilled out).

This is a previous implementation with a brass coupler. The extra brass was acting as a heat sink which was causing problems keeping the extruder up to temperature.

The extension barrel is a 0.375″ OD x 0.12″ WALL x 0.135″ ID T-316 stainless steel tube from Online Metals. Half inch of the tube was turned down and threaded to mate with the heater element. I’ve been asked what the resulting heating characteristics are of the new barrel – I’m happy to say that the brass element holds temperature well, and the stainless does not conduct much heat (the top barely tops out at 115F)

The Sketchup presented differs slightly from the implemented extruder. This was simply due to resource limitations (material on hand). The Sketchup includes a better mounting bracket for the heater barrel and uses a single piece of aluminum for the mounting wall.

Herk? Before my father retired from the Air force, he flew a C-130 transport nicknamed Hercules. He currently uses the name “Herk” as his handle in various games. I named the extruder for him as a small form of thanks.

Fabr at Seattle Robotics Sept 20th

September 18th, 2008 § Comments Off on Fabr at Seattle Robotics Sept 20th § permalink

Just some quick notes:

Fabr will be at the Seattle Robotics meeting on September 20th. For more information about the meeting, visit http://www.seattlerobotics.org/.

I’ve been posting updates to my twitter feed instead of posting incremental updates. You can follow me via http://twitter.com/ooeygui.

I am working on a couple of major changes to the RepRap driver software, a post about using Programming Patterns with the Arduino, and more about the Fabr extruder. Stay tuned…

Adrian Bowyer Talking about RepRap

August 18th, 2008 § Comments Off on Adrian Bowyer Talking about RepRap § permalink

Adrian Bowyer is the father of RepRap. Here’s a presentation he did about the RepRap and its potential.

Check it out:

Drive Components

August 10th, 2008 § 1 comment § permalink

There are 4 stepper motors on the 3d printer: one for each axis and another for the extruder. I wanted to user a motor that could be powered with a computer power supply, was under 750ma (A3967 compatible), had a small step angle and maximized the torque. I evaluated many (too many) options, but settled on the 162027 from Jameco:

This motor is 600ma, is compatible with the A3967, has a .25″ spindle which fits without modification the sprockets from electric goldmine, and has plenty of torque to handle the
RepRap uses a toothed belt which engages plastic pulleys. The toothed belt and pulleys are fairly expensive and require precision gluing. I was intrigued by the idea of using ‘ball chain’ and am considering milling custom sprockets eventually. In the mean time, Electronics Goldmine has rollerchain and sprockets for very cheap – $1.25 per sprocket, and $2.50 for 23″ of mini-chain. I used 9 Sprockets and 5 sets of roller chain. They are fairly quiet and you can’t really beat the price.
SparkFun.com sells a stepper driver based on the Allegro A3967. This chip is a microstepping stepper driver capable of driving a stepper up to 750ma. It requires lots of tuning to drive the stepper correctly (varying parameters such as step frequency, current limiting via a pot, etc). It is also subject to motor noise.
I’ve been working with Zach on from the RepRap research foundation on a higher power stepper driver based on the A3977 which will drive 2.5a and is dip switch configurable for full step or microstep. You can follow the project on SorceForge. Until that project is completed and available, this combo seems suitable for light duty FDM extrusion.

Stepper Motor Driver v2a

July 23rd, 2008 § Comments Off on Stepper Motor Driver v2a § permalink

One of the side effects of using 80/20 for the structure of a 3d printer is that it weighs significantly more than the reprap design using rods and plastic joints. I became concerned that a 600ma Stepper may not drive that much weight or overcome the friction of the linear motion bearings. I started designing the ‘super driver’ which was capable of driving up to a 2.5 amp Stepper which would easily handle those issues.

After Fabr’s appearance on Hackaday, Zach from the RepRap research foundation contacted me about collaborating; we were going down parallel paths. I deeply admire the foundation’s work, and Zach’s contributions seriously rock. Needless to say I was very enthusiastic about this collaboration.

Zach was interested to see if we could use the ‘super driver’ as the next generation stepper driver board for the RepRap, and offered suggestions for unifying the projects.

The first iteration of this collaboration has been checked into the RepRap source forge project (and the fabr subversion project will be retired). It is looking pretty sweet!

Here’s the start of the new board:

Notable Differences:

  • License changed to GPL
  • Name change (no more super driver)
  • Uses the RepRap standard IDC header for communication
  • Uses the RepRap standard power supply connector (vertical instead of horizontal)
  • Min/Max end stops route through the motor controller using Headphone Jacks (to be implemented)
  • Uses the new RepRap .156″ headers for the motor connector (similar to the ones I was using, but non-removable and less expensive)
  • Stepper mode (full/eighth) is a jumper instead of software settable
  • Opto-isolated (to be implemented)
  • SR is jumper configurable (needs the diodes to be completed)

More on 80/20

July 18th, 2008 § Comments Off on More on 80/20 § permalink

Fabr is built using the 80/20 T-Slot fractional building system. ‘New Stock’ items were purchased from the 80/20 Garage Sale on eBay. The service was excellent. Just make sure when you purchase that you wait for the invoice as they combine shipping.

The Fabr frame is a 1″ profile ‘1010’, 12 total, each 14″ in length. I paid $2.75 each, for a total of $33.

I used 8 three-way nylon connectors to complete the cube – each was $2.85, for a total of $22.80.

(Similar to these 2-way connectors; couldn’t find a 3 way image at the time of writing)

$60 or so is very reasonable for the superstructure of the printer. I’d certainly use this system again.

The ‘linear bearings’ are ‘h’ shaped extrusions with a sandwich 3 ultra-high molecular weight shims between it and the t-slot extrusion.

I assumed that these bearings would glide smoothly over the t-slot. After assembly, I discovered that the bearings were very tight which required more than an acceptable amount of force to overcome the friction.

Disappointment set in. 

I attempted some minor changes to the bearing pads in order to reduce the size. Sanding nor scraping were successful (too much fuzz was generated causing more friction). However, removing a single pad reduced the friction to acceptable levels, but the loose fit could result in a loss of precision.

The bearings themselves were very expensive compared to the other components – $34 each x 3 = $102.

I also purchased an additional extrusion for the X-Axis, connectors and t-nuts.

The total with shipping was $192.90.

If I had to do it again, I would use the 80/20 super structure, but would investigate other options before buying the bearings. It seems that from time to time, the garage sale offers a ‘build your own bearing’ which may affect the final cost, but ymmv.

(naked bearing pictured here is $8. There is also ‘overstock’ UHMW material in the bearing profile for $7 at this time.)


I’ve been playing around with the idea of using an ACME lead screw with a traveler which not only engages with the screw, but also uses the screw as a guide rail (2 birds one stone). This would need to be fixed at both sides using a bearing block. (sorry, just idea at this point).

Fabr is a RepRap

July 14th, 2008 § 4 comments § permalink

I became intrigued by the concept of ‘renewable manufacturing’ – owning the life-cycle of everyday things. This idealism was captured by the RepRap project; who’s tag line is ‘Wealth without money’.

In the early phases of the construction of Fabr, I ran into the classic RepStrapping problem – how do you build a device intended to be built using a 3D Printer without a 3D printer? I had attempted to use the printing services at the TechShop in Menlo Park, but was unsuccessful. After that failure, I decided to designed and build Fabr using commonly available materials and few custom parts.

Over the last year, the RepRap organization has made changes independently which amusingly coincide with some Fabr design decisions, and Fabr has changed to be more like the RepRap in order to better leverage the software and firmware from the RepRap team.

In essence, Fabr is a RepRap.

Since my last post, I’ve been working on the following parts of the project:

  • The TextMate plugin was nearly rewritten in order to remove the Processing toolchain, and require the AVR MacPack from Objective Development.
  • Using the new Mill & Lathe, I’ve improved some of the articulation points
  • Implemented a multi-screw Y axis to compensate for unacceptable racking. I wish I could say that 80/20 is an asset, but the linear motion bearings are woefully inadequate and excruciatingly expensive. 
  • I smoked my motor shield while debugging a stepper problem, and switched to using 4 EasyDrivers from SparkFun.
  • Started building a ‘Super Driver’ which can drive steppers to 2.5A, as well as software configurable Full Step or Microstepping.
  • Ported the RepRap gcode interpreter to the TextMate toolchain and adapted it for the EasyDrivers (Need to unify this work with the trunk, and submit my updates to the RepRap team).
  • Implemented a Ruby gcode uploader; hopefully to be used in the Sketchup exporter.
  • Acquired materials and Building RepRap Opto Endstops for home positioning
  • Acquired materials and Building the Temperature controller for the extruder

Been awhile

May 21st, 2008 § 1 comment § permalink

It has been awhile since I’ve posted an update. I’ve been working on numerous projects, all at various stages. I figured I’d post an update across the board with no real conclusions.


Sources have been posted on:

svn co http://www.ooeygui.com/Arduino .

But now I have a Trac server installed at http://www.ooeygui.com/trac.

This server allows people to post bugs, read design docs, and see changes live. Enjoy!

TextMate Microcontroller plugin

While working on the gcode interpreter, I discovered some issues with the plugin. I’m in the process of rewriting portions of the plugin. The plugin now uses AVR MacPack instead of the Arduino packaged compilers. This isolates the plugin from breaking changes by the Arduino developers. I’ll release new packages as new Arduino packages are released.

Fabr Hardware

I had completed the Axes, but noticed a nasty binding problem. After disassembling, I discovered part of the drive assembly wasn’t square, which caused a bind when spinning. A second problem that was bugging me was related to an early cut on the X axis not being square to the Y axis… Both are being corrected as I build the extruder mount.

The extruder is completely built, but untested. I leveraged the extruder head that was featured in a previous post, added a cooling pipe and an insulated feed pipe in order to prevent premature melting of the extrusion cord. I’m currently constructing a mounting plate which will allow me to swap print heads relatively quickly (as well as allow me to mount the current one).


I have 25lbs of bioplastic granules; not terribly useful for a printer. I had considered building a hopper on the printer and extruding the granules directly to the print job, but couldn’t make it practical. Instead, I’m going to have a separate unit which processes granulated plastic into a cord, and yet another unit for grinding plastic into granules (‘chipr’?)

Motor Controller

After the experience with the triple axis controller, I’m starting to design a single purpose motor controller; I find that I need 4 controllers – one for each axis and one for the extruder. Here’s a preview: .

I still plan on having an Arduino Shield to tie 3 or 4 axes together.

First Extrude

April 16th, 2008 § Comments Off on First Extrude § permalink

It isn’t a printer until there’s melted plastic. Fabr has finally reached that milestone – An extrusion head which melts plastic:
Unfinished Extrusion Head

For this test, I was feeding by hand: I was amazed at how little pressure was needed in order to get a decent feed rate from it. The Kapton encased nichrome wire drew about .9 amps at 12 volts, and took about 30 seconds to heat up. I used screws and wire to secure the heating coil.

The Feed itself uses two pulleys, directly mounted to a motor. Given how little pressure was needed to drive the print head, this should work out quite nicely:

I also completed the y-Axis:

Next steps:
Do the xAxis – this should be the easiest of the bunch. I only need to fabricate a mounting plate, then mount it, the motor, and the flanged nut to the extrusion carriage. I already built the coupler.

Finish the extruder head – I need to cut down the bolts, and wrap the whole thing in an insulator. The fed plastic tended to mushroom at the outlet port as well as get mushy while in the barrel. I’m going to use a hollow rod (maybe graphite? Steel?) wrapped in fiberglass to insulate the feed barrel. Hopefully that will prevent it from loosing integrity before being pushed into the outlet.

Y Axis, Extruder, Controller and Software

March 30th, 2008 § Comments Off on Y Axis, Extruder, Controller and Software § permalink

Y Axis

Shortly after building the Z axis, I began working on the Y Axis. I was being cheap and wanted to attempt to use a single drive screw instead of two (as planned) thinking that the 80/20 would be true enough to prevent racking. Once I actually hooked up the cross beam I found the racking to be pretty extreme.  To counter this, I needed another drive screw and a timing chain instead of direct linkage; This meant another order from electric gold mine.  I had decided to use chain instead of a timing belt for cost reasons. I may revisit this in V2 as it adds quite a bit of weight and is really loud.  I should be able to get the Y Axis built this week and the X axis shortly after that.


I had some problems attempting to use a screw to feed plastic into the extruder. I tested a feed mechanism which uses two pulleys and was impressed with the results. In order to get a screw to engage the plastic quite a bit of side pressure is needed, which in turn requires quite a bit of torque to drive the screw. With the dual pulleys, a smaller stepper motor can be used because very little pressure is needed, which means less torque is needed for the same extrusion feed pressure.I was attempting to work with Clayborn Labs to design a heater barrel. I need to follow up with them because my account seems to have gone into the ether… In the mean time, I’m going to be working with the electric gold mine “NASA heat tape”. 

Smoke test passes!  No smoke is passing right? I ran some simple tests designed to test each motor controller. I used LEDs instead of a motors because I didn’t want to risk destroying them. It was wild to see the coil animation represented by lights. Next up is testing the end stops and building an on-board gcode interpeter.


I ran into some bugs in the TextMate plugin, so corrected them. You can download the new version and unzip to ~/Library/Application Support/TextMate/Plugins. The Sketchup plugin is successfully decomposing objects into voxels. I’ve begun work on a recomposer which attempts to use the voxels by using various ‘solid handlers’ to attempt to generate sub-volumes. During this process I noticed that I was trying to locate the same edges I used to generate the voxels – and lamented that it may not be the best solution. In the degenerate ‘cuboid’ case, using voxels is dumb. However, as the complexity of the object increases using voxels will deterministically reduce the original volume to sub-volumes without requiring edge walking.I had wondered if using octrees would be better for dividing the volume into cuboids, but I think it may loose some context when adding other shape composers (like finding holes or cylinders)