Saturday, December 6, 2008

Chain of Events

Yesterday, one of the Y belts slipped again. This caused the carriage to skew slightly...
...which caused the Y flag to miss the opto...
...which caused the carriage to crash and snap the Y flag.

I readjusted the Y axis yet again and replaced the Y flag.

Shortly after that (and possibly related) the thermistor failed. The printer was plotting at the time but, when the thermistor is an open circuit, the extruder PIC stops responding to the host. This resulted in the extruder sitting in one spot, churning out molten filament.

I replaced the thermistor, slapped on some JB Weld and let it sit overnight. The new thermistor had different characteristics (100k vs 10k), so I had to update Rz and Beta. Everything else stays the same.

Currently putting everything back together.


Apparently, on putting it back together, I swapped the pins on the extruder motor. Caused a bit of confusion for a while but no damage.

Sunday, November 30, 2008


I tried an experiment in support material. The idea was to use the same extruder for both support and build. The host software allows you to do this but it's a relatively recent change. It's not available in any of the official releases (I think, correct me if I'm wrong on that) but, if you build from the SourceForge source, you can do this.

The first thing I did was create a second extruder in the host settings. I copied all the Extruder0 settings and made them Extruder1, then set NumberOfExtruders=2. Extruder1's settings differ from Extruder0's like this:

ExtrusionInfillWidth(mm)=2.4 (instead of 0.8)
NumberOfShells(0..N)=0 (instead of 1)
ExtrusionSpeed(0..255)=175 (instead of 215)
MaterialType(name)=support (instead of ABS)

The intent here was to make a sparse and loosely-bonded mesh. The lower extrusion speed causes the ABS to be stretched into thin threads. The wider infill width creates an open weave pattern. The zero shells removes the outline around each layer. The end effect is a structure that looks a bit like a plastic pot scrubber.

To test, I used a 20mm sphere with a support object. I exported the two objects as sphere.stl and sphere-supt.stl. Now, to get the two objects to print together, you have to do this:
1. Load sphere.stl (when prompted, choose ABS)
2. Select the object (this will bond the object to the next one loaded)
3. Load sphere-supt.stl (when prompted, choose support)
4. Position and orient the (bonded) object in the build area

Note: The select-and-load thing to bond objects is a relatively new feature too.

The first image above shows the object as printed. The blobiness is mostly due to not having a proper nozzle cleaner yet. The second image shows the object after picking the support material off using my fingernail. The support material crumbled off fairly easily from the lower layers but was more difficult on the upper ones. The third shows the object after cleanup using a Dremel.

The upper layers of the support object are probably unnecessary and do more harm than good. The build can support itself once it's past a 45 degree overhang. I might try again with smaller support object.

Sure, it's a long way to go to make what's essentially a marble but it was an interesting experiment. I haven't tried anything with a purely-horizontal overhang yet. Not sure how that'll turn out.

Y Axis Cleanup

I think I found the Y axis problem. It looks like the X motor mount was catching on impefections of the rod it rides on. Two points seem to be a problem:

1. The block that constrains the lower side had a sharp inside edge. This seems to have been due to the molding process. Mine are molded parts, not printed or laser-cut. I removed both of these blocks (one on either side of the motor) and ground down the edges.

2. The rod was also catching on the side of the hole it passes through. When properly calibrated, the rod shouldn't even touch the plastic. I could've sworn I had that right in the first place. Best guess is that the X axis shortened over time due to a) X belt tension and b) the fact that I didn't tighten the X axis rods enough. I loosened the X belt, adjusted the X axis length and tightened everything back up again.

After that, I cleaned and lubricated the Y axis rods and used the stepper exerciser to run it through its paces. Seems to be behaving now.

Saturday, November 29, 2008

Y Axis Troubles

Been having a lot of trouble with the Y axis. Seems to jam frequently, especially when traveling in the negative direction. What's worse is, since the Y axis is driven by two belts, if one belt slips and the other doesn't, the X axis skews, making things even worse.

Sunday, November 16, 2008

A Host of Problems

Decided that the 0.8.3 host wasn't versitile enough. Tried downloading the latest source. Messed around with Eclipse and SVN. Eventually got a compile. Ended up deleting the old properties file and letting the host build a new one. The properties had changed so much, they didn't really apply anymore. Played with the values until I got it more or less printing.

