MakerBot enhancements

Printruder II

Posted in Designs, Hardware, MakerBot enhancements on March 8th, 2010 by Zaggo – 2 Comments

My first design of a printable extruder (the “Printruder”) was quite a success. Not only that I printed lots of objects with it, there are also several other MakerBot operators, using a Printruder successfully as a drop in replacement for the MakerBot Extruder MK3/MK4.

Nevertheless, I tried to simplify the design of the Printruder since a while for several reasons:

  • Reducing the number of parts to print
  • Easier loading/undloading of filament
  • Easier adjustment of pinch pressure
  • Stylish design : )

Here’s what I came up with:
Printruder II

.

The Printruder II

The Printruder II is built from only 2 printed parts (click on the images to zoom in):

  • The Motor Block is now self-supporting, so no more base plate. I also integrated the insulator retainer plate. So instead of three printed parts in the Printruder, we now have only one:
    1-Motorblock.png

    .
  • The Idler Block is much smaller than the idler block in the first Printruder design. It’s now integrated inside the motor block. With this design, it’s now possible to press the idler wheel against the pinch wheel with only one bolt. This makes it very easy to load/unload the filament and also to adjust the gap between idler wheel and pinch wheel:
    2-Idler.png

    .

Download the STL files for all printable parts at thingiverse.com: http://www.thingiverse.com/thing:1980

Intructions

Here’s what you need to build a Printruder II:

  • Printed Motor Block*)
  • Printed Idler Block
  • 3 x M3×20mm bolt
  • 1 x M3×16mm bolt
  • 1 x M4×40mm bolt
  • 3 x M3 washer
  • 1 x M4 nut
  • 3 x M3 nut
  • 6mm pipe or rod, 20mm long (alternatively a M6×20mm bolt)
  • 2 x M6 washer
  • 2 x 626 ball bearing
  • Kysan DC Gear Motor
  • MakerBot pinch wheel or better: 10mm worm-gear style pulley*)
  • MakerBot heater section
  • Extruder controller board

Optional:

  • Printed PCB holder (2 parts)
  • 4 x M3×16mm bolts
  • 4 x M4 nut

Most likely:

*) Please note that there are two slightly different versions of the motor block: one for the original timer belt pulley (pinch wheel) and one for the 10mm worm-gear style pulley. Be sure to print the correct one!

Step 0:

Print all printed parts.

As always, it’s a good idea to clean all holes with a drilling machine (or something like that) after printing.

Step 1:

1.1-M3-Heater-Nuts

.

Insert a M3 nut in each hole in the bottom of the motor block (left and right of the filament path). These captive nuts are needed later to attach the heater section to the motor block. Handling the M3 nuts inside the motor block is a very fiddly thing. Also they tend to fall out when turning the motor block over later. Thus I strongly recommend to use (a little!) hot glue on the M3 nuts when inserting them. Don’t use too much glue! Just a little bit on the outside of the nut.

The best way to insert the nuts is to stick a long M3 bolt though the hole in the motor block (from the outside). Then put the nut on the bolt, apply a little bit of hot glue and then pull the bolt back until the nut sits nicely, all the way down, inside the hole. Wait a few seconds for the glue to set, then unscrew the bolt (see also this image).

Step 2:

2.1-Idler-Assembly

.

Now assemble the idler wheel: Put a M6 washer, the 626 bearing and then the other M6 washer on the 6mm axis (I use a 20mm piece of 6mm aluminum pipe, but you might also use a M6×20mm bolt or something). Press this assembly into the printed idler block, so that the two M6 washers are inside the brackets, acting as spacers for the ball bearing. The axis should snap into the brackets and hold the bearing snugly inside the idler block.

Step 3:

2.2-Idler-Assembly

.

Insert a M3 nut in the hole on the backside of the idler block. The nut’s only purpose is to give the M4 set screw (see later) some target to press on (the ABS plastic is too soft to hold the pressure alone). Then insert a M3×16mm bolt into the hole on the side of the idler block. This bolt, again, doesn’t hold something down, but simply stabilizes the M3 nut. That way, the M4 set screw cannot sink into the idler block later.
2.3-Idler-Assembly

.

Step 4:

