Sunday, December 30, 2007


My goal for this weekend was to extrude enough HDPE to represent the volume needed to make the minimug object. The host app says it's 2955.9 mm3, which translates to 418mm of 3mm filament. So the idea was to mark a point on the filament where it's entering the extruder and another point 500mm up from that. If I could get the extruder to run continuously between those two points, it should eat (and therefore extrude) enough plastic to create the piece. Here's how that went:

Extruded a few cm. Cable/drivescrew connection broke. Tried soldering it. No luck. Cleaned it up. applied JB Weld, left it to cure for 15 hours. Baked for 2 hours at 200C according to nophead's suggestion.

Reassembled and started again. Extruded a few cm. PTFE barrel slipped out of clamp. Backed up the filament, put the barrel back in clamp, tightened it up again. Clamp broke. Drilled a couple holes through the extruder body and PTFE barrel, one on either side of the hole (i.e. cutting a chord through the barrel). Sank two drywall screws through the holes. There, that's not going to budge. Extruder is now starting to look like Frankenstruder's ugly brother. Broke yet another thermistor. Replaced thermistor.

Reassembled and tried again. Extruded a few cm. Despite having a hose clamp around it, heater barrel slipped out of PTFE barrel. Internal threads are stripped. Had a spare PTFE barrel. Replaced barrel and tightened hose clamp with power driver. Terminal on gear motor broke. Resoldered and used a zip tie as a strain relief.

Reassembled and ran without the nozzle to clean out the gunk. Took the opportunity to mod the nozzle according to Vik's suggestion. Screwed the nozzle back on, waited for it to heat up.

Extruded a few cm. Nothing fell apart!

Marked the filament for a 500mm segment. Set the extrude speed to 50 (about 1/5 full power). Extruded a full 500mm in 33 minutes. That's about 1.8 cubic mm / sec.

Measured the extruded output: 3170mm. That works out to a diameter of 1.2mm. Extrusion speed works out to 1.6mm/sec.

Cranked the extruder speed to maximum. Marked 50mm. Took 84 sec to extrude 320mm. That's 4.2 cubic mm / sec. Diameter consistent at 1.2mm. Extrusion speed works out to 3.8mm/sec.

If I've got all the numbers right, that'd work out to a 3-day extrusion time for a RepRap kit. Not too shabby. The volume rate is good but I'm using a large nozzle, so the linear rate is low. I might have to run some tests with a smaller nozzle.

Lessons learned:
- Baking JB Weld helps a lot.
- The clamp on the extruder body doesn't seem to be enough to hold things in place.
- When using a hose clamp, tighten the crap out of it, then retighten when it heats up.
- Always use strain reliefs on soldered connections.
- Grinding down the inside of the nozzle helps a lot.
- Clean out the heater barrel now and then.

Thursday, December 27, 2007

Things Get Affected By Things

The new extruder firmware was doing odd things. I was using the heat profiler and noticed that the temperature leveled off at about 77C. I looked at the heater LED and noticed that it was alternating between flickering and being off. About 6 seconds flickering; about 6 seconds off.

Troubleshooting mode...
- Maybe it's the heat profiler. Try the extruder exerciser. Same symptoms.
- Remove the thermistor from the heater barrel and let it cool down. Symptoms go away.
- OK, so, it's an interaction between the temperature sensor and the heater control.
- Replace the thermistor with a variable resistor.
- Start at 10k and decrease. Heater cuts out at 8.8k (temperature reads 77C).
- I've got C3 at 20nF. Try 10nF. Heater cuts out at 17.5k (temperature reads 89C).
- Try 100nF. Up to 130C.
- 200nF? 156C. Close enough.

I'm not entirely sure why it's cutting out like this. I'm guessing something in the extruder firmware is acting up, causing the safety cutoff to kick in at a lower than intended temperature. Whatever the cause, increasing the value of C3 seems to be a viable workaround.

After bumping the C3 to 200nF, my heater profile came out like this:

That gave me some numbers so I could adjust the hm value. It was pretty close at 1.1 but I dropped it to .9, just to make sure I got a decent heater temperature. I cranked up the heat, loaded some filament and tried extruding some HDPE.

I managed to extrude 2770mm (109") of .8mm (1/32") plastic. That works out to about 1.5cc.

Near the end, I pushed the extruder speed to maximum. The JB Weld joint between the drive screw and the wire cable snapped. That's a lot of torque. To be fair, I probably messed up that joint. I think that was the first thing I glued using JB Weld and I'm not sure I mixed it properly.