Ran into difficulty with orientation. Opened the minimug object and, as usual, rotated it on the X axis to get it upright (ctrl-X). Started the print and got what looks like a vertical slice through the center of the model (tapered square-ish U shape). The print seemed to be centered on the warmup segment as well.

Set RepRap_Machine to Simulator to save on filament. Still got the same behavior. A lot easier to see using the simulator. The simulation starts with a vertical slice through the middle and works its way across to one edge. After it finished, Hit Print again and it printed correctly. WTF! Restarted the app, loaded minimug again and got the sideways print. Second print came out right, though.

Restarted and loaded the file again. Played with the 3D window a bit to see if the model was really on the grid and not intersecting it. Hit Print and this time the first print came out right. Again, WTF!

Half an hour of fiddling later figured it out: The model prints incorrectly only when it's selected. As long as you deselect the model first, you're fine. Mentioned this to Adrian. Fixed now.

Set up the properties to avoid lifting the head between segments. Also zeroed any extruder delays. Turned on the foundation parameters (raft).

Tried printing a RepRap ring. Foundation printed OK. Partway through the first "real" layer, the head homes, sits there for a bit, then picks up where it left off. But the extruder motor stays off for the remainder of the layer.

Checked to make sure I had all the pause and wipe parameters off. Kept doing this periodically. Happened to look at the screen at the right time and noticed the heater warmup dialog pop up. Turns out the head was cooling off, which caused the warmup routine to kick in, which apparently caused the extruder motor to stop for the rest of the layer.

Reason the warmup routine kicked in is that, somewhere in the past few days, I messed up Extruder0_hm, causing it to have trouble maintaining its working temperature. Set the value correctly. Will try again tomorrow.

Sunday, September 7, 2008

More Mods

I've almost got the machine to the "set it and forget it" point. It's more like: set it, watch to make sure the first layer sticks properly and check once in a while to make sure it isn't completely messed up.

Here are some recent tweaks...

Floating bed, mounted on 3 springs and held down with bolts. Makes leveling a lot easier. Also takes some of the pain out of a head crash.

Z opto guide (the blob of polymorph). It's essentially an inverted V with the opto's gap at the apex. Keeps the Z opto flag from running into the opto posts.

Drilled a hole through the shaft couplers (both Y and Z) and inserted a pin.

Added a lubricator (oily rag) to the filament guide (bent paper clip).

Two-ply balsa raft (two sheets of balsa glued together cross-grain). Held down with carpet tape. I tried using antistatic foam but it works a little too well. It's extremely difficult to remove without ruining the foam.

Saturday, September 6, 2008


Filament wasn't feeding at a consistent rate. Eventually figured out that the drive coupling was slipping relative to its gear. Had to remove the gear assembly to tighten it (added a bit of superglue to keep it in place) and took the opportunity to add grease to the gear motor internals.

Also noticed an increasing about of drift on the X axis. Tracked that down to the X motor pulley working itself loose. That was a bit more difficult to fix. Didn't really want to disassemble the X motor bracket just to tighten the set screws. Managed to achieve the same result by rotating the pulley until the set screw lined up with the X axis, then slipping an allen wrench between the belts. Did this for both set screws.

Currently trying to print a "motor holder" onto an antistatic foam raft.

Tuesday, September 2, 2008

Bed Covers

I've been experimenting with various raft materials. The MDF bed isn't suitable for a build. The melted plastic doesn't stick to it. What you need is something that sticks to the Here's a list of things I've tried:

Polymorph (ShapeLock)
- easy to use, sticks well, reusable
- heat from extruder softens it, allowing warping
- hard to get perfectly flat

Adhesive Paper (full-sheet labels)
- sticks to bed
- plastic doesn't stick

Adhesive Plastic (self-adhesive laminating sheets)
- sticks to bed
- plastic doesn't stick

Plastic Canvas
- doesn't work at all

Carpet Tape
- sticks to bed
- plastic sticks but not well enough to prevent warping