3.1-Assembly

.

Insert the whole idler assembly in the motor block. Be sure, that the head of the M3×16mm bolt is on the front.

Step 5:

3.2-M4Insert

.

Put the M4 nut into the hole on the right side of the motor block. The best way to do this is to use the M4 bolt (same thing as for the M3 nuts in step 1). Only this time, you can let the M4 bolt where it is when finished. It also might be helpful to use some hot glue on the nut (just a little bit!).
Finally, move the insulator block to the right.
3.3-M4-Tightener

.

Step 5:

4.1-MotorAssembly

.

Attach the DC motor, including the pinch wheel, to the motor block.

Use three M3×20 bolts with M3 washers to bolt the motor to the motor block:
4.2-MotorAssembly

.

Tighten the bolts, but remember that the motor block is out of ABS plastic! Don’t overdo it…

Then put a 626 ball bearing on the end of the motor spindle. Be careful not to block the idler wheel with the motor’s 626 bearing! It’s probably not necessary to push the ball bearing all the way on the spindle. If needed, use a drop of hot glue to fix the ball bearing, but be careful not to glue down the ball bearing itself!
4.3-MotorAssembly

.

If you’re using a worm-gear style pinch wheel (what’s a good idea for several reasons), the motor’s ball bearing is probably not necessary, since worm-gear style pulleys usually need much less pressure from the idler wheel to grip the filament properly. Your milage may vary.

Step 6:

5-HeaterAssembly

.

Attach the heater assembly (a new one or one cannibalized from a Mk3/Mk4 extruder) to the motor block, using the two M3 nuts from step 1.

Be careful not to push the captive nuts out of their holes!

Success:

That’s it, you built a Printruder II:
6-Finished

.

At least the non-optional part…

PCB holder:

Since it’s a nice thing to know where to put the extruder controller board, I designed an optional PCB holder for the Printruder II (and maybe other extruders). The PCB holder is composed of 2 printed parts:
7.1-PCBHolder

.

Clip the front holder on the DC motor and move it towards the motor block.
7.2-PCBHolder

.

Clip the other holder on the motor…
7.3-PCBHolder

.

… and use 4 M3 bolts to attach the extruder controller to the PCB holder:
8-Finished

.

Using the Printruder II  with a MakerBot

Although the Printruder II can be mounted in a MakerBot with the original acrylic dinos, you’ll most likely end up with a nozzle too high, depending on the heater section (especially the heater barrel):

IMG_4877.JPG

As you can see in the above picture, the nozzle is on about the same height as the lower end of the dinos. If this would be attached to the z stage, you’ll never get the nozzle low enough to touch the build stage.

Therefor I also designed printable replacements for the dinos. You find the designs on thingiverse.com: http://www.thingiverse.com/thing:1912

What’s the story with the worm-gear style pulleys?

The worm-gear style pinch wheels have much better grip than the timing belt pulleys, used in the original MK3/MK4 extruders. That’s why they don’t need so much pressure on the idler wheel, which not only gives the motor bearings some rest, but also results in much less damage to the filament (i.e. less need to floss the gears).

Unfortunately, there’s currently no way to buy worm-gear style pulleys anywhere (at least to my knowledge).

MakerBot Industries did some test with CNC manufactured worm-gear style pulleys. But I have no idea if they (still) plan to sell them in the MakerBot store and if yes, when.

I manufactured mine on my lathe:
worm gear

.

Although I’m getting better (and faster) in building these pulleys, it’s still a lot manual labor involved (I don’t have a CNC lathe!).

Due to the time-consuming manual production:

  1. these things ain’t cheap (25 Euro + tax (if applicable) + shipping)
  2. when out of stock, I’m not sure when I have the time to built more.

The pulleys are made out of brass (outer diam. 10mm, inner diam. 6mm.) and they come with a M3 set screw.

If someone’s interested in one of these, please contact me (mail [att] pleasantsoftware [dot] com). I have a couple of them lying around as spares.

Back to the extruder…

Posted in Experimental, Hardware, MakerBot enhancements on December 6th, 2009 by Zaggo – Be the first to comment