I'm now on thermistor number four, having fried or mangled the previous three. This one came from a cheap indoor outdoor thermometer, similar to this one. There are two thermistors in it. I used the outdoor one, setting aside the other for later.

Wednesday, December 26, 2007


This is the current sate of the extruder. It has:
- sandpaper to keep the PTFE barrel from slipping
- a hose clamp to keep the heater barrel from slipping
- a terminal block glued to the hose clamp to connect to the nichrome wire
- PTFE tape wrapped around the heater
- a thermistor cannibalized from a thermometer, embedded in JB Weld and strapped to the barrel

And, yes, "it's alive". Well, pretty much. It doesn't fall apart, melt or catch fire, which is a big step up.

Funny thing, though: The firmware is being difficult. The old firmware (v1.0) runs the heater properly but flakes out on the temperature readings. The new firmware (20071219) seems to do better at temperature readings but flakes out on heater control over about 80C.

I wonder if there's some sort of interplay between the RC factor of the thermistor input and the duty cycle of the heater output.

Sunday, December 23, 2007


I managed to get the extruder to put out some plastic without falling apart. After trying various things, two mods made the most difference:
1. Zach's suggestion of using a hose clamp on the Teflon / heater barrel connection worked extremely well.
2. The other end of the Teflon barrel kept slipping as well, so I wrapped it in some doubled-over sandpaper.

I cranked up the heat and pushed some filament through. Here's the result. When stretched out, it's about 14".

Unfortunately, I seem to have destroyed another thermistor in the process. On my next order, I might have to stock up on a few.

Friday, December 21, 2007

Extruder Barrel #2

I built a new extruder barrel. This time the nozzle can be removed easily. I did a simple test of heating it up and manually pushing HDPE filament through. Worked fairly well. After I got some plastic pushed through the nozzle, I let it cool down and disassembled it. Here's what I found:
These images show the motor end and nozzle end, respectively. On the motor end, there's a small amount of pooling. I'm guessing the gap is due to the shape of the drill bit. The nozzle end has quite a bit more pooling. The gap there is caused by the shape of the acorn nut.

What I'm wondering is, does this create extra resistance for the filament? If so, is there any way to prevent it? My first thought is to fill in the gaps with JB Weld. Maybe even turn the nozzle cavity into a taper.

Thursday, December 20, 2007

Turning Up The Heat

Figured out what was wrong with the heater. When it heated up, the electrical connections came loose. It'd get up to about 135C and start to cool down again. Nichrome doesn't solder well. I cobbled together half-assed crimp connections for it and, for good measure, wrapped the barrel in insulation.

This time, the temperature got up to 160C fairly quickly. I turned on the motor and let the filament feed in.

I'm not entirely sure what happened because the insulation blocked my view. Somehow, though, the heater barrel came out of the Teflon spacer. It doesn't look like the threads are stripped. There was a large blob of melted HDPE in the gap but none came out of the nozzle. I'm guessing the nozzle is clogged.

As it sits now, the extruder barrel is in pieces. The connections for the thermistor tore loose when the barrel came out.

Next steps:
1. Try to reposition the thermistor onto the barrel instead of the nozzle so that the nozzle can be easily removed for cleaning.
2. Remove the nozzle, heat it up and clean it out.
3. Reassemble and try again.

Tuesday, December 18, 2007

Moving Forward

I didn't like the profile of the drive screw. It was too high overall and one end stuck up more than the other. I used a heat gun to heat up the CAPA and a pair of pliers to push it down.

Once it cooled down a bit, I assembled the extruder without the barrel. I used the longest cap screws in the kit to clamp the two halves together, using the tubing as springs. I fed some HDPE through it, just to see if it'd push filament. Did this first with the motor hooked up to 2 AA cells, then switched to the extruder board.

