Wednesday, May 30, 2007


Adventures in RepStrapping: Day 4

I didn't get a whole lot done today, but I did manage to put the extruder together, and spent the rest of the day troubleshooting my Universal Controller Board communications issues. It appears that the JB Weld is holding so far on the drive screw and cable, so hopefully when I start pushing filament through it will hold up. All I need to do now is get the controllers working, attach the motors to them, set up the opto-endstops, and slap a table on the XY base, and I should be good to go...

Extruder - almost done

And below is a pic of Lamarck as he stands right now:
Lamarck - with head but no brains

He's a handsome enough fellow, but without any brains he's just not very useful at the moment. Thanks to the support of those on the forums and IRC who are giving me advice on the comms issue, I will hopefully have the brains working soon, and Lamarck will be able to make himself useful. :)

Tuesday, May 29, 2007


Adventures in RepStrapping: Days 2 and 3

I decided to combine days 2 and 3 for this post because day 2 was not particularly productive, and I didn't have much to show for my efforts. :) Day 3 definitely made up for it, however. Below is a picture of the machined parts I was able to make today:

extruder machined partsextruder drive screw
Yes, I know the PTFE tube looks like crap - that stuff has a nasty tendency to pick up any grease and dirt within a five mile radius :) The studding was quite difficult for me to machine. The steel in it is quite tough, and I had a lot of difficulty getting any tools to take a good bite out of it. I eventually found that the edges of a file work pretty good (especially the corners) for digging into the threads and starting a smooth groove. Once the threads are gone, it becomes a lot easier. I had significant difficulties in soldering the 3mm cable to the drive screw, so I'm trying JB Weld instead. I'll know tomorrow if it is holding well.

The acorn/dome nut for the extruder nozzle was surprisingly easy to machine - I was extremely afraid of snapping the 0.5mm drill bit I had (because I had only one), and the drill chuck I have for my lathe was too big to hold the bit. I ended up using my jeweler's drill (I'm sure a Dremel would work just as well), used a center punch to gently indent the inside of the nut (it was easier on the inside - concave surface), then held the jeweler's drill in hand to drill the hole - it was exceptionally easy, as the metal there is VERY thin. I also decided to grind a groove for the thermistor in the nut instead of a hole, since the thermistor I got (part #527-DKF104N5 from has leads on either end instead of both leads at one end:

thermistorextrude head thermistor groove

The nichrome wire I got from is unfortunately unshielded, so I decided that since I was already going to cover the first few threads of the heater with PTFE tape, I might as well cover the middle with a few layers of it as well, since PTFE is not electrically conductive. I used three or four layers of the tape on the middle of the studding to make sure that the nichrome doesn't poke through easily and short against the studding, then wrapped it in JB Weld:
extruder heaterheater element done

For completeness' sake, here is a pic of the thermistor attached to the dome nut with JB Weld:
thermistor done

Tomorrow I will assemble all of the pieces, and hopefully will have a functioning extruder!

I was also able to make a functioning Power/Comms board yesterday, and it passed testing OK, and I made a Universal Controller Board that failed communications testing halfway through, causing me to spend the next 5 hours troubleshooting it. As soon as I figure out what went wrong, I'll post what happened so that others don't make the same mistake (I'm suspecting it might be a firmware issue, and I'll try new firmware once I'm done writing this post).

Well, it's time for me to get back to soldering and testing the circuit boards... If all goes well, tomorrow will be an exciting day!

Monday, May 28, 2007


Adventures in RepStrapping: Day 1

Well, I've finally taken my first steps in the world of RepStrapping. My plan is to take an old Sherline mill that was collecting dust in the garage, convert it to CNC, attach an extruder head to it, connect it to the RepRap control boards and software, and see what happens. I have spent the last week gathering together my materials and today started putting everything together. I have a few days off from work, and I theoretically have all of the parts that I need, so I'm hoping that in a couple of days I will be able to extrude some plastic in an organized manner. :)

I decided to cheat a bit and use a commercial RP company ( to make the extruder parts for me. I found the price to be acceptable for the amount of time and aggravation it would save me. I ordered the parts on Sunday evening, and got them Tuesday. When I got the parts, I was a bit surprised at their size - though I certainly know approximately what size a millimeter is, all of the close-up pics on the site made me think they were a good bit bigger than they really are. So for those who are as dimensionally confused as I am, here is a picture of the extruder parts with a human hand as size reference: :)