As regular reader of my blog, you already might have noticed that I’m working on several different projects at the same time. Recently these are mainly the heated build platform/raftless printing, a LCD display and last but not least, a .3mm extruder.

After breaking my trusty Printruder during my first .3mm nozzle tests, I had to reprint broken parts for the Printruder, which lead to a heated build surface, which lead to modifying the extruder firmware, which lead to integrating a I2C-LC display… After my recent tests with raftless printing, I eventually came back to the original project: the .3mm nozzle.

Since it was a bad idea last time to use my one-and-only Printruder for the nozzle tests, I started to design a new extruder for this purpose. My first tests with a stepper motor driven extruder weren’t too promising (… the lack of force it was able to push the filament with. Probably a design flaw of mine. I already started redesigning the whole thing, but this is yet another project…), I plan to drive the new extruder with tested and proven mechanics: Printruder motor/gear brackets and MakerBot DC gearmotor with a threaded pulley. For the heater section, I already started to build a PTFE/insulator free design a while ago. After a couple of drawbacks, I finally did a successful first heater test today.

The heater barrel is definitely inspired by nopheads extruder barrel designs:

ExrtruderHead IMG_4697

But there are several differences:

  1. I used brass instead of steel. This might be a disadvantage, since brass has a way higher heat conduction. But I only had brass rods laying around and I’m also not sure if it is more difficult to turn such part from steel. I suppose it mainly depends on the type of steel. So I stick with the metal I am currently used to, after all I’m still a greenhorn when it comes to working with a lathe…
  2. I designed the barrel to hold a heat sink, since the Plastruder doesn’t contain any large aluminum parts I can use for this.
  3. I still use nichrome wire to heat the nozzle.
  4. The barrel has a M6 thread on one end in order to mount a standard MakerBot nozzle on it.

IMG_4698

The thin part in the above photos is still 5mm in diameter since I was afraid to rupture the barrel (there’s a 3.5mm bore inside, you know…?).

But that was a real problem during my first heater test: Probably also due to the high heat conduction of the brass material, it was impossible to reach decent nozzle temperatures. Instead, the heat went straight to the heat sink and the upper end of the barrel.

So I disassembled the whole thing again and boldly turned an additional 1mm off the thin part. It’s now 4mm in diameter which means, that the wall thickness is only .25mm.

Here’s an image of the reworked heater section, right before the new temperature test:

IMG_4714

Reducing the wall thickness did the trick!

It’s now quite fast and easy to reach ABS extruder target temperature (220°C).

I tested the setup for about 10 to 15 minutes. Here the results:

Target Temperature
(Replicator G)
Themistor
(Replicator G)
Nozzle outside Top barrel nut Heat sink top Heat sink down
220°C 217°C 180°C 60°C 61°C 69°C
240°C 234°C 193°C 70°C 81°C 88°C

IMG_4716

So far so good!

Now I need to print a special retainer plate to attach the heater section to a Printruder and eventually try to extrude some ABS…

It might take a few days since there are all this other projects… And to spice things up, I just printed my first part for a Mendel yesterday :)

More LCD testing

Posted in Experimental, Hardware, MakerBot enhancements, Software on November 27th, 2009 by Zaggo – Be the first to comment

I did some real world testing (i.e. print some objects with the modified firmware) with the I2C-LC-Display setup on my MakerBot.

Here’s another short movie of the display in action:

I cleaned up my modifications in the extruder controller firmware and pushed my changes to a branch on the makerbot/G3Firmware github repository. You find the modifications in the “zaggoLCD” branch.

Next up: Trying an alternative solution with the LCD connected to the motherboard’s I2C bus…

LCD on a MakerBot

Posted in Experimental, Hardware, MakerBot enhancements on November 27th, 2009 by Zaggo – 3 Comments

IMG_4702

I tested this today for the first time: A LC-display on my MakerBot.

The display is connected via the I2C bus of the extruder controller:

IMG_4705

The trim-pot is for the LCD’s contrast adjustment. The rest of the connection is pretty straight forward (4 wires: SDA, SCL, VCC & GND).

The display is a 4×20 alphanumeric LCD with a HD44780 controller. The I2C-to-8bit-parallel interfacing is handled by a I2C LC-Display Adapter, I ordered online for about 13€ + shipping.

