Skip to main content

MakerBot #1836

I received my deluxe MakerBot kit (batch 15) a couple weeks ago and had a blast putting it together. The instructions are quite well done (especially for the Cartesian robot, the extruder instructions could use a little work). I've been taking notes of all the little things I had to do to get it working.

This is not a project for people that are afraid to break things or are expecting the ease or immediate satisfaction of building a Lego model. It's a complicated machine with lots of possible points of failure. That being said, it's super cool.

First, if you're considering buying a MakerBot, or already have, take a look at this list of things you'll need in addition to the kit. I'll highlight a few things here that I found especially useful:
  • spray on silicone lubricant (Amazon has good stuff),
  • good digital calipers and a small, metal ruler,
  • a one-side razor scraper (get something with a handle),
  • and an ISP programmer (e.g. a USBtinyISP) for burning bootloaders, etc.
I'll split the rest up into a few sections: building, tweaking, and fixing. Some of this post is a bit disjointed. I tried to clean up my notes as much as possible. Well, as much as I had patience for.


The directions are a bit long to read all the way through ahead of time. I would suggest doing that while you're waiting for your kit to arrive. That way you won't be tempted to just start putting it together!

Make sure that the belts are tight enough to keep stage from wobbling. They don't need to be any tighter than that.

When building plastruder, the instructions tell you to remove the big washer and nut before winding the nichrome wire. This caused me some headache because I covered up too much of the heater barrel to screw it all the way into the PTFE and still have room to replace the washer and nut. So, if you're going to follow the directions, mark the location of the washer and nut before winding and try to leave yourself a little extra room.

When you get around to trying to level the Z-stage, don't bother breaking out the level. Instead, use a stick. Put one end of the stick at the base of each Z-axis rod and adjust the nut to the height of the stick. Rinse and repeat.

Measure and take note of:
  • the inside diameter of the PTFE (mine is 3.45mm),
  • and the diameter of your thermistor (mine is 2.16mm). 
You'll want to know the inside diameter of your PTFE when you start stripping filament and you'll want to know the size of you thermistor when you try to calibrate it.

To prevent your PTFE from bulging and ruining your day, put a hose clamp around the base of it (i.e. next to the washer) or shroud it with a small piece of copper tubing. If you use tubing, make sure it doesn't reach too far up the PTFE. Copper is an excellent heat conductor which can defeate the purpose of your PTFE!


Be prepared to do a lot of tweaking. But don't worry, it's fun. The MakerBot is the funnest thing to watch since my Roomba. When things go wrong (and they will, a lot) don't get overwhelmed. Keep printing, keep reading about tips, tricks, and the experiences of others and keep tweaking. A little plastic goes a long way.

After building the robot, you can use the ReplicatorG control panel to move the stage along each axis. Give this a try before building the plastruder. You'll be at a nice stopping point and it's exciting to see it moving! Be careful though. You'll probably need to flip the direction of movement for some or all of the axises. Move it in small increments at first and make sure it's moving the right way.

Burning the extruder bootloader from Ubuntu Lucid requires a little work. These directions are for using USBtinyISP to do the burning.
  1. Download and unpack the Arduino software (currently 0018).
  2. Replace the version of avrdude that comes with the Arduino software to the latest one.
    sudo apt-get install avrdude
    cd arduino0018/hardward/tools
    mv avrdude avrdude.old
    ln -s `which avrdude`
  3. Edit avrdude.conf and uncomment usbtiny.
  4. Follow the MakerBot directions for burning the extruder bootloader and uploading the new firmware. Pressing the reset button on the extruder controller is not necessary if you have the latest version of ReplicatorG.
The default heater PID settings are incorrect. After you update the firmware for the extruder controller, be sure to change them appropriately.

At some point, you'll start wondering how to configure all the Skeinforge settings you've been reading about. The latest version of ReplicatorG incorporates Skeinforge and the settings are hidden in the profiles menu that pops up when you generate gcode. Just click "edit" and Skeinforge's configuration menu will appear.

After you print a successful model, scrape it off the platform, don't pull. Pulling can separate the layers you've printed. However, I suspect the adhesion between layers will improve as I continue tweaking.

When you start stripping filament, I think it's rather inevitable, there are several things to try.
  • Increase the temperatures under Skeinforge's raft settings. Don't get too hot though or you may bulge your PTFE (the Teflon thermal insulator that prevents the hot end from melting the plastruder).
  • While your in the raft settings, be sure to disable the interface layer (set the count to 0).
  • Adjust your idler wheel using the provided 2mm measuring stick. The resistance should be enough to turn the idler wheel and slide against the drive gear as you pull the stick out.
  • Since you have to take apart the plastruder to adjust the idler wheel, go ahead and floss the teeth as well.