extruder parts

To attach the extruder to the mill's Z-axis, I ordered a spare mill headstock spacer from Sherline, drilled and tapped it, and added a spare chunk of aluminum for support as below:

Extruder clamp1extruder clamp2b

And here is the Sherline mill, now newly CNC-capable and partially converted into a RepStrap:

Lamarck - day 1

I have decided to name him 'Lamarck' since he's kinda sorta like a Darwin, but not really :)

If all goes well tomorrow I will have the circuit boards assembled and hopefully an extruder as well.

Friday, May 18, 2007


Dropping foamboard

After printing the first five layers of the polymer pump this morning I finally had to admit to myself that foamboard was not going to work as a surface for printing HDPE objects on. While you can print a raft and a layer or two on it the repeated heating of the foam substrata warps the board to where you simply don't have a flat surface worth the name any more.

This was not a happy denouement for me. While I haven't exactly cornered the market on foamboard I have bought several pieces and it hurts my Scots-Irish soul to know that I'm not going to be able to use it. It was also not a very convenient time for this sort of development to manifest.

(Read the full story)


Five layers

I printed a raft plus two layers of the polymer pump before I went to bed last night. This time the raft was very solid (95%/30%). The first two layers went smoothly. At the third layer it became apparent that I had the layer thickness a bit low for a (95%/27%) flow rate, so I jacked it up to 0.67 from 0.5 mm. I kept fiddling with the layer thickness for layers four and five and finally abandoned the print after I managed to do layer five successfully but too messily to suit me.

I am going to let the print that I just did cool for a few hours to see if I get any warping or curling. So far there isn't any corner curling at all, but you never know. After that I will try a new print with fixed settings this time of 95%/30% for the raft and 95%/27% for the pump with a layer thickness of 0.62.

The pump will have 21 layers at that thickness. I'm getting there.


Printing the polymer pump

I've been pretty quiet these last few days what with getting the firmware/control panel interface working for the new axes reset auto-calibration scheme that Adrian suggested that I try. It's all pretty much working now and appears to be incredibly more reliable than the mass of patches and fudge factors that I was using before.

With the positioning problems largely solved I took on the problems of making solid objects. The shot glass didn't really count since it was a shell, not unlike the flask that Vik down in Auckland just made of PLA. I've taken on the making of a polymer pump as the first solid object print job for Tommelise.

Over the past few weeks I've discovered that there is a lot more involved in printing solid objects than I'd suspected before.

(Read the full story)

Monday, May 14, 2007


Lost weekend

I've been shifting over the firmware and control panel software to deal with a positioning strategy that includes using the limits detectors for periodic resetting of the axes' start points. I got that pretty much running in all three axes, but a bug crept in. One of the absolute position variables (for the y axis) began to show up with a weird number in it at what first appeared to be random intervals.

(Read the full story)

Saturday, May 12, 2007


More Progress on Acorn

Having a Saturday afternoon to kill, I got back to work on my RepStrap machine. First I reinforced the glue/nail assembly with some screws. Then, I decided that the bottom needed a re-inforcement board. I attached those, and then cut and drilled the holes on the Z axis structure boards. I all went pretty smoothly, and everything looks to be in good shape.

After I finished the construction of the structure, I went about installing the Y axis drive rods. I used a skate bearing on each end to allow the rod to rotate freely while also being anchored to one spot. It went pretty well. The rods rotated very easily, and the assembly was very easy. It also used standard parts: skate bearing, nuts, and washers. The rod was 5/16" (3 foot lengths), the nuts matched, and the washers were a bit oversized to catch the lip of the skate bearing.

Once I had it setup, it became obvious that some way of making the nut stay in place is needed. either using two nuts on each end, or a lock washer of some sort would do the trick nicely. After getting the rod assembled, I used some bolt cutters (a hacksaw works too) to cut the rod to length. Now, I just need to build some motor mounts and then I should be ready to rock!

I ordered some pulleys from McMaster, and I already have the belts, so this week I should be able to assemble the axes and test them out. My goal is to have the machine assembled by the end of this week! If things go well, then hopefully next week I can have the boards and computer all hooked up and ready to go. I'm playing with the idea of attaching the computer i bought to the machine and just having everything right there in one unit.