The nice thing about I2C-interfacing is the easy wiring over the already available I2C-bus on the extruder controller board (or the motherboard…). No need for a bunch of Arduino pins…

I drive the LCD/I2C with a modified firmware on the extruder controller. The I2C is nicely supported by Arduino’s Wire library.

Since the main data I’m interested in is available on the extruder board (temperatures, extruder motor status), I decided to connect the LCD directly to the extruder controller (and not the motherboard). There are also 3 unused pins (2 digital, 1 analog) on the board for handling button input in the future. On the motherboard (v1.2) I only found one…

However, I ran into some unexpected problems when extending the extruder controller’s firmware: I ran out of memory!

The current firmware is only a few hundred bytes smaller than the available memory on the ATmega168 (about 14kB). I finally managed to install my modified firmware by disabling some unused code and libraries (unused at least by me). But I’m still only less then 100 bytes under the capacity of the controller which is definitely not good.

So I’ll have to move my mods over to the motherboard and try to transport the temperature and motor state data over the RS485 connection. Since this already makes problems when doing it for ReplicatorG (open control panel to read temperatures leads often to hangs during builds), I’m not sure if this will work…

Anyway: It’s fun to see the the LCD in action:

How to connect the 2nd thermistor?

Posted in Hardware, MakerBot enhancements on November 23rd, 2009 by Zaggo – 7 Comments

Since the above question came up several times, here some more details on this:

To connect a thermistor to one of the free analog pins of the extruder controller v2.2’s Arduino chip, besides the thermistor itself, two additional electronic parts are needed:

  • 100k Thermistor (e.g. from here)
  • 4.7kΩ Resistor
  • 10µF Capacitor

Here’s the schematic:

Schaltplan 2nd Thermistor

I soldered the resistor and capacitor directly onto a connector:

IMG_4424 IMG_4425

This “adapter” is then connected to the -then- unused analog pin 6 on the extruder board:

pinsa6

IMG_4654

That’s it for the hardware side.

To handle the new input on the software side, the firmware of the extruder controller needs an update.

See my last post for more information on this. There’s a patch for the board firmware itself and one for ReplicatorG (for visual feedback and to enter a target temperature).

All these changes are also part of the next firmware/Replicator G release. All the sources are available through MakerBot’s public GIT repositories at http://github.com/makerbot

Schematics based on http://make.rrrf.org/ec-2.2

Living in times of warp-free printing

Posted in Experimental, Hardware, MakerBot enhancements on November 15th, 2009 by Zaggo – 3 Comments

The heated build surface works better than I expected!

It’s no guarantee for successfully printing objects, but it eases so many problems…

Building an object like the iPhone Dock (roughly a block of 70 x 15 x 20 mm!) just wasn’t possibe before (I tried it several times):

IMG_4668

I recently started with printing objects without a raft (another thing not really advisable without a heated build surface).

Printing without a raft is still tricky, especially when printing complex shapes (like tooth wheels or something like that). So I started with more or less rectangular objects.

IMG_4687

It’s crucial to get the nozzle height right for the initial layer. Apart from that, it seems to work quite well.

IMG_4688

It’s great not to produce all the wasted plastic with the raft. And it’s also a big ease not to have remove the raft from the object anymore.

IMG_4690

IMG_4691

IMG_4692

A great help when starting a raft-less print is to start the first layer with a long straight line outside the object. That way the extruder has some time to get the filament going and you also have a chance to readjust the nozzle height by turning on the timer pulley of the z axis.

I’ll probably write a script to do the post-processing of raft-less gcode files shortly. But for now I just insert the 2 additional lines of gcode manually with a text editor.

For example in the gcode for the above object I replaced the initial command for positioning the nozzle:

G1 X-2.27 Y14.78 Z0.2 F3300.0
M101
G1 X-38.69 Y14.78 Z0.2 F1590.0

with this:

G1 X40.0 Y40.0 Z0.2 F3300.0
M101
G1 X-2.27 Y40. Z0.2 F900.0 (additional line)
G1 X-2.27 Y14.78 Z0.2 F900.0 (additional line)
G1 X-38.69 Y14.78 Z0.2 F1590.0

