The RepRap Revolution - Part 1

October 21, 2013

From Here to Software (and Back Again)

Here at Thinkyhead we’ve always enjoyed making software. The audacious notion that you can create life out of a pure idea has always tickled us. We’ve always wielded these powers of creation to make things that assist us in our interests, mainly games, music, and the virtual world. But lately we’ve begun to take a decided interest in the interactive potential of the ultimate virtual universe, the one we call reality.

Raspberry Pi

In the last few years we’ve seen a huge explosion in powerful laptops, smartphones, and tablets, while at the same time there’s been a quiet revolution in less powerful but very affordable platforms that blur the line between computers, appliances, personal assistants, and robots. Even the cheapest smartphone can see, hear, and talk, knows which way it’s tilted, which way is north, and where it is on Earth. It can sense ten fingers, understand spoken language, and access huge volumes of data. Computers like these augment us while they exist alongside us, and they aren’t limited to smartphones. In fact, today you can buy a Linux computer the size of a deck of cards for under $40 and use it as the brains of… anything you can imagine.

Arduino Logo

At the same time that portable devices are reaching their zenith, a new generation of general-purpose micro-controllers is taking off, mainly due to the open platform Arduino, which is basically a signal processor with an ARM CPU. An Arduino board is less powerful than a current-generation smartphone and it doesn’t do much of anything by itself. But you can hook it up to your computer via USB, flash your code onto the board, and communicate over USB while the card is running your code. The true power of the Arduino comes from its ability to act as a bridge between computers and the internet, where coders are most comfortable, and custom electronics of all kinds.

So this is where our past and future collide! Unfortunately we didn’t pursue engineering in the 80’s and 90’s when we had the chance, so we’re pretty ignorant about electronics. We don’t know how to weld. In fact, we don’t really have any real-world fabrication skills at all! We realized that if Thinkyhead was truly interested in playing with interactive media, we were going to need a bigger boat.

New Beginnings

In July of 2012 Thinkyhead pulled up stakes and moved its operations to Seattle, Washington, to do something about our electronics lameness and to get into the loop with the burgeoning Maker / DIY scene. We took a few months to get settled, update our existing software titles, and set up a basic electronics workshop. By February 2013 we were ready to dive into the wide-open ocean of analog and digital signals, resistors, transistors, capacitors, diodes, integrated circuits, and physical objects that do interesting things. But where to begin?

We needed to find out as much as possible about the Arduino platform and pick a good beginner project to get some soldering skills, learn the basics of Arduino programming, and get our hands dirty with electronics. We searched Google and found lots of “LED Cube” Arduino projects, and that seemed like a good one to start with. The electronics are simple, the soldering is challenging but not too precise, the parts cost is low, and you end up with a cool light cube that can be used to display anything from simple animated patterns to data pulled down from the web. We were about to get started when a little project called “RepRap” completely diverted our attention.

The Internet of Things

RepRap, if you don’t know by now, is shorthand for Replicating Rapid Prototyper. A RepRap machine pushes plastic filament into a melting chamber and then extrudes the molten plastic in layers with a computer-controlled nozzle until you have a finished plastic object. It’s a simple concept with revolutionary implications. It means that for the first time you can download and share physical objects across the Internet. The machine can even make copies of itself, or at least its plastic parts.

The RepRap Project was conceived in 2005 by Adrian Bowyer at the University of Bath, and he built the first RepRap machine, “Darwin,” in February 2008. While the first machine required over two years of R&D before it was fully functional, the next revisions came fast and furious. The first “Mendel” was born in October 2009, with the diminutive “Huxley” following in December 2010. An enthusiastic engineer named Josef Prusa produced a simplified Mendel design at that time, the Prusa Mendel, and since then has produced three revisions, each one requiring fewer parts than the last. The Prusa i2 was released in November 2011, and the Prusa i3 was released in January 2013 as a fully parametric design.

A Thriving Ecosystem

Between 2008 and 2013 engineers and hobbyists around the world produced dozens of RepRap variants derived from the original Darwin and Mendel designs. One of the most popular early models was the Cupcake by Makerbot, which used laser cut wood for most of its parts. Anyone with access to a laser cutter could download the plans and produce the structural parts in a couple of hours. Even while the original Darwin plans were still warm, Makerbot and countless others began selling 3D printers to a commercial market.