Ran into problems with the RepRap host app. Serial errors. Turns out that the extruder board (or at least the firmware I'm using) gets very unhappy if a) the thermistor cap comes loose or b) you plug the heater into the thermistor connector.

Once I got that working, I determined which way the motor leads should hook up so that the extruder pushes the filament in "forward".

Since I had everything hooked up anyway, I added the heater barrel to the extruder. The clamp wouldn't tighten down quite enough so I wrapped the end of the barrel in electrical tape.

I ran a piece a filament into the barrel until it started to complain and then fired up the heater. Couldn't get the temperature above 140C, though. May need to re-do the heater barrel. Or maybe it just needs a bit of insulation wrapped around it.

Anyway, here's some video of the drive screw pushing HDPE filament.

Monday, December 17, 2007

Getting My Bearings

I went ahead and used the bearings from RRRF, following Zach's instructions. I used a Dremel with a cutoff wheel to cut the bearings in half. Then I heated up some CAPA (using hot water in a coffee cup) and stuffed it into the two indentations and shoved the half-bearings into the blobs. I used the drive screw to line up and sink the half-bearings into the CAPA.

After letting it cool, I trimmed the excess CAPA with a razor. I removed the half-bearings, put some JB Weld on and re-seated them, using the drive screw to line them up again. The main thing I wanted to ensure was that, when I pushed the drive screw toward the motor, it sat on both bearings. This would be its normal position when it's pushing filament.

Sunday, December 16, 2007

Extruder Kit

I started on the extruder head kit (thanks Zach). The body is made from molded parts based on the RP'd extruder. Things I've noticed so far:

On the plastic parts, some holes weren't completely clear. Easy enough to drill out, though. One of the motor mounting holes was missing entirely. I temporarily mounted the motor using the one hole, lined it up and drilled the second hole using the motor as a template.

The feeder screw assembly refused to solder. I ended up using JB Weld instead. Currently curing.

I realized a bit late that I was supposed to cut down the braided wire to fit the distance between the motor and screw. Fortunately, I figured this out before the JB Weld had hardened. Note to self: Test-fit everything first.

I've avoided soldering the wires on the motor for now. Not exactly sure which direction the filament will go under power, so I've just twisted the wires on until I'm ready to test.

Not sure what I'm going to do about the bearings. The ones that came with it have fairly thin walls. I'm wondering if they'll slip out of place under axial load. Options: 1) Use the supplied bearings. 2) Use Vik's washer configuration. 3) Grind down a piece of brass stock to fit. I'm leaning toward option 3 since it'd provide the most support. Maybe I'm overestimating the forces involved here, though.

The bolt to tighten the barrel clamp is a bit too long. It butts up against the extruder body. Options: 1) Cut a chunk out of the extruder body. 2) Cut down the bolt. 3) Find a shorter bolt. 4) Stack a bunch of washers under the head.

I can see a Home Depot safari in my future.

Thursday, December 13, 2007

Adrian Bowyer Lecture

A lot of people ask me what RepRap really is. I don't think I explain it very well, to be honest. Here's an explanation from the man himself.

Wednesday, December 12, 2007

Holding Pattern

I currently have an extruder head kit on order from RRRF. BitsFromBytes is now selling a plastic parts kit made from molds of RP Darwin parts. RRRF should be getting these in stock at some point, so I'll probably wait until they do, rather than do overseas shipping.

Sunday, December 2, 2007

Extruder on Order

I somehow managed to completely miss the fact that Zach had extruder kits available at the RRRF store. It contains some parts I've already got but it doesn't hurt to have spares.

Sunday, October 28, 2007

Extruder Barrel

It occurred to me that, while I didn't have all the parts for an extruder head, I did have enough to assemble the barrel. That allowed me to do a proper temperature profile and get a nice closed-loop system put together. I ran the profiler and then opened the extruder exerciser screen.

I don't have any CAPA filament so I set the temperature to 140C. Holding the Teflon barrel with a pair of pliers, I pushed some HDPE filament through. Works reasonably well. A bit tough pushing the filament through by hand. Could be the barrel wasn't really 140C.

Saturday, October 27, 2007


Tried following the instructions on this page to build a new extruder hex file. The zip file on here uses an old SourceForge hostname. Needed to update the hostname using this command:

svn switch --relocate

Updated to the latest version. Doesn't build. Figured out how to update to older versions. Browsed through the various versions here. Updated to version 588:

svn update devices -r 588

...under the assumption that 588 was equivalent to the hex file I'm currently using. Appears to build correctly. LED comes on, heater works, motor works, temperature works.

Updated to 626, the first with dual extruders. Doesn't build. Missing directories.

Tried 662. That one builds OK.

Burned the hex file (now called extruder_0_.hex). Works fine.

Note: Occasionally getting "missing separator" error on make. Replacing Makefile from the original zip seems to fix that. Files look identical. Probably a cr/lf problem.

Tried ver 926. Works except that temperature reads -51C at room temperature. Interesting.

Went back to 662.

Thursday, October 25, 2007

Smaller Cap