Balsa Wood (1/8" sheet)
- plastic sticks well provided first layer is low enough
- curls easily across grain, allowing warping

Balsa Wood (2 sheets glued together with orthogonal grains)
- plastic sticks well provided first layer is low enough
- minimal warping

I found it's critical to have a perfectly level bed. In order to get a good first layer, you need to get the nozzle extremely close. If you get too close, though, the nozzle will dig into the surface. This is especially bad if the head is moving in the negative Y direction. In that case, the surface catches the nozzle and drives it downward, resulting in either a gouged surface or a damaged head.

One thing I've been meaning to do is add a Z-bed like the one shown here. It's basically a secondary bed mounted on springs. This will allow easier adjustment and should also make head crashes less painful.

I also need to replace the Z opto flag with something a bit less flexible. There's a tendency for it to slip to the side a bit and miss the slot on the opto. Also, if I'm adding the Z-bed, it'll need to be longer anyway.

Tuesday, August 26, 2008

Best Laid Plans

Tried printing the "motor-holder" model. From left to right: 1) Y belt slipped a bit, 2) Y belt slipped a lot, 3) actually printed reasonably well.

This a first attempt at "gear-bush-holder", which I modified (hopefully correctly) to print without support. About 1/3 of the way through, the Y motor coupler came loose.

Monday, August 25, 2008

Mod Squad

Some modifications I've made...

Blobs of polymorph on the X and Y carriages to keep them from wobbling so much...

A bent paperclip to keep the filament out of the way...

A piece of plastic tubing clamped to a bookcase to feed the filament...

Saturday, August 23, 2008

Growing a Part

Tightened up the X and Y axes a bit to keep the head from wobbling. Started on a motor bracket...

After a few layers, the Y axis skewed and I had to stop the build. Two things seem to be happening here:

1. I've set the layer height too small. After a few layers, the nozzle is dragging through the work.
2. The Y belts are too loose, causing them to skip off their drive pulleys under load.

The net effect is that the build runs fine for a few layers, then slips in the Y direction.

Tightened the belts and adjusted ExtrusionHeight. Will try again in the morning.

Saturday, August 16, 2008

Supply and Demand

I tried printing off Vik's RepRap ring today...

...which the kids thought was really cool..., to avoid sibling infighting, I had to make a second one. I imported the STL into Art of Illusion, converted it to a triangle mesh, scaled the mesh by 0.75 and exported the model as a new STL. This gave me a new ring at 3/4 size...

...for little hands...

Thursday, August 14, 2008

The Ascent of Mug

Some attempts at the minimug model.

Wednesday, August 13, 2008


Found that my Y axis was slipping on one side. Tightened the Y belts, X belt and all of the pulleys. Realigned the Y axis. Adjusted the infill width from 1mm to .8mm.

Melted some ShapeLock and made a 3mm-thick raft, attached it to the print bed. Started a new build.

Got most of the way done and realized I was running out of filament. Did an "in-flight refueling" by patiently holding a new piece in place until the drive screw grabbed it.

Waited for it to finish printing (about 1 1/2 hours). Soaked in hot water and peeled off the raft.

Cleaned up the lumps and threads with a Dremel.

Here's the result. It may not be pretty but it holds water. Or, more to the point, it holds single malt. Cheers.

Zeroing In

