Sunday, October 31, 2010

Extruder crontol

The original makerbot MK4 extruder worked well until it broke, but like most extruders the starting and stopping of the plastic flow was not very accurate. When printing simple objects this is not a problem, a few loose strings here or there are easily removed with a sharp knife. The extruder motor did reverse a bit after extruding to try to reduce oozing out of plastic, but the gear motor was not really suited for that purpose. I read that now in the the latest version of ReplicatorG the reversing is not switched on by default to reduce the strain on the motor. One of the reasons for building the new extruder based on Wades's design a while back was exactly the extra control over the flow of plastic which a stepper motor would provide. The new extruder has been working fine so far, but one thing I had not done yet: the new extruder was running all the time using a separate Arduino processor and was not controlled at all by the printing software. This works ok, but of course it produces a large amount of strings between the different parts of a model, like in this part of the new Z axis support:

The part is fine after some cleanup with a knife as can be seen here.

The current standard software for the mendel includes support for a stepper motor in the extruder, but the control circuit which is used by default is a double motor steering on the extruder mother board which is not very good for this purpose. I think there are several pieces of software being developped which look promising for the near future (e.g. here), but I don't have a standard solution right now. So in order to get control over my extruder now, I hooked up the output of the extruder mother board which used to go to the MK4 extruder gear motor to my arduino board which is controlling my stepper motor. Since the extruder board is sending 12V signals I reduced the signal voltage with some diodes and resistors so it is safe to connect to the input of the arduino.

The arduino will now detect the extruder motor state from the 2 signals and determine if the motor should go forward, backward or stop. There are some limitations, but it works!

I printed this nice puzzle, a Philippe Dubois burr from thingiverse, which consists of 6 different parts. All parts where printed at the same time and the extruder stopped and started during moves between the different parts for each layer (first layer 1 for all parts is printed, then layer 2 for all parts etc.). As you can see the amount of strings is very little; strings are not completely gone, but no comparison to the z-axis picture above!

The puzzle looks like this when assembled:

The puzzle is much more difficult than I imaged. There is a good website describing the different forms of the puzzle and also includes animations of the solutions. This particular puzzle is what is described on the website as a level 6.4 burr puzzle. This means it takes 6 (!) moves before you can remove the first piece, after that it takes 4 moves before you can remove the second piece. After this the other pieces fall apart.

Thursday, October 28, 2010

Contest won, glow-in-the-dark ABS on the way!

A few designs in the previous blog posting were submitted to the Makerbot halloween contest. This week the result was published and the bat mobile design was one of the winners! Makerbot actually choose 2 winners, the other winning design was this great spiderweb.

The price for the contest is a roll of glow-in-the-dark ABS plastic from the makerbot store which is on the way to Finland now.
The Bat mobile will definitely be printed again in this new ABS and I'll post some pictures of the bat mobile with the lights off.

For now just a fresh picture of one of the bats with the lights on:

The bat was created using tricks described in the wiki of EvilMadScientist here, originally intended for the eggbot. One final step in the creation process is the conversion of an SVG file of the source image into gcode. For this I wrote a little script which I had intended to document later. A newer version of skeinforge however apparently has now a built-in way to import SVG files and create gcode from that so I won't be working on the script anymore (I have not tried the new version yet). Of course if someone is interested let me know and I'll share what I have.

Thursday, October 21, 2010

Recently printed objects

This is just an update with some objects printed during the last weeks.


In the book -the Da Vinci Code- a cryptex plays an important role. The cryptex is a cylinder with an important document in it, protected by a code word which can be set by turning rings around the cylinder.

Design files and more images here.

Elliptical Gears  This is just toy downloaded from thingiverse, no real life use!

2D single line objects made as entries for the makerbot halloween contest.
- 2 halloween cards:
     Grim Reaper
- Bat Mobile  

The bat mobile and the cards are designs from images which where converted first to gray scale and then to a dotted image where dark areas are represented by more dots and lighter areas represented by fewer dots. A special algorithm then tries to find the shortest single line though all the dots which results in an image which is made of a single circular line.  A good writeup of the procedure can be found here. This line image is than coverted directly into gcode as gcode is basically a description of a line too. Printing a few identical layers on top of eachother gives the object some strengh.