Found a 10nF cap on an old ComputerEyesRT board (circa 1991). No idea why I still had one lying around. Swapped out the 50nF cap. Adjusted the extruder capacitor setting to 0.00000001. Note: I've got two leads on the holes for C3 and have been trying out caps by soldering to the leads. Less wear on the board from soldering and desoldering.

Re-ran the profiler. Fewer I/O timeouts and false readings. Still noticing a change in duty cycle on the heater but it's less pronounced.

I haven't looked at any of the PIC code but I'm guessing the heater is controlled by a software PWM loop. If that's the case, temperature measurements and serial communication will mess with the duty cycle. Best you can do is avoid polling too often.

Extruder Board Test

Re-did the temperature measurements. Ended up using two cups of water: one at 6C, one at 70C. Had to be careful not to get both leads of the thermistor wet. Ambient temperature of the workbench now shows as 26C.

Wired up the gear motor using leads clipped off the stepper motors. Tested it using the Extruder Exerciser screen. Note: Hitting "Reverse" at full speed is bad.

Attached the nichrome wire using a couple clip leads. Wrapped one loop around the thermistor to see if I could measure the temperature change. Ran the Heat Profiler. Got a few timeout errors and false readings while retrieving temperature. The heater LED dims slightly when the PC polls for temperature.

Suspect the temperature measurement is interfering with the PWM. Could be because I'm using too high of a value for C3. Larger value -> longer measurement time -> stealing cycles from heater routine. Could also explain the I/O timeouts.

Wednesday, October 24, 2007

Thermal Ware

Tacked a 50nF cap into C3 on the extruder board and hooked up the thermistor to P2. Set the Extruder0_Capacitor value to 0.00000005. Pulled up the Extruder Exerciser screen. Temperature was way off. Started reading the thermistor calibration page.

Did some measurements with a multimeter, meat thermometer and heat source. Got some R and T values. Plugged them into the formula. Got a beta and Rz value. Used those on the extruder settings. Pulled up the Extruder Exerciser again. Temperature jumping between 16C and 33C.

Tried the whole thing again with a different thermistor. Completely different beta and Rz. Temperature's consistent now but a bit on the high side.

Suspect the first thermistor was flakey and I was sloppy on the measurements for the second one. Will try again later when I have a bit more time.

Primetime Serial Program

My new PIC programmer showed up. This one's a PIC-PG2C serial programmer. Messed with it for about an hour before I got it to program a 16F648A using IC-Prog. What I learned:
1. Can't use a 40-pin ZIF socket with this programmer. The inner and outer rows of pins have different pinouts.
2. IC-Prog should be configured for a JDM with nothing inverted.
3. Using the Direct I/O setting with XP is bad.

Saturday, October 20, 2007


After getting the first board to work, the other two were fairly straightforward. Ended up using a smaller heatsink on one L298N. Got all three connected in a token ring and ran the Stepper Exerciser again. All three lights flashing. Modded the Y and Z motors and hooked them up. Had all three motors turning at once.

X Stepper

Finished the UCB. Used the stepper test board to verify the stepper driver was working. Only 2 LEDs came on and the L298N got hot. Finally figured out that the stepper test board was the problem. Two of the pins were shorted. Fixed that. All 4 LEDs on. Slowed the stepper speed and could see the LEDs sequencing.

Stepper motors arrived yesterday. Just in time. Modded one for X axis. Plugged it in. Didn't budge. Realized I forgot to set the X axis power to 100%. Fixed that. Motor started turning. Played with the speed and direction a bit, then shut down and finished the board as a Stepper Motor Controller Board. Re-tested. Works just fine.

Did notice that Mouser sent me 5 small heatsinks and 2 large instead of the other way around. Looks like the shopping list generator swapped the part numbers.

UCB Talking

I got the X,Y and Z chips programmed and soldered up the Universal Controller Board. I followed the instructions dutifully and everything went well, up until I tried the third test. This should have brought up the Stepper Exerciser screen. Instead, I got a series of error messages in stdout, all saying:

sendMessage error - retrying

I tried jumpering the serial lines for loopback and the screen came up. It told me no devices were present but that's what I expected. At least I knew the serial drivers were working correctly.

OK, maybe the X chip didn't get programmed correctly. I swapped it for the Y chip. It started working (yay), then stopped (boo). Same error messages.

Poked around online to see if I could find others with the same problem. Didn't find anything helpful. So, I resorted to my standard fallback strategy for debugging: poking around a bit.