After months of trying to get the original extruder working, I finally gave up and got a new one. Someone (I won't mention who, to avoid them being inundated with requests) took pity on me and sent me a fully-assembled and tested extruder. This one has a number of refinements over the original:
- the drive screw is straight, no flexible shaft
- the motor is geared down to improve torque
- the nozzle is smaller, machined from brass stock instead of an acorn nut
- all wires are soldered to a 15-pin D-sub connector

Another thing I noticed is that the springs are much heavier on this extruder. I'm not sure how important this is to the operation of the extruder but I suspect it's responsible for at least some of the problems I had.

I haven't opened it up yet but I suspect the bearings are done better than I managed as well.

Once I wired in the new extruder (I had to get my hands on a female 15-pin D-sub), I tried a few extruder tests, calibrated the heater and measured the extrusion rate.

The extra gearing makes a huge difference. The motor isn't under as much strain and the flow is much smoother. I'm currently extruding ABS (from McMaster) at a leisurely 3mm/s. I could probably go faster but I don't want to strain the PTFE barrel.

I need to update the PIC firmware and host software at some point but I want to print a complete model first. Trying not to change too many variables at a time.

Last night, I managed to get an entire shot glass printed. My infill is a bit too loose, so it leaks. It also looks like the Y axis slipped a bit part way through the build.

It's close, though. I suppose I should pick up some scotch at the liquor store, just in case.

Tuesday, July 22, 2008

Glimmer of Hope

I'm on my Nth rebuild of the extruder and I think I'm finally getting somewhere. Things I've learned:
- Lubricating the filament helps a lot. I've now got a piece of oil-soaked cotton strapped to the inlet of the extruder.
- The bolts holding together the two halves of the extruder body should move freely in the holes. If they're too tight, drill out the holes.
- Keep the drive speed down. I can push the extruder to 12mm/s but 8mm/s is more reliable.

I've currently got the extruder clamped to the frame to make testing easier. I've been timing the 250mm drop from the nozzle to the tabletop to determine extrusion speed.

Next step is to mount the extruder on the carriage and recalibrate the Z axis.

If all else fails, I can always order a new extruder from BitsFromBytes. The new design looks pretty good.

Friday, June 27, 2008

Small Drill Bits

Found some small drill bits. The set includes 10 bit ranging from 80AWG (0.34mm) to 61AWG (1mm). It's available through Amazon for $10.

Saturday, June 21, 2008


Trying to rebuild the extruder. Using a larger PTFE barrel (60mm x 25mm dia) and heater barrel (60mm long). This allows more overlap between the two barrels (25mm), reducing slippage. The extra length also reduces heat transfer to the plastic extruder body. The additional mass makes it harder to heat, though.

Currently trying to get the filament to push through consistently.

Friday, April 4, 2008


Having a lot of trouble getting a reliable extrusion. I had two PTFE barrels, both of which are distorted too much to be useful. I had two extruder clamps (one quick-fit, one regular). Both have suffered heat damage.

See, here's the problem I'm running into. Plastic, when subjected to heat and pressure, tends to sag. This means that, under normal operation for extruding HDPE, the nozzle tends to edge downward. I've had a couple tests so far where everything started out fine but ended up with the nozzle grinding into the bed.

I'm beginning to think that the current extruder design just can't do HDPE reliably. It wasn't really designed to do it in the first place.

Current plan: Rebuild extruder using stronger components. I've got a 1" diameter piece of PTFE on order. I might end up making an extruder clamp out of MDF. I think I'm going to buy some CAPA to see if it's any easier to use.

Saturday, March 22, 2008

Polymorph Substrate

Blobs #2 and #3 both broke free of the base before the build completed. This prompted me to search for a substrate that would hold the build in place and be relatively easy to remove afterward. Tried a bunch of things, most of which don't work.

One thing I tried shows promise. I melted some polymorph (aka friendly plastic) and flattened it into a sheet roughly 1mm thick. I ran a layer on this, holding it down with my hands and trying not to burn my fingers on the extruder. It worked fairly well, considering the sheet was a bit uneven. A polymorph sheet has the additional advantage of being reusable. You can melt it in hot water and re-form it.

Now I just need to find a way to make flat sheets of polymorph.

Thursday, March 20, 2008

Blob #1

Ran into some problems with the extruder. It's very hard to keep it extruding at a consistent rate. Currently using compression springs tightened down pretty hard. That seems to keep things going.

Spent some time playing with the various settings. Documentation on what each setting does can be found here. Noticed that, with my version of the host software (0.8.3), setting Extruder0_OffsetZ to 0 caused occasional I/O errors. Setting it to 1 seemed fine, though.

The blob pictured above is supposed to be Minimug.stl and it's roughly the right size and shape. The key word here is "roughly". This run was done at the highest extruder speed I could manage, the heater running a bit hot and no fan attached. End result? It's a bit wibbly and it leaks. Definitely not toast-worthy.

Got some good information out of it, though:
A margarine container lid works well as a build raft. The plastic sticks to it nicely.
The parts that printed correctly are quite solid. Very good adhesion between layers.
The X, Y and Z scaling's pretty close. Might need a bit of tweaking but not much.

Next step will be to run it again at a slower speed.

Saturday, March 15, 2008

If At First You Don't Succeed...

...get out the hacksaw. The extruder broke again. This time it was the flexible shaft snapping. Decided to eliminate it entirely and have the motor drive the screw directly. Added a filament guide made from a bent paperclip to keep the filament away from the motor.

Tuesday, March 11, 2008


Attached the extruder board. Left the extruder off and added a resistor to simulate the thermistor. Loaded the minimug model and ran a build to see if it could make it through without shaking apart. The Y motor coupling came loose but everything else seemed to work reasonably well. Drilled out a pit for the Y coupling grub screw. Should keep it from slipping.

The good news is that it finished the build without a) crashing the host software, b) coming apart or c) bursting into flames.