I lowered the travel speed for the additional lines to give me more time to re-adjust the nozzle height.

gcode

I’ll continue testing raft-less printing with more complex object soon…

In the meantime, here’s a short movie of printing the object without a raft:

If you also like to control a second temperature zone with you v2.2 extruderboard, here are the changed files of the extruder firmware and ReplicatorG.

Use these to patch the most current source of Firmware v1.6 and ReplicatorG 001o. I’ll try to provide a better way to patch the firmware in the future, but I’m still new to GIT…

Firmware v1.6 / ReplicatorG 00010 patch

repg10a

Canned Heat

Posted in Experimental, Hardware, MakerBot enhancements on November 12th, 2009 by Zaggo – 16 Comments

My MakerBot is making stuff again! Yippee!

The new .5mm barrel/nozzle seems to work well so far. The only problem I had, was some serious warping on an object I tried to build. The size of the raft is 50 x 60mm, so it’s not the largest object I’ve ever built, but it’s obviously big enough to make problems.

After 3 or 4 aborted prints I dug out a project I was planning since some weeks now, but never got around to do it: A heated build platform.

After reading about successful (i.e. warp free) prints on a heated build platform, Jordan Miller built at Hive 76,  this seemed to be a solution for my problems and much easier to build than a heated build chamber (well, that’s another project I plan for weeks now…).

So, please put your hands together for the heated build platform:

IMG_4653

I had this aluminum plate lying around for a while and always thought, that it would look nice as the base of a build platform.

It’s a little too big, but since I don’t have the right tools to do a clean trim, I just leave it at its current size for the time being.

I bolted an original MakerBot acrylic build surface down to the aluminum:

IMG_4648

From the back, I drilled the same holes as on the original build platform for the bolt heads of the y stage and for the magnets.

I simply taped the magnets into the 4mm holes. Then I bolted three resistors (2.2 Ω, 25 W) to the plate and taped a thermistor directly on the aluminum.

IMG_4647

The resistors are placed around the y stage, so the built platform still fits into the MarkerBot. However, the front and back resistor are blocking the maximum/minimum movement of the y stage. I’ll have to find a way to rearrange them on the plate so they don’t block the stage’s movements. Don’t be afraid, I already have an idea… :)

I did a first test of the heater and used a spare extruder controller v2.2 to drive the resistors and to read out the thermistor:

IMG_4645

Although it took about 10 minutes to reach the target temperature of 60°C, the test was quite successful. Thanks to the 5mm aliminum base, the build platform nicely heats up very uniformly.

This left me with the problem how to drive the heated build platform inside the MakerBot.

Fortunately, MakerBot Industries was so kind to include three MOSFETs and some spare I/O pins on the Extruder Controller v2.2. So I use one of the MOSFETs (A+A-) to drive the build platform heater. Then, I made a small circuit/connector dongle…

IMG_4424

… and use this to connect the thermistor to one of the Arduino’s unused analog pins (A6):

IMG_4654

On the hardware side, the only thing missing is an ingenious connector for the 4 wires from the extruder controller to the build platform. Right now, I use an insulation screw joint (luster terminal) for the connection. But this means loosen 4 screws each time I want to remove the build platform more than 15 cm from the MakerBot.

I dream of a connector like the MagSafe connector on my MacBook Pro, build right into the y stage/build platform. But that’s another project…

On the software side, the extruder controller firmware needed some work in order to handle the additional heater element/thermistor.

These changes were easy enough, since only the extruder controller firmware need to be changed. The motherboard firmware can stay untouched.

I implemented the second heater section in a way, that it’s automatically initialized with a target temperature of 60° C. So whenever I switch on the MakerBot, the build platform starts warming up and hold the target temperature until the whole system is switched off.

Since it takes a while to heat up the build platform (around 10 minutes), it’s ok to start early with the warm up cycle.

Of course, it would be nice to have control over the built platform temperature without the need to upload a new firmware version each time. I already implemented all needed functions to read the current temperature and set the target temperature thru Replicator G. But this needs changes in Replicator G (including the UI). I’ll do that as soon as possible.

Finally: Does it work?

Yes!