With the stdout screen churning out its error messages, I started to prod the board, looking for bad connections. I touched something and the exercise screen came up. OK, close it and try again. Figured out that touching pin 18 kicked the chip to life. Traced pin 18 to the Sync connector, which wasn't installed yet. Also R11, also not installed yet. So the Sync signal was floating.

Went back to the forums and searched for R11. Yep. The test often fails without R10, R11 and P3 installed. Rather than install them, I just shoved a couple spare resistors in and jumpered p3 with a piece of wire.

That got the UCB talking consistently. Tried the X, Y and Z chips. All worked correctly.

Friday, October 19, 2007

Auntie MAME

So, I was sitting there at work today, grumbling to myself that my PC doesn't have a parallel port (and no spare slots). I need to burn the microcontroller firmware and my PIC programmer hooks up to a parallel port. What kind of PC doesn't have a parallel port?

As I sat there, it suddenly occurred to me that I had another PC at home. Sort of. A couple years ago, I built the kids a MAME machine out of spare parts I had lying around. It's ugly but it stands up well to punishment.

Inside the cabinet is a PC. A 166MHz Windows 95 box. And, yes, it has a parallel port. So, I...

  1. opened up the front of the MAME cabinet, exited MAME, pulled out the mouse and keyboard
  2. pulled the cabinet away from the wall
  3. plugged the parallel cable in
  4. used a CD to copy IC-prog from my PC to the MAME machine
  5. hooked up the programmer and propped it up on a crate beside the machine (see lower right of image)
  6. loaded the hex files onto 3.5" floppy and transferred them as well
  7. used IC-Prog to burn the microcontrollers
  8. put everything back the way it was
I've got a serial programmer on order, so hopefully I won't need to do that again.

Thursday, October 18, 2007

Serial Loopback

Finished the Power/Comms board. Serial loopback working. Started on a Universal Controller board.

Tuesday, October 16, 2007


More parts arrived. Bunch of stuff from Small Parts Inc. I seem to have forgotten to order the M8 threaded rod. It can wait.

Started soldering the Power/Comms board. The 12- and 2-pin headers are tough to insert. Bent a couple pins. Should be OK.

Turns out the board only uses the 12V line from a PC power supply. Had a 12V 3A supply lying around. Wired it up. Looks good. Light comes on. 78L05 produces 5v.

Sunday, October 14, 2007

Without Parallel

My current PC doesn't have a parallel port. Bugger.

Saturday, October 13, 2007

And More Stuff

Got a package from RRRF: filament, PCBs, extruder parts.

Zach says RRRF will be stocking the bearings and extruder screws, as well as the custom plastic body parts.

Found someone who's already burned the microcontrollers. I'll try this just as soon as I can scrounge up a 15V power supply.

As it sits now, I've got enough that I can start soldering some circuit boards.


So, I went through the trouble of downloading and installing Cygwin so that I could build the HEX files for the microcontroller firmware, only to realize later that all I needed to do was download them from SourceForge.

Friday, October 12, 2007


Downloaded and installed Cygwin, a Linux emulator I'll need to build the firmware.

Need to scrounge up a power supply for the microcontroller programmer. Also need one for the RepRap itself.

Thursday, October 11, 2007

More Stuff

Got a package from Mouser today. This is the bulk of the electronic components. I should be able to start programming the microcontrollers. The circuit boards should be coming soon from RRRF. At that point, I can start soldering.

Wednesday, October 10, 2007

First Package

The first package arrived today from McMaster-Carr. Pretty fast turnaround. Steel rods, springs, pulleys and toothed belts.

Monday, October 8, 2007


Used the RepRap BOM generator to get a shopping list.

Note: It specified 16 toothed belts instead of 16 feet. Also specified 4 packs of springs instead of 4 springs.

Used Newark for the stepper motors. On back-order. These seem to be in short supply. Wonder if there's another type that would be roughly equivalent.

Costs So Far
$26.85 - MicroController Pros
$97.10 - RRRF
$94.30 - Mouser
$182.16 - Newark
$97.26 - Small Parts Inc
$169.47 - McMaster-Carr

Total so far: $667.14

(Raises eyebrow at "cost will be less than $400 US for the bought-in materials" quote on RepRap site.)

Still Need:
- split bearing
- extruder screw
- printed parts

Hoping RRRF starts selling this stuff. Really not looking forward to machining my own extruder screw.

Saturday, October 6, 2007

Getting Started

Finally got the core RepRap software running on my PC. Tried running a few models through the simulator. Looks OK.