By the time we ventured onto the 3D printing scene there were dozens of models to choose from, each with its own strengths and caveats. Some move the extruding nozzle along the X and Y axes while the build platform moves in the Z direction. Others move the nozzle in the X and Z directions, while the build platform moves in the Y plane. Some are built with sheet metal and have enclosed build areas, while others are made primarily out of inexpensive threaded rods. Some of the more striking designs are made with laser cut acrylic. There are even designs that articulate the nozzle with Delta or SCARA arms instead of linear axes. Prices also vary widely. A top-of-the-line Makerbot Replicator II will set you back $2200, but a few RepRap variants can be built for less than $300.

So it was decided, we would build a 3D printer, a practical machine that we could use for all our future projects! We’d get some electronics skills, learn about stepper motors, get acquainted with open source CAD software, and discover just how powerful an Arduino can be with only 100K of code.

But with so many different options, how could we choose which 3D printer to build? In fact, the choice of which printer to get was pretty easy given our main goals:

We surveyed a large number of very different printer designs and filtered our choices down to a few final candidates. But in the end we had to make a choice. As it turned out it wasn’t difficult. Only one design met all of our requirements.

And the Winner Is…

The Prusa i3 Mendel! The Prusa i3 is the most recent —and perhaps last— of the official RepRap Project designs, and it meets all of our criteria. It has half as many plastic parts and far fewer hardware components than its predecessor. The elegant frame uses a single vertical plate which can be laser-cut from wood, acrylic, or metal, or you can use 4 pieces of plywood with a modified set of plastic parts to save some money. We were very excited to get started building this model.

The Prusa i3 was barely a month old when we started looking for parts online, and we were confused about the two different variants. In fact a few different variants were being standardized by the vendors who were starting to offer laser cut Prusa i3 frames. Initially we thought we’d probably build the plywood version, but we ended up ordering a laser cut frame to get the ball rolling. At the same time we found a great set of electronics that came with almost everything we would need:

We sourced all the metric hardware from online vendors like McMaster-Carr. From eBay we purchased stepper motors, plastic parts, a “Wade” extruder, a hot end, linear and ball bearings, and GT2 belts and pulleys. We scavenged an ATX power supply from an old computer, and we cut up an old mirror for the build platform. We ordered the tools we would need, including a digital caliper, soldering irons, and a grinder to cut the metal rods. We got a lot of good deals, but overspent in a few places. For example, we ordered 2 extra sets of plastic parts before we got the right variant, and the first 5 stepper motors that we got weren’t suitable. We re-sold them all and got back some of our expenditure. Ignoring shipping, we came very close to our target cost. But shipping does tend to add up, so a lot of “build clubs” have sprung up as a way to save on cost.

Pull Yourself Up By Your RepStraps

As the parts began to arrive we could hardly sleep. We spent every waking hour reading documentation, making sure we’d be prepared for every contingency in the build process. We learned about the different filaments, PLA made from starch, preferred for its lower melting point and resistance to warping; and ABS, which is mildly toxic but heat resistant enough to use for extruder parts. We learned how to install the “Marlin” firmware onto the Arduino and how to change Configuration.h so that Marlin knows the dimensions of the printer and can move all the axes their proper distances. We learned about the all-important process called “slicing” which turns 3D objects into G-Code, and which would never cease to drive us crazy. We practiced soldering on the ATX power supply, making it nice and neat with long wires.

The most important and interesting components we learned about were the stepper motor and the driver circuitry that controls it. Each type of stepper motor has its own peculiar preferences for current and timing. Almost all RepRap printers use 40mm tall NEMA 17 stepper motors for all axes, including the extruder. The firmware (Marlin in our case) reads G-Code numerical coordinates and converts them into signals for the stepper drivers. Then the drivers move the steppers in tiny increments, 3200 per 360° rotation, while maintaining high torque. Belts and threaded rods translate the stepper rotation into linear motion. If nothing in the chain is broken and all goes well, we hope the robot will obey our G-Code and produce a perfect object.

Construction