Monday, October 11, 2010

New z-axis installed

The new z-axis base was installed and commissioned this weekend. The new base pieces are working fine and the printer is looking less cluttered with the old wooden motor supports replaced (more info about the old configuration here). Only one motor is doing the work now with a belt connecting the 2 vertical threaded rods; left and right won't get out of sync anymore.

A small reconfiguration was needed for the software since the motor has an 8 tooth pulley and the rods have 20 teeth. I still use standard replicatorG software; changing the following line in the machine.xml file from:

            <axis id="z" length="200" maxfeedrate="100" scale="320"></axis>


            <axis id="z" length="200" maxfeedrate="100" scale="800"></axis>

did the trick.

The printer looks like this now:

Monday, October 4, 2010

New z-axis, part 2

The new z-axis is going through some tests before the 3D printer will be upgraded. See pictures of the testbed in previous post. When letting the stepper motor run, it seemed that the belt tried to escape from the pulley which is on the stepper motor when turning in one direction. This was not foreseen and would be disastrous if it would happen during a print. To make sure that the belt can not run off the pulley, an additional idler with large washers is mounted so that the belt will be forced back to the middle of the pulley should it try to escape. Fortunately there was some space right next to the motor where an extra hole could be drilled for the idler. It seems to work fine now as can be seen in this short video:

One reason why the belt was trying to move down the pulley is that the motor was not mounted 100% straight. It seems the PLA was warped a bit more than I thought initially. The motor is now mounted straight by adding 2 very thin washers between the PLA plaform and the stepper motor on one side. The additional idler will be a useful saveguard anyway; it also changes the path of the belt slightly so that the belt has more contact with the pulley, reducing the chance the belt would skip.

I still want to do some more tests with the threaded rods in place before I upgrade the printer. More on that later. Also, the y-axis needs to be lifted a bit to allow the z-belt to move under it.

New z-axis

The part which work the least well currently is the motor drive of the z-axis. The z-axis is constructed using 2 motors, one on each side. Since the construction is not completely straight, the vertical threaded rods wobble a bit. The threaded rods are also made of cheap galvanized iron and small bits of metal are falling off when in use. Forgetting to lubricate the threaded rods regularly causes one side of the z-axis to stop turning causing some damage to the system. This setup was the easiest to construct in the beginning when I did not have a 3D printer available to create parts. Since upgrading the extruder, the z-axis construction creates a bigger problem; the new extruder does not stick out from under the x-axis quite as much as the old one, meaning the z-axis needs to be lowered further. But the lower the x-axis is moved the worse the misalignment for the threaded rods starts to cause friction. To be able to print without lowering the extruder too much, a temporary solution was to increase the height of the print bed using a square piece of foam some 3 cm thick (visible in the picture in this post). This works, I printed all the PLA on it so far, but the print bed is not as stable as it used to be. So time to improve it.

I bought the mendel timing belts a while back and printed z-pulleys for the threaded rods. Since I do not have a mendel frame in the printer I needed to create a base for the z-axis threaded rods and a single motor so they can be mounted on the wooden base of the printer.

On one side only a support for a ball bearing is needed which has space for the z-pulley under it. It looks like this:

On the other side the same construction is needed, but in addition a stepper motor needs to be mounted and an idler wheel which can be moved to adjust the belt tension.  It was printed upside down like this:

This was the biggest object which I printed so far. It took 4 hours to print it and measures 6 by 12.5 cm. Even PLA starts to warp a bit at this size, but the warping is small enough that it the object is fully functional.

Before this setup is going to be integrated with the printer I want to make sure it is reliable, so I first mounted it on a piece of scrap wood to run some tests. The hex bolts temporarily take the place of the vertical threaded rods.


The testing has not been finished. More information about the success (or failure) later.

Sunday, October 3, 2010


The 3D printer is built on a plank of wood of  40 by 80 cm This gives ample space to place electronics, power supply etc. on the base and have everything easily accessible. It did take a lot of space on my worktable so it had to go somewhere else. Rather than getting another table in the room, I decided to mount legs under the base and make a table out of the printer. The legs are easily removed if needed for transport.