Also, I put caster wheels on the bottom to make it easier to wheel around the shop =)

More Photos on Flickr..

Thursday, May 10, 2007


RepStrap 'Acorn' Shapes Up

I found some time today to get into the shop with my friend Bennett. This guy has some excellent woodworking skills, and had some good techniques that made for a very nicely constructed box. We used nails and glue to tack everything together and on Saturday, we will drill pilot holes and use screws to make everything very solid.

The box came out looking quite elegant. No boards sticking out strangely. I think we drilled the holes too far down for the Y axis, but that is easy enough to fix. I also didnt have a chance to get the required threaded rod, so I'll have to stop at the store to get that before Saturday. It took us about 1.5 hours to build it, and half of that was discussing what exactly we needed to do. It went very smoothly.

After that was done, I decided to make more nozzles. Two very important orders came in. First was the cross slide vice I ordered from Harbor Freight ($60) and 100 aluminum acorn nuts ($90). The cross slide vice was a LIFE saver. It took me 45 minutes to drill 45 nuts. I only broke two drill bits (0.25mm and 0.40mm) That is a pretty darn good break ratio for drilling 45 nuts (0.25, 0.30, 0.35, 0.40, 0.70) I'll be doing some 0.55mm and some 0.75 nuts on saturday I think. These will definitely be up for sale in the future since it is a bit tricky to get the right setup to drill them.

Wednesday, May 09, 2007


NYC Adventure

Some call it the greatest city in the world. I call it the hardest place to get lumber in the world. In a city of 16 million people, you'd think there would be hundreds of hardware stores to service the building masses? Well, you'd be partially correct. However, hardly any of them carry wood, and the ones that do have a poor selection. That leaves you with the option of going to one of the 3 big-box retailers in the city. I also don't have a car which compounds difficulties.

I took the subway down to Lowes after work, shopped around for a while, and found a score: 5/8" x 2' x 2' particleboard sheets. I would really have preferred MDF, but they didnt have it in the size I wanted. Anyway, the nice thing about these types of boards is that they are cut very straight, have little warping (careful of water...) and are pretty strong. I snagged 5 of them. I also snagged some 1x4's for the support and the Y carriage. I tried to get a 4x4, but they only sold them in 6 foot lengths. way too long for me =) I settled on getting some more 1x4's and using some of those stacked as the z axis stuff.

Anyway, it was a ridiculous trip home. As I said, I had to take the subway. That meant tying up the wood, some in my backpack, slung like a crazy, wooden sword and me carrying the rest. I nearly hit a girl with the 4' piece of 1x4 which was really embarrassing. Did I mention particleboard is heavy? Yeah. Do they put lead in this stuff? On the plus side, I only had 1 transfer and there was a rad subway musician playing.

Tuesday, May 08, 2007


Resetting axes between layers

About a week ago, Adrian noticed the difficulties I was having with Tommelise's positioning and messaged me...

Forrest - do you re-zero X and Y between layers? That takes very little time, and can significantly reduce drift.

My initial reaction was that as slow as Tommelise runs re-zeroing between layers would add enormous amounts of seconds to a print job. Eventually, I worked out the numbers and saw the sense of what he was suggesting. Since then I've discovered that while re-zeroing between layers takes but a little extra time, whacking Tommelise into shape to be able to do that is a non-trivial job, given the state of some of the systems in Tommelise that are required to do that job correctly.

(Read the full story)

Monday, May 07, 2007


RepStrap 'Acorn' Plans

Now that the boards have been pushed out the door to production, its time to start looking forward to the actual mechanics. I dont have access to printed parts, but I do like the simplicity of Darwin's design. Unfortunately, using smooth rods for structure seems to be pretty hard if you dont have the printed parts. Others have successfully made them out of 4x4 studs, but it seemed to be pretty precise work.

Instead, I've opted to make essentially an open faced cube out of MDF. Hopefully I can use the straight, factory cut edges of the MDF to get a very nicely aligned machine. I will be using the same drive system as darwin for both X, Y, and Z axes... however they have been slightly modified for my setup. I will attempt to skip the smooth rods for the Z axis (i'm designing it so they be added in afterwards, if needed) , and just have the build platform mounted normally. For the Y assembly, like in darwin, there will be two threaded rods attached to the sides of the box in parallel. I will lay and attach two smooth rods perpendicular to those for the bearings. The Y stage will be a plank of 1x3 or something similar. I will make bearings out of CAPA and mold them to the smooth rods while its still warm.

