Earlier this summer my company spent a fair chunk of change on rapid prototypes printed by professional fused deposition modelling (FDM) printers. Thinking this was a huge waste of cash, Google led me to the RepRap project: Personal 3D printing for as little as $350. Of course, I had to build one.
The RepRap Wiki suggested a Prusa Mendel. Its bill of materials and instructions seemed well prepared, and the list of suppliers even seemed strong (note the keyword here–“seemed”). As an open source project, I should’ve known what I was getting into!
RepRap is a vibrant, rapidly growing opensource community for two reasons. First, people are inherently fascinated by a machine that makes real, physical objects. Second, home 3D printing is still in its infancy. Assembly of a 3D printer demands enormous exchange of ideas. One must gather a basic knowledge of electronics, programming, and machining. You’ll inevitably have questions, and once you step into the forums or IRC, it’s unlikely to be your last visit.
Consequently, RepRap is the child of thousands of ‘makers’, engineers, and programmers around the world. PhD’s and kids alike contribute to its development. The movement has resulted in a number of start-ups, including the recent $10MM VC-funded Makerbot in New York, which has subsequently brought significant media coverage to opensource 3D printing (CNN, Colbert Report, NPR, the New York Times, just to name a few). I’m impressed with the brand name they’ve established, but ultimately they’re selling an expensive kit. At 1/3 the price, and with potentially better performance, a Prusa is the way to go.
I thought I’d take the easy route and grab a Prusa kit off eBay. elderfarrer2hy7 had the best price at the time ($160) on a kit which included all printed parts, nuts, bolts, bearings, belts, and a laser cut acrylic bed. All I needed was a set of rods, electronics, motors and a weakly documented, but crucial piece referred to as a “hotend”. And of course some plastic filament. Or so I thought.
elderfarrer2hy7’s kit showed up within days. I then ordered:
- M8 smooth rods, Part #88625K67 at McMaster
- M8 threaded rods, Part #90024A462 at McMaster
- Kysan 1.8° NEMA 17 stepper motors at Ultimachine
- ABS filament at Ultimachine
For those new to RepRap, the hot-end essentially acts like a hot-glue gun. The extruder feeds ABS or PLA filament into the hot-end, which is held at 180-240C depending on your chosen filament. At the further end is a nozzle with a standard diameter of 0.35mm (more or less depending on what’s available). Note that 1.75mm filament does not yield improved resolution over 3mm filament. Layer thickness and precision is dictated by nozzle diameter. A good hot-end with a 3mm extruder will print as quickly and accurately as a 1.75mm extruder. Anyway, three types of hot-ends are currently in use: ceramic core, power resistor, and cartridge heaters.
- Ceramic cores use a piece of thin nichrome wire, wrapped tightly around the hot-end and covered in a layer of hardened ceramic paste. The nichrome wire heats up like coils in a toaster. Assembly is time consuming and messy, but it’s reliable.
- Power resistor hot-ends are simpler. Stick a 5 to 6 ohm power resistor into the hot-end and you’re done. However, operating a resistor at 240C longterm means it’s operating way out of spec. As long as the resistor isn’t physically disturbed, it should hold up for months or maybe years. But if disturbed, the abused resistor will shatter. In my opinion, a mostly reliable $1 power resistors far outweighs the messy assembly of a nichrome wire kit.
- Cartridge heaters are used by Makerbot. This is the same type of heating element found in soldering irons and similar devices. Cartridges are more robust than power resistors, but still not bulletproof. Makergear and a few others in the DIY community have experimented with cartridges. Supposedly they haven’t been widely adopted due to poor availability for our 12V application. It’s easier to use a cheap power resistor.
Disappointed, I bought a Makergear 0.35mm Hot-End Pack (a nichrome wire kit). Rick at Makergear is a great guy. Very helpful, friendly service, and his hot-end kits are enormously popular in the community. Unfortunately, Rick’s site is a disaster! Get it together, man!
Alas, I cannot recommend the Makergear hot-end pack. First of all, it’s $75. Second, it took hours to assemble and harden. Third, it flat out failed, as I’ll explain below. Get a J-Head MKIII from “Reifsnyderb”. It’s under $65, arrives 95% assembled, and just works.
Also worth consideration is the Budaschnozzle from LulzBots for $75. I haven’t personally tried one, but it looks awesome and supposedly works equally well. Arcol.hu has a similar hotend for $134–ouch.
I narrowed down the choice of electronics to RAMPS or Gen6. RAMPS supports heatbed control and 1/16 microstepping, but the board looks like a disaster in terms of layout and motor/sensor wiring, and further requires the purchase of separate Pololu stepper drivers and an Arduino Mega. RAMPS is a favorite in the community, but I design PCBs for a living and looking at it made my stomach turn.
Gen6 is well designed, but was sold out. Heatbeds don’t necessarily need software control, and I didn’t think I needed one at the time (newbie mistake). I also convinced myself that since the stepper motors only had 200 steps per rotation, subdividing those steps with 1/8 microstepping couldn’t possibly be much worse than 1/16. [Verdict: True. 0.9° motors with 1/8 microstepping are more accurate than 1.8° motors with 1/16 microstepping.]
So what’d I do? Like any self respecting EE, I ran the numbers and ordered 250 Gen6 PCBs. My company sent a batch to our favorite assembly shop, and I had electronics in hand within three weeks. Super easy, and cheap (well, per board…). PCBs and assembled Gen6’s are still available.
For power, I went with a 12V, 15A power supply from “jingsam-online” on eBay. This is barely adequate with a heatbed connected–the supply runs at almost 70C. In retrospect, $10 more for the 30A version would have been a better investment.
Assembly – Weekend #1
Smooth and threaded rods arrived from McMaster in a 6ft tube. The Prusa assembly guide stated required rod lengths, but did not suggest tools for cutting the 2 meter steel rods. I’m still not sure of a preferred cutting method, but my brother-in-law brought over a dremel and we picked up some fresh rotary discs from Lowes. We spent two long evenings cutting rods. Unless you have a better idea, buy pre-cut rods.
Assembly – Weekend #2
The majority of the frame went together the next weekend. However, we quickly hit another hurdle: PLA bushings! All of our parts were printed in ABS, including the “PLA bushings”. These pieces are supposed to enable the X, Y, and Z axis to glide freely along the smooth rods. We weren’t so lucky. Our PLA (ABS?) bushings snapped onto the smooth rods but would not budge. We filed them down and tried other suggestions from the RepRap forums to no avail.
I remembered a line from the Prusa Wiki which mentioned linear bearings. Aha. That’s what they were talking about. PLA bushings work for some people, and have the clear advantage of cheapness. But reliability is spotty. Serious CNC machines use linear bearings for axis movement. So, I ordered a set of LM8UU bearings from a Chinese eBay seller. [VXB sells LME8UU bearings in the USA at twice the price.]
The LM8UU mod also meant I needed a new X-carriage, Y-bed LM8UU mounts, and X-ends. These were easily found on Thingiverse.com:
- LM8UU X Carriage by Greg Frost
- LM8UU Y Axis Holders by DigiFab
- LM8UU X-End Motor Bracket and Idler by ahmetcemturan
I e-mailed elderfarrer2hy7 and he quickly hooked me up. Edit: Looks like he now sells kits made for linear bearings!
After I built my printer, Prusa himself released an official LM8UU X-end set. I’ve printed them but still prefer the design by ahmetcemturan.
Assembly – Weekends #3 and #4
While waiting for the Chinese LM8UU’s, we assembled the Makergear Hotend pack and Wade’s extruder. After much head scratching at Rick’s documentation, we had an assembled heatcore and Groovemount.
Cutting the hobbed bolt was a disaster. Again, we resorted to the dremel:
We ended up with two failed attempts and one marginally successful “hobbed” bolt from this adventure.
For about an hour, we had no faith in the Wade’s Extruder because the filament passed through only against the hobbed bolt (no opposing force, so it kept slipping). I finally realized that we hadn’t attached the Idler block and 608 bearing…right…
I ended up ordering a hobbed bolt from Eckertech. Much, much better:
Assembly – Weekends #5 and #6
The LM8UU’s showed up after two weeks, followed closely by the finished Gen6 boards. Final assembly only took a couple days, but it was quickly apparent we were nowhere near finished.
We started with the simplest problems:
- X axis, Z axis, and the extruder ran backwards. Solution: Edited FiveD firmware and calibrated X, Y, and Z steps_per_mm.
- Y axis would only travel forward. Solution: My soldering had killed the Y mechanical endstop. Replaced with a microswitch from RadioShack.
MakerGear Trouble – After knocking out the simple stuff, we tried to extrude plastic. And that’s when the real problems began. We spent about six hours with the Makergear hotend, yet only managed to produce a small pile of extruded ABS. This took days to troubleshoot. Here’s what I learned:
- We first tried to extrude ABS at 245C. When this failed (actually due to bad hobbing), we switched to PLA at 240C. Dumb move. The PLA expanded, jammed, and slowly burned up in the Makergear hotend. We had to drill it out. So, never set temps too high. PLA should be used at 180-220C. ABS: 220-250C.
- We had enormous difficulty with the springs elderfarrer2hy7 provided. They lacked sufficient force, so the hobbed bolt would spin without pushing plastic and thus slowly strip the filament. The filament could be manually extruded by hand, if not already jammed. In short, Wade’s Extruder needs springs with a strong load force (25-35N). Problem was solved by switching to McMaster 9434K164 springs.
A Working Hotend – Weekend #7
The J Head MKII arrived in just two days! I wired up the resistor and thermistor, wrapped it all in Kapton tape, and fired up Repsnapper. Even without calibrating the extruder, it managed a test print.
Success! But still a long way from reliable printing…
Filament and Software Troubles – Weekends #8 and #9
Although the printer was technically working, there were still a few issues to work out.
First, filament would randomly strip after anywhere from five minutes to three hours of printing. I’d have to pull the hobbed bolt out, clear the plastic shavings, and re-assemble. This issue took days to troubleshoot, but the solution was easy–tighten the extruder springs. Since then, no more stripped filament.
Next, ABS would barely stick to the acrylic bed. About halfway through the test cube print in the above video, the print ripped off the platform. Less than 1 in 5 print attempts would stick at all.
In other words, a heatbed is an absolute must. Once more, Prusa’s MK1 PCB heatbed was sold out in North America; I resorted to ordering 25 from my PCB house.
Heatbed PCBs arrived in a week. I temporarily mounted one atop the acrylic bed using 1/4″ Nylon standoffs, following Prusa’s “final” mounting solution–glass covered with Kapton tape and attached with bulldog clips.
For wire, I used 14AWG THHN, rated for 105C. The outer PCB traces connecting to the power supply leads are thicker, so this region of the board is cooler and it’s safe to use 105C wire here. Glass came from Lowes for about $2. I had to trim the corners (tip: use scissors underwater).
Because Gen6 has no heated bed support, the heatbed is wired directly to my 12V, 15A power supply. The glass surface reaches 100C in about five minutes, and 110C after 15-30 minutes, as measured by thermal probe.
Up to this point, I’d used Repsnapper as a host, as per severely out of date documentation from Mendel-Parts.com. It was time to move to SFACT and Printrun/Pronterface. Printrun is a solid graphical interface, which relies upon SFACT/Skeinforge for gcode generation. It’s daunting at first, but prints beautifully. Just one downside: Skeinforge is CPU hungry. Kliment (author) says he’s working on optimization.
I was also using FiveD firmware downloaded from Mendel-Parts.com. FiveD lacks acceleration and I was seeing occasional pauses during Z-axis movement. I flashed to Kliment’s latest Sprinter firmware and increased the baud rate to 38400. No more hiccups. Also, acceleration is a glorious thing.
While editing Sprinter’s configuration.h file, I took the time to document proper equations for the Prusa:
- Formula for X steps per mm = Y steps per mm = (Steps)/(Microstepping *BeltPitch*PulleyTeeth)
- Formula for Z steps per mm = (Steps)/(Microstepping*Zd)
- Formula for E steps per mm = (Steps*ERatio)/(pi*Microstepping*BoltDiamter)
- Steps = Number of motor steps per one revolution (200 for 1.8 degree, 400 for 0.9 degree motor, etc.)
- Microstepping = Microstepping ratio of controller (1/8 for Gen6, 1/16 for Pololu, etc.)
- BeltPitch = Distance in millimeters between teeth of belt (5.00mm for T5, 5.08mm for XL, etc.)
- PulleyTeeth = Number of teeth on the motor pulley gear (default is 8 teeth for T5 gears; XL gears may use 10)
- Zd = Distance in millimeters between threads of Z rods (1.25mm for M8)
- ERatio = Gear ratio for extruder gears (Wade’s Extruder: 39/11, Accessible Wade’s by Greg Frost: 43/10, Adrian’s Extruder: 59/11, etc.)
- BoltDiameter = Diameter of hobbed bolt in millimeters, measured at hobbed section
These formulas have since been added to the Prusa Wiki.
Minor Tweaks – Weekend #10
Heat warps acrylic, so within days of installing the heatbed, I had to replace the acrylic printbed with 1/4″ MDF bed ($6 from Lowes and half an hour with a jigsaw). Acrylic was junk to begin with. It flexes too much, even without heat, which added great difficulty to bed alignment. Use MDF.
My Prusa has been exiled from the kitchen. It now resides in the basement, where it’s printed for 90+ hours in the past two weeks, including two full sets of Prusa parts.
What comes next?
- Build a Prusa with 0.9° steppers and T2.5 belts
- Try PLA with a J-Head MKIII-B and Greg Frost’s Hinged Accessible Extruder
- Additional calibration…need to eliminate corner blobs
- I should’ve started blogging 10 weeks ago.
- If you build a Prusa, use LM8UU linear bearings, a heatbed, a good hotend (J Head MKIII-B!), and strong bed and extruder springs. Also grab the latest popular firmware and software. And buy a digital caliper.
- RepRap is not cheap. If you build one, you will find the need to build more. That said, it would’ve been cheaper if I’d built a hybrid SAE + metric Prusa. See also this Wade’s Extruder BOM.
- Don’t build a RepRap on the kitchen table. Does not please the wife.
Special thanks go to: Nick, Reifsnyderb, and everyone on Freenode #reprap!