Xnaron made an awesome filament spool holder, but after printing it, I found that it was a little too tight and that my spool wouldn’t spin freely. So I took my first real stab at using OpenSCAD and I modified the file to space out the walls a bit and slightly modify the positioning of the 608 bearings. Here’s my new version:
Now my spool spins freely and doesn’t impart any drag at all when the moving extruder carriage needs to grab some more. On a moving-extruder printer such as this one, that means slightly more consistent layer height and slightly better Z-alignment. Every little bit helps.
My Prusa is finished and printing. And man has it been a rush. I’ve been truly amazed by how my new machine required no calibration to start producing beautiful prints. Now, I didn’t say “very little calibration”, or “almost no calibration”, I said that it didn’t require any at all. Feeling ambitious, my very first print was a gigantic starfish. However, it had a peculiar problem: each layer was a little more skewed to the right than the last one:
Eventually I figured out the issue: the filament, which was mounted on a spool to the right of the printer, was hampering the extruder carriage’s leftward movement by pulling it to the right. Solution: put the filament spool behind the printer, and problem solved. So this wasn’t actually a problem with the printer itself at all! After that, I printed another starfish that looked near-perfect.
I just don’t know what to say. This printer has absolutely shattered my expectations. I was thinking that it would be my “project” printer to hack on while the Makerbot did all the work; instead it’s proven itself to operate better in almost every way.
The layer alignment is perfect. Filament reversal is perfect. There are no strings or blobs on the exterior of the pieces. I haven’t even begun to push it yet, and I’ve gotten the Prusa to print more than twice as fast as I’ve ever gotten out of the Makerbot. On top of all this, the machine is very nearly silent. My wife and I watched a movie while the Prusa was printing not ten feet away in the same room and it disappeared into the background noise. Here, see for yourself:
Compare this to the racket my Thing-O-Matic makes while printing:
My only disappointment so far has been Pronterface (not a typo, sadly), the host software that seems to be most common. It’s pretty bad. Its interface is a mess and it lacks most of the features of Replicatorg, the program that my Makerbot uses. Luckily, it doesn’t seem like too much of daunting task to get Replicatorg to work with the Prusa, so that’s going to be my big weekend task.
I found a great way to perfectly calibrate your extruder’s e_steps_per_mm setting over at Imran’s blog. You extrude 50 mm of filament, measure how many millimeters of filament actually advanced, and then multiply your current e_steps_per_mm by (50/actual extruded amount). I did this trick and found that my extruder actually extruded 71mm! What’s going on? I followed the formula but the value of 673.83 that it gave me produced an extrusion of 71mm when I told it to do 50! It turned out that I didn’t actually measure the diameter of my hobbed bolt’s hobbling; I guessed from memory, and I was off by 2mm. I said 5mm; it was actually about 7mm; Plugging in 7mm gives 481.31 which is within 5 of the measured value. So the formula works fine if you feed it the right values. You learn something every day!
…in Nevada, to be exact. That’s where my replacement Pololu stepper motor drivers are; unfortunately, two of the four I had turned out to be duds. So I have X and Y axes that work, and I can juggle the boards around to make the Z axis and extruder work, but I don’t have enough working drivers to run them all at once. I probably blew them out somehow, between my bad soldering and careless walking around on carpet with socks. Oh well, live and learn.
Everything is done except for these two remaining tiny little parts. And I do mean everything:
That bracket on the extruder motor is my own design. I found that the wires coming off the extruder had a tendency to get bounced and jostled around a lot as the carriage moved, so I designed a really quick-and-dirty strain relief bracket:
I’m repeating myself, but going from idea to printed part in ten minutes is really quite a pseudo-magical experience.
It all just kinda works. Truly, the last 10% of this project wound up being where 90% of the effort lay (especially since literally every wire needed to be spliced with a longer one) but it’s been so satisfying to see it all fall into place. This machine was pretty much built from hardware store components and extruded plastic. It’s basically a specialized light-duty CNC machine. The axes move with such precision… and in near-silence, too. The thrill of manipulating it is electrifying.
It’s not that I don’t already have a 3D printer, but building a RepRap literally from scratch was a very different experience compared to joining together the lasercut wood components of my Makerbot Thing-O-matic. Printing out the plastic pieces, doing it over again with better designs, selecting components one by one, waiting for the parts to trickle in, fitting everything together by hand, making mistakes and learning so much along the way—it felt less like assembling a product and more like building a mad scientist contraption. Total cost: $502, rising to $550 if you include the unnecessary purchases and broken parts that needed to be replaced. If I had to do it again, I’m positive I could shave $100-150 off the cost without breaking a sweat. For example, this Sanguinololu kit alone costs about $25 less than mine cost; this hot end is $10 cheaper, comes pre-assembled and even includes a funnier name, etc etc etc.
One more thing: there seems to be a lot of confusion out there about how to set the e_steps_per_mm variable in firmware. There’s actually a set of handy formulas that the RepRap community has come up with for setting the values on a per-motor basis. For example, here’s the formula for the extruder:
(motor steps x (1 / microstepping resolution) x (extruder gear ratio) ) / (pi x bolt diameter measured at the teeth)
Most bots will have motors with 200 steps per rotation and 1/16 microstepping resolution, and last time I checked pi hadn’t changed. The gear ratio of the herringbone gears I used in my extruder was 43/13, so I wound up with this:
(200 x (1 / (1/16)) x (43/13) ) / (3.1415927 x 5) = 673.83
You get the idea. There are more formulas for X, Y, and Z axes on the RepRap wiki.
note: the formulas on the wiki raise the micro stepping resolution to the power of -1; above, I expressed that in the form of (1 / the microstepping resolution) to aid clarity for the math-challenged.
It turned out that the slim HP power supply I ordered was a bust for two reasons: the biggest one was that the ATX+4 connector that plugs into my Sanguinololu was only capable of putting out 9.5 amps at 12 volts. My motors alone pull about 6 amps, which leaves only 3 or so for a future heated bed, excluding the power draw from the extruder heater. Not good enough! The other issue was more of an annoyance, but I couldn’t get the darn thing to stay on! It turned out to be a server power supply, and server power supplies need a load on the +5 volt rail to stay powered. People suggested wiring a resistor up to it, but that just seemed like a big hassle for something that wasn’t going to really be good enough anyway. Oh well, at least I can cannibalize it for parts and heavy-gauge wires.
I found a much better one for only $2 more on Newegg: an Antec NEO ECO 400C power supply. Though the price seems to have gone up to $50, it was $30 when I ordered it, and it came with a $10 off mail-in rebate. Huzzah! But more importantly, this thing is a beast: its ATX+4 connector can put out 30 amps; definitely enough.
I wired it up and turned it on and the board didn’t explode. That’s a good sign! The motors got power and everything seems to be working. Time to flash some firmware on this thing…
My previous trepidation about buying a power supply stemmed from the desire to avoid a big unsightly cube with a bunch of unused wires coming out of it. But this pushed me toward DC power bricks, which seem to top out at 10 amps when they output 12 volts; probably not enough for my future build platform considering that my NEMA 17 motors aren’t the most power-efficient for the task. eBay offered up a great alternative: a PC power supply from a small-form-factor PC where space is at a premium. This HP power supply, for example, would fit perfectly beneath the build platform or off to the side, and 180 watts is bound to be plenty:
I just got the build platform done, and here’s where the Prusa’s at:
I think the blue painter’s tape on the build platform looks positively lovely next to the blue and white parts. The platform is not yet heated; it’s just another piece of MDF on top of the first one, covered in blue tape. But it’s benefited from several ingenious innovations pioneered by the RepRap community. First of all, it’s held up by only three screws rather than four or even six (as my Thing-O-matic’s is). Why? Because you only need three points to define a plane. Duh! I slapped my head in amazement at how simple the improvement was when I saw this layout on the build platform of my friend’s Huxley.
Another feature of his Huxley’s build platform is that the screws holding up the build platform are spring-loaded. This means that there’s a constant force pushing the platform up, so if you need to level the platform, all you need to do is tighten or loosen the appropriate screw, allowing the spring to do all the work.
The spacers are kind of wonky-looking because they’re just what I happened to have three of lying around, but they work fine. This mechanism allows for a truly dramatic improvement over my Thing-O-Matic’s platform leveling procedure, which consists of a much more complicated dance of manipulating a screw while holding constant one of its nuts after having loosened one of its other nuts, at which point they’re all tightened again. Ugh!
As you can see, it’s not a perfect fit on the threaded rods. That tall arch in the back is too high to fit on the rod beneath it; it was clearly designed for a Prusa assembled such that the threaded rod that runs perpendicular to the others is above them rather than underneath them—when positioned above, the rod tends to scrape the Y-carriage timing belt, which is why people no longer assemble it that way. Working around this by giving the arch something to sit on wasn’t difficult, but I’m on the lookout for a more elegant solution.
More progress! After unsuccessfully trying two other designs, I eventually went with some fairly simple LM8UU bearing holders for my Y-carriage, which is just a cut rectangle of MDF. Sure is lucky I had a jigsaw and a big ol’ piece of MDF lying around. I also incorporated a tensioner for the timing belt, which I’m really excited about. My Thing-O-Matic, like the Prusa, has two timing belts for X and Y axis motion, but neither of them are easily adjustable once the machine is bolted together. This has proven to be a big pain once they eventually worked themselves loose, and the tensioning mechanisms I’ve incorporated into the X and Y carriages should make this a non-issue for the Prusa.
Notice how far the X-axis smooth rods stick out on the left side of the picture. I’m hoping to use that to convince myself that I need one of these…
Things are going pretty well here on my kitchen table. The whole X-stage is assembled and working perfectly and the Z-stage is in progress. That said, while I finally managed to get the troublesome X-ends printed successfully, I do have some reservations about using them. The walls of the column that the LM8UU bearings fit into are awfully thin. How thin? This thin:
I had two prints fail or crack before I went for broke and printed new ones with 100% infill—totally solid! I definitely think the walls need to be chunkier. I decided to try my hand at modifying Greg or Josef’s OpenSCAD source files, and I’m still working on it, but in the meantime, hopefully the X-ends I have won’t self-destruct. And in the event that they do, hey, that’s what my other 3D printer is for. :p
It turns out that power drills and 3D printed parts with weak internal structures aren’t a good mix. Who knew!? So my Chinese bearings finally arrived and I was psyched to get going on my build again. Unfortunately, I hit a snag: the smooth rods for my X-stage were about 4 inches too long. Now, this wouldn’t normally be a problem, as I just had to stick them through the X-end idler and X-end motor mount. But in Josef Prusa’s new versions that incorporate LM8UU bearing holders, each of these parts only has holes in one side; you can’t stick a rod entirely through it. In fact, several of the comments are bemoaning this “feature”.
I’d already printed the part and felt that modifying it would be easier than printing a new one. All I really had to do was drill holes in four thin walls, right? What could be so hard about that?
Oops. I guess a power drill wasn’t the right tool for the job. In retrospect, this should have been obvious, and I had even been successfully using my Dremel to file down some bits earlier, which would have almost certainly worked due to its greater precision and lower power.
In the meantime, I took droftarts’s suggestion in the comments section and compiled Greg Frost’s own version that fixes this problem. I’ve become a great fan of Greg’s work. His Github is just kind of a magical wonderland of 3D printing goodies. My new Greg Frosty X-end motor mount is printing now, but it’s another annoying delay to getting this Prusa up and running. On the other hand, once it’s done, it’ll be state-of-the-art, with the latest parts!