Still no luck? Jump to the Fixing section.

When it starts making a lot of noise, there are options. Here's what I did.
  • Adjust the pots of the stepper controllers. This can have a dramatic effect. Be patient and try to get it just right. Sometimes the wrong setting can produce a hum.
  • Lubricate all the moving parts. That means the X, Y, and Z axis bars as well as the idler pulleys.
Don't forget to regenerate gcode after moving, scaling, or rotating your object in ReplicatorG. Sometimes  transforming the object is necessary to make it fit on the build platform. Especially take note that rafts are larger than the object itself. A large raft can run into the middle bolts of the build platform. Rotate the object 90 degrees along the Z-axis to avoid this problem.

Did you get it working? Awesome! Now, print:
You can thank me later.


So yeah, I broke it after a few prints. All I can say is "don't panic!" Be prepared to break things. Pieces can be replaced and sometimes upgraded to improve reliability. Here's what I ended up ordering to fix my broken bot:
  • An aluminum idler pulley. These can be found on Ebay. Just search for RepRap.
  • An Mk5 drive gear. As cheap as it is, it's worth just getting when you buy the kit.
  • MakerGear PEEK plastruder. You'll need a hybrid (PEEK with a PTFE core) plastruder if you want to print PLA. The design is just plain better than what MakerBot offers.
When you start buying replacement parts, consider these upgrades:
  • heated build platform and relay board. This can help prevent warping and allows you to print raftless.
  • A filament spindle. This is one of those things that you don't think you need to start with. It won't take long though until you realize that this solves a real problem.
All of these parts are on order. When everything arrives, I'll hook it all up and report back about my success. Everything I've read points to huge improvements, so I'm very excited!

Popular posts from this blog

Email Injection

Not so long ago, I ran a wiki called SecurePHP. On that wiki, there was one particular article about email injection that received a lot of attention. Naturally, with all the attention came lots of spam. As a result, I disabled editing of the wiki and content stagnated. Still, the email injection article remained popular. About a year later, the server that hosted SecurePHP died and I never had a chance to hook it all back up. I saved the article though and I'm reposting it now. It may be a bit old (I've been away from PHP for a long time), and I didn't write all of it, so feel free to leave comments about needed updates and corrections. Though this article focuses on PHP, it provides a lot of general information regarding email injection attacks. The PHP mail() Function There are a lot of ways to send anonymous emails, some use it to mass mail, some use it to spoof identity, and some (a few) use it to send email anonymously. Usually a web mailform using the mail() funct
Read more

XBee ZNet 2.5 Wireless Accelerometer

I managed to put together a wireless accelerometer the other night using my two new XBees, an Arduino XBee shield, an XBee Explorer USB, an ADXL330, and some Python. I struggled a bit with some of it, so here's what I learned: First, a parts list. XBee 2mW Series 2.5 Chip Antenna Arduino XBee (with XBee Series 2.5 module) XBee Explorer USB ADXL330 I'm not sure exactly what the specs are on the XBee that comes with the Arduino shield. But, it is definitely a series 2.5. The first thing to do is to configure and upgrade the firmware on your XBees. To do that, you'll need X-CTU (for the firmware upgrade at least, but it's also nice for configuration) which, unfortunately, is only available for Windows. But, it works fine from VMware. First up, the XBee we'll hook up to the computer to read incoming data from the accelerometer: Plug one of the XBees into the Explorer (it's also possible to do this from the Arduino shield by shifting the two XBee/USB jumpers to USB
Read more

Android Recipes and Snippets

I've put together a small collection of Android recipes. For each of these recipes, this is an instance of Context (more specifically, Activity or Service ) unless otherwise noted. Enjoy :) Intents One of the coolest things about Android is Intents . The two most common uses of Intents are starting an Activity (open an email, contact, etc.) and starting an Activity for a result (scan a barcode, take a picture to attach to an email, etc.). Intents are specified primarily using action strings and URIs. Here are some things you can do with the android.intent.action.VIEW action and startActivity() . Intent intent = new Intent(Intent.ACTION_VIEW); // Choose a value for uri from the following. // Search Google Maps: geo:0,0?q=query // Show contacts: content://contacts/people // Show a URL: intent.setData(Uri.parse(uri)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); Other useful action/URI pairs include: Intent.ACTION_DIAL , tel://867530
Read more