Picked up some cable clamps to attach the PCBs to the frame. Used some zip ties to clean up the wiring.

Attached a pencil to the head bracket and used the line tool to draw 3-4-5 triangles (actually 60x80mm). The pencil was a bit wobbly but it was enough to verify that my XY frame is square.

Monday, March 10, 2008


Hooked up the electronics. Just the comms and 3 stepper drivers. Left the extruder board out of the loop for now. Don't seem to have any PCB mounts and the diagonals I would've mounted them on aren't installed, so I just left them hanging in a rat's nest arrangement while I did a systems check.

Fired up the host app and opened the stepper exerciser. First thing I noticed was that the Y axis kept moving in the same direction no matter where I moved the slider. Turned out to be a mechanical problem with the Y opto. It was reading "home" even when not blocked. Once I fixed that, I noticed that both the X and Y axes were running backwards. When I moved the slider in the positive direction, the stepper would move the head away from the corresponding opto. I reversed the order of the wires on both motor connectors and that seemed to fix it.

This is very odd because, at the time, the instructions indicated that the Y and Z motors should be wired one way and the X should be wired opposite. As it sits now, I've got the X and Z wired one way and the Y opposite. The instructions have since been edited and there's now only a single note indicating that the X stepper is the odd one out. There used to be a table showing the wiring of the Y and Z versus the X but it's no longer in the wiki. I managed to find an archived version of the table and I've edited it to the wiring arrangement I'm currently using:

Pin (X & Z axes) Pin (Y axis) Colour
1 4 Red
2 3 Black
3 2 Green
4 1 Yellow

Note: The above is the wiring for the Nanotec motors.

The good news is that the Z axis worked perfectly the first time. I had made three mods to it:
1. Used a metal motor coupler
2. Added a belt tension idler
3. Removed the backlash springs and screws

The end result is a Z axis that moves smoothly with very little strain on the motor. As far as I can tell, the weight of the bed is more than enough to prevent backlash.

After a bit of fiddling, I worked out that I'm getting roughly 10 steps per mm on X and Y and 300 steps per mm on Z. Total travel on X and Y is about 230 mm and Z is at least 90, depending on where the nozzle ends up.

Sunday, March 9, 2008

Opto Flags

Installed the optos and flags. Had a little trouble working out the Z flag. The instructions show this configuration:

...but I couldn't find the Z flag base. I had a few leftover bits but not that one. I opened up Art of Illusion and started looking at the models. Found "z flag adjuster housing", which looked like one of my leftover bits. So, I googled "z flag adjuster" and found this:

From there, I assembled something that looked like that from the parts I had on hand and bolted it to the bed. Looks about right.

Saturday, March 8, 2008

Squaring Up

Added the diagonal ties to the sides. I did only one per side, hence the extra tie brackets for the tension idler. I had to shim the 5/16" rod in order to get a tight fit.

Squared up the X, Y and Z. Didn't have a squaring jig, so I did a lot of tweak-and-measure. I haven't added the fan or extruder. Going to hold off on that until later.


Installed the Y axis assembly. The cobbled-together Y motor coupling fits, provided I put the drive pulley on backwards (collar away from motor).

Ran into a problem with the Z belt. It ended up a bit loose. Rather than take it apart and redo the whole thing, I built a tension idler out of spare parts (scrap studding, washers, nuts, diagonal tie brackets, compression spring, pulley). Seems to keep things from slipping.

Friday, March 7, 2008


Installed the base diagonals. Pretty straightforward. The tie brackets from BitsFromBytes don't have embedded nuts but the intent is to tighten the nuts on the diagonals until the plastic distorts enough to grip the uprights. Seems to work just fine.