By mid-February we had most of the parts. We connected up the electronics and installed Marlin. We hooked up the motors and gave them a test run. The ATX power supply was 15A so we weren’t sure if the heated bed would have enough current, but it seemed to work alright. We soldered together a thermistor with some wires and used Kapton tape to secure everything to the hot end. All our tests went without a hitch. Next, we put the frame together. We used the x-carriage from one of the “box frame” parts sets because it was made for the standard Wade extruder. We would print a better one and replace it!

We were anxious to start printing but we didn’t have the proper bolts to hold the X carriage together. So we improvised using some zip ties and made a very wobbly carriage. Needless to say our first prints weren’t very good. One trip to the screw store (yes, we have a screw store nearby) and we were back in business. We loaded up the printer with natural PLA and printed a dozen Calibration Cube objects with progressively tuned slicer settings until they came out really nice.

Slicers and Dicers

RepRap machines don’t print 3D objects. They just print lines of plastic. The software that converts 3D objects into these lines is called a slicer, and there are several different programs that fulfill this role. Slic3r is probably the most popular. The host software Repetier Host includes Slic3r. Skeinforge is a more general-purpose program for making G-Code, and it has a daunting number of options. SFACT and KISSlicer are simplified versions of Skeinforge. Cura is the official slicing software for the Ultimaker printer, but works great with RepRaps.

For the first few months we used nothing but Slic3r and PLA plastic. We figured we should get the settings tuned just right in one piece of software, then we’d be able to use those numbers when we tried other software. After Slic3r we thought we’d probably move to Skeinforge because it would give us more fine tuned control. But we didn’t really want to spend all our time adjusting knobs if we could just set a few numbers and let the software do the right thing. We spent a lot of time printing calibration objects before we finally felt the printer was reliable enough to print larger objects.

Accidents Will Happen

It wasn’t long before some kind of jam happened and we had to take apart the nozzle. We might have damaged the nozzle’s inner lining, because plastic was beginning to ooze out from somewhere. Weeks went by as we tried to seal up the leak, and we ruined a lot of prints during that time. Although we printed a lot of useful things, including a box for the electronics, we couldn’t really print anything more than a couple of centimeters tall because oozing material would cause collisions, knock parts off, and mess up the alignment. When we finally asked the seller for help, they very quickly sent us a new inner liner. And we ordered a second nozzle just in case. Once we had a reliable nozzle we could print objects of any height, no problem. Our troubles were over for the time being.

One afternoon we were messing around with the RepRap when something on the RAMPS board went up in flames. We were pretty sure it was one of the polyfuses because there was a burn mark on it. We ordered a new set of polyfuses and replaced the burnt one, but then noticed that one of the diodes was cracked. Sure enough, it wasn’t the polyfuse at all but the diode. One trip to Radio Shack and it was fixed.

Making Things With OpenSCAD

One of the first things we did with the RepRap was fabricate new parts for it. The X carriage had been borrowed from an extra parts set, so we replaced that first. Next we needed to replace the tops of the Z axis, the X motor end piece, and the Y idler. The X and Y carriages didn’t have the right grippy teeth to go with the GT2 belts, so we replaced those parts. Next we conceived a new set of mounting clips for the Y and Z endstops. We needed a spool holder, so we came up with a simple printable one that mounts to the top of the frame. Next came a simple x belt tensioner. The only thing left was to replace the big Wade extruder with something lighter.

OpenSCAD is a free application in which you write code to describe 3D objects by combining primitive shapes using various operators. There’s even a version that runs in your browser. The first time we fabricated an object that we had designed only a little while before in OpenSCAD we were giddy with excitement. Something which had just been a vague concept in our minds was now an object in our hands! Before now we would have had to sculpt or carve out designs out of soft material and then make a casting. We can now fabricate any object in a range of sizes and variations in a matter of hours. Incredible.

In Our Next Installment

We’ve left out a lot of detail in Part 1 so we could give the full overview of our process. In Part 2 we will look closer at the parts list, where to source parts and materials, and the wide variety of options we face when it comes to choosing the right electronics, stepper motors, and other essential parts. In Part 3 we’ll talk about the Marlin firmware and slicer settings, and how to calibrate these components to get the best possible results. In Part 4 we’ll discuss 3D modeling for fused filament fabrication, support material, infill, and using tools like OpenSCAD and Google Sketchup to design objects. Finally, in Part 5 we’ll be a bit more speculative as we look into the future of DIY fabrication.

RepRap 3D Printing Arduino Marlin blog