It’s amazing to see large rafts staying down on the build surface, as if it were the most normal thing on earth.

Here are two parts I printed today. Guess which one I printed before having a heated build platform and which one after…

IMG_4656

IMG_4666

Maintenance

Posted in Experimental, Hardware, MakerBot enhancements on November 11th, 2009 by Zaggo – 2 Comments

I’m still producing threaded pulleys to hone my skills at the lathe.

IMG_4614

This is my current setup: Other than Nophead, I don’t use a block of steel with a milled slot to hold the blank pulley. My lathe’s tool holder seems to be not big enough and I don’t have a milling head. Thus, I mounted the pulley on a 5mm thick aluminum plate, using a M6 bolt with some washers, two (jam) nuts and lots of (cutting) oil:

IMG_4616

This setup works quite well. I even manage to don’t break the M3 tap bit now…

IMG_4622

I still have massive problems getting my MakerBot back into a working condition. After breaking my Printruder when trying to extrude with a .3mm nozzle, I tried to reactivate the original MakerBot MK3 extruder to print replacements for the broken parts.

Unfortunately, the MK3 extruder still don’t work for me. Either the ABS slips or the pinch wheel strips the ABS after a few centimeters of extrusion.

So I decided to give the broken Printruder another try. The main damage is the lower filament guidance hole. It completely broke of. So I tried to replace the printed guidance hole with a short aluminum tube. I also replaced the original timer pulley with the small threaded pulley I created a couple of days ago :

IMG_4623

Guess what: The extruder failed again. I used the original .5mm heater section, I just cleaned and rebuilt before. But something must have been extremely wrong with the heater barrel, the nozzle or both. It completely jammed again after a few seconds. But instead of slipping or stripping ABS, I heard some strange noises from the Printruder.

After removing the idler bracket, I saw this:

IMG_4625

The ABS was “fold” into the inner of the Printruder!

I’m not sure what force is needed to bend 3mm ABS filament into a tight loop, but this definitely proofed that the threaded pulley was performing way better than the timer pulley, which either slipped or stripped the ABS in case of an extruder jam…

So it was definitely time to find out what’s wrong with the heater section.

IMG_4634

After dismantling the heater section, I found some kind of “coal plug” baked into the nozzle. I’m not sure how this plug was created, but I suppose that this was the result of a previous jam and a lot of heat.

The plug didn’t seem to be affected (and softened) by heat, so I needed another way to get it out of the way:

IMG_4635

After 4 or 5 hours of soaking the heater parts in acetone, the plug seems to dissolve slowly.

IMG_4636

I give it another night…

In the meanwhile, I went back to my lathe and turned a completely new heater barrel from scratch, as described on the RepRap site.

IMG_4631

The brass barrel and the nozzle are one piece. I drilled the nozzle with a .5mm drill.

IMG_4633

So until the MK3 barrel and nozzle are finished taking an acetone bath, I now have a replacement heater section to (hopefully) re-print the replacement parts for my Printruder and finally to do some more tests with the .3mm nozzles I bought from Makergear.

I reinforced the aluminum tube in the still broken Printruder to avoid further ABS folding in the gearbox.

IMG_4639

The first 2m of test extrusion are looking good so far:

IMG_4644

Tomorrow, I’ll eventually try printing actual objects with the refurbished Printruder.

I’ll let you know of the results…

Yes and No

Posted in Experimental, MakerBot enhancements on November 2nd, 2009 by Zaggo – 4 Comments

I did a first test of the .3mm nozzle: It works, but the extruder is very unreliable. Lots of jams, although I did a “clean, new assembly” including a M6 nut supporting the retainer washer.

Not sure what’s going wrong. I’ll disassemble and rebuild the extruder again tomorrow and give it another shot.

The photo shows one of the .3mm test extrusions compared to a standard .5mm test extrusion.

IMG_4575

0.3mm

Posted in Experimental, MakerBot enhancements on November 2nd, 2009 by Zaggo – Be the first to comment

The .3mm nozzle, I ordered at Makergear, arrived:

IMG_4564

I can’t wait to print with it! I try to find some time tomorrow to retool my MakerBot’s printhead (which is a Printruder, of course).

I let you know, as soon as I managed to print something :)