The Y stage will hold the X axis. It will have two smooth rods in parallel, also held down with CAPA or some other means. Just like darwin, There will be a motor on one end and a pulley on the other. The X stage will then be another, shorter plank with the same CAPA bearings as the Y stage. All of these stages will be belt-driven.

As for the rotational bearings (these are the pyramid stacks on each of the threaded rods: Z axis / Y axis / X pulley) These are cheap, easy skate bearings. It goes: washer on bottom, skate bearing in middle, nut on top. The nuts on both ends of the rod, hold it tight, while the washer spreads the strain out, and makes sure the bearing can rotate freely. This makes the tolerance on the wood hole not very important, and should allow for easy adjustments.

Anyway, thats my plan. I'll be in the shop with a friend on Tues or Thurs attempting to construct it. He's a woodworker by trade so I have great confidence in him. Please let me know of any comments / suggestions.

More photos on Flickr

Sunday, May 06, 2007


Interrupt routines conflict with the hardware serial output on PICs

I ran across something that I thought might be of interest to Darwin developers while working with Tommelise. I'm using an 18F4610 PIC chip to drive Tommelise, as you know.

Recently, I decided to turn on the timer interrupt and shaft encoder interrupts at the get-go when I switched on the system. That saved me a lot of worry about missing shaft encoder pulses during down times. Before I'd been starting up the interrupt routines only after I'd read in an instruction over the serial link with the PC.

There was no trouble with that during initial tests, but when I started to run multi-hour prints I noticed that Tommelise would just stop at random times always after having completed whatever instruction that I had given it and before doing the next one.

(Read the full story)

Wednesday, May 02, 2007


Found the bug

I mentioned earlier that when I went over to absolute positioning derived from an interrupt routine from the moment of powering up I'd also managed to work a bug into the code. Well, it wasn't so much a bug as just forgetting to do a little book keeping.

What was happening was that whenever I did a control panel command to move the xy position around to start a new print the firmware in Tommelise's microcontroller was valiantly counting all the pulses that this manual reset of the xy position entailed. While I was keeping track of what happened after I hit the PRINT button, I wasn't keeping track of all the fooling around that I was doing beforehand.

I solved that by creating a new command for Tommelise that lets me set or reset the origin for a print on the xy plane. Now the thing is working smoothly again and not stalling.

I was also thinking for setting up a new origin for the print controller how much nicer it would be if I could use the toggles on a game controller to do that instead of the control panel. That way I could look directly at Tommelise as I was doing things instead of having to look over my shoulder.

I think that I am going to dig around in the detritus in my son's room to see if there are any spare games controllers in there anywhere.

Tuesday, May 01, 2007


Doing the little bits

A real problem with print layers is when you have to do infill on a small feature. On the Mk 1 AEM polymer pump there are two flanges on the upper side of the pump that are 20 x 20 mm. The extruder head is some 5 mm across and stays at roughly 160 degrees Celsius. If you do a whole lot of moving back in forth in such a restricted area as 20 x 20 you wind up with a puddle of HDPE instead of a nice print. The extruder head simply stays above one area too long.

I rewrote the XML for doing the flange on one side of the pump. I would print one extrusion thread, then turn off the extruder and proceed some 20 mm beyond. I would then advance one width of an extrusion thread and come back 20 mm back and lay the next flange thread. This let the thread cool nicely before having to see the heated extruder head again.

When I do things that way the surface treatment on the flange is virtually identical to the surface treatment on the main body of the polymer pump.


Tuning Tommelise

While I didn't quite intend to, I wound up spending all my spare time for the past several days tuning the positioning system and the positioning system/extruder interface on Tommelise. Now that I have the system running fairly well, I see more and more little issues that want addressing before I start trying to get a half-day print job going.

Here, you can see the detritus of my various experiments.

One of the big issues was the one of dealing with cumulative positioning errors. I first ran into this with printing out HDPE rafts onto which I print useful things.

(Read the full story)

This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]