Spliced together a Z belt. Ended up sanding down the belts before gluing them together. Seems to hold better that way. Used a blob of polymorph to make a splicer.

Wrapped a zip tie around the Z motor to hold it steady.

Top Frame

Added the top frame. Verified that all four sides were the same length. Slid it down onto the Z studding to square up the bed. Tightened the bed bolts.

Raised the top frame to its proper height and locked it off. Noticed that one of the Z studding assemblies was missing a nut and washer. In the middle. Bugger. Wound the studding up as high as possible, slipped it out of the corner block, removed half the nuts, washers, etc. Threaded the parts back on, double-checking the parts as I put them on. Wound the studding back into place.

Measured the height of the Z drive pulley above the corner block. Adjusted the other four pulleys to the same height. Tightened up the nuts on the four Z studding assemblies, adding grease where it seemed appropriate.

This image also shows the improvised motor coupling. Seems to work reasonably well. Have to see how it does under load.

Thursday, March 6, 2008

Bed Time

Cut, drilled and installed the bed. The bed is 400mm square and 12mm thick. That translates to about 15.75" square and 1/2" thick. I bought a 24x48x1/2" sheet of MDF and cut it down to size.

The holes are 5.4mm and 7mm. Meh, call it 7/32" and 1/2". While drilling the holes, I put a piece of scrap under the sheet and drilled through both. Makes for cleaner exit holes. Here's a pic of the exit holes in the bed (green) and the scrap (red).

Here's the bed installed with all 12 bolts (loosely) in place. There weren't any bed clamps in the parts kit, so I'm assuming they aren't needed.

Tuesday, March 4, 2008

Going Vertical

Finished the 3 studding idlers and the studding drive. Attached them to the bottom frame. Mounting the motor's a real pain. I had to take it apart and redo it a couple times before I got it right. The cobbled-together motor coupling sees to work just fine.

Monday, March 3, 2008


I picked up some 5/16" threaded rod couplings (7/8" long) and some 6-32 grub screws at the hardware store. The inside diameter of the threads is just slightly larger than the motor shaft. I bored out one end with a 5/16" bit to a depth of about 1/4", then drilled and tapped two 6-32 holes along the length. The grub screw for the 5/16" bore is about 1/8" from the end. I made two of these: one for the Y motor; one for the Z.

The image here is a test fit using some scrap rod. I've put the Y drive pulley on backwards to give myself more room for the coupling. The motor shaft isn't quite as snug as I'd like but it should do.

The current plan is to use the McMaster pulleys and belts. I've bored all six pulleys to 5/16". One of the Y pulleys is slightly off center. I may need to replace it.


Found some compression springs at the hardware store. They were over with the screen door accessories. There are two pair in the blister pack: 1/2"x1 1/2" and 7/16"x 2 1/8". I used the longer ones.

Sunday, March 2, 2008

Parts Problems

Started on the studding idlers. Looks like the Z idler pulley size has changed since I ordered my parts. Using the plastic ones from BitsFromBytes instead of the aluminum ones from McMaster. Those had the wrong bore (1/4") anyway.

Also looks like the springs I got from McMaster are the wrong size. They're 9/32" OD, which makes them smaller that the studding they're supposed to slip over. I can probably find some reasonable springs somewhere.

It also looks like the toothed belts and pulleys I got from McMaster are a different pitch than the RP'd pulleys. Not sure what I'm going to do about that.

XY Frames

Assembled the two XY frames. Lessons learned:

  • It's easy to overtighten the grub screws and crack the plastic.
  • When assembling the top frame, you need to run the two upper rods through the X axis assembly.
  • The "Bearing insert 180 X" in the X axis assembly is the one with the oblong hole.
  • It's really hard to push an 8mm rod through a 5/16" hole.
Here are some pictures of the two frames stacked on top of each other. Note that all four corner blocks on the top frame have the face with 4 holes facing inward, along the line of the X axis. As far as I can tell, this will allow me to mount the Y bearing brackets correctly.

Friday, February 29, 2008

Drill Bits

Spent the evening drilling out the corner blocks. Four vertical holes with a 5/16" bit (roughly 8mm). Five horizontal holes (one around back) to clean out the trapped nuts using a 5/32" bit (roughly 4mm), followed by an M5 screw to clean up the threads.