I have nearly finished converting Gary Hodgson’s wonderful visual instructions for assembling a Prusa Mendel to LaTeX. I was going to wait to publish this until after ironing out all the style problems, but since Prusa just released his upgrade to the printer today and an update to the guide is imminent, I figured this post was in order.
You may ask “Why LaTeX? What’s wrong with the current format?” There are a number of very good reasons why a collaborative guide should not be written in the Microsoft Publisher format:
Microsoft Publisher saves documents as large binary files, which don’t work well with version control systems. LaTeX files are pure text, which enables version control systems to show differences between versions in a coherent way and also to store only the differences between versions rather than the entire file, which saves a lot of space.
Microsoft Publisher saves documents in a proprietary format that no other program can read or write. Therefore, anyone who wants to edit one of these documents has no choice over which program he/she uses to do so. By contrast, since LaTeX is plain text it can be edited with any of the vast number of text editors out there.
LaTeX does a great job of separating content from style, a model that has worked out very nicely for HTML/CSS. What does this mean? It means that when you want to add content to your document you won’t end up spending hours mucking about fiddling with margins and line-spacing.
LaTeX makes it easy to split up the document by sections, allowing one to use a separate file for each section. This enhances collaboration by making it easier for multiple people to work on different parts of the document at the same time. Moreover, all the images used in the file can be edited independently by those who don’t want to “get their hands dirty” with LaTeX.
Adding a table of contents and an index are one line operations.
If you are interested, please take a peek at my github fork of the project. It is a bit tricky to get your build environment set up correctly, but you don’t need to build it to contribute copy/graphics changes. I think if we all work together this can become a much bigger thing: a Prusa Mendel Assembly/Maintenance/Usage guide, rather than just assembly.
When I first started using Flattr (If you don’t know about Flattr yet, check it out! It’s pretty cool), I wanted an easy way to add Flattr buttons to my tumblog posts. I found this blog post that explained how to do it. This worked great for awhile, but recently my buttons recently stopped working and were just displaying “Error”. On investigation, I discovered that it only occured (for whatever reason) on posts which hadn’t yet been flattr’d.
I found that if I upgraded the button HTML to the HTML 5 version, they started working again. I also took the time to make several upgrades to the button HTML. The buttons now:
Use the title of each post as the Flattr title (this will be empty if you don’t set a title on your post, so make sure to always set a title!)
Submit the tags of the post as the tags for the Flattr “thing”
Intelligently use a meaningful description based on the post type.
The last step of building a Prusa Mendel RepRap is mounting the build plate. I am using a heated build plate so I also had to mount that. The screws recommended for mounting the top plate were really long and I wanted to conserve as much precious Z space as possible so I used slightly shorter screws and have had no problems. If you decide to do this just keep in mind that you want them to be long enough so that you still have some play in the springs and the build plate needs to be able to clear the fender washers.
There are some suggestions for ways to mount a PCB Heated Bed in the RepRap wiki, but nothing really concrete/authoratative. I decided to just use some M3 nuts and bolts and that has been working fine for me. I would have liked to use M3 bolts screwed up from underneath with a washer on the underside, then a washer, a nut, and another washer between the top plate and heated bed, and then a washer and nut on the top of the heated bed. I didn’t have the right size bolts though, M3x10 is just a hair too short, so I left out the washer on top. Next time I’m at the hardware store I’ll get some better bolts, and probably screw them top down.
Here a picture of the top plate and heated plate mounted. I used double-sided tape from MakerGear as a build surface (accidentally laid it on some paper, that’s what all the white stuff is), which I would definitely recommend against. I am using Kapton tape now, and it works far better.
I also mounted some leftover MDF on the back panel to hide/organize all the electronics, which works very well for me.
My printer is done! Next post I will provide a summary of my experience with lessons learned.
I’m jumping the gun a bit on this post, but I’m just way too excited to wait. My 3D printer is finished! My 3D printer printed an ugly, stubby shot glass(ok, so I have one little kink to work out) as per the custom today and I christened her “Polybot”. The “Poly” is partly because of her maker(Polymaker) and partly because I hope one day she or one of her descendants will be used for much more than printing plastic objects. Cheers, and make on!
I’d been busy preparing for the rapture the past couple weeks, so I put RepRap building on hold. However, since that fell through, I’ll get back to working on my printer. ;) The truth is, I took a couple weeks off because I broke something… a couple things.
I got my RepRap to extrude for the first time recently, which was a very exciting step for me. I’m waiting for endstop connectors before I can make a real test print, but I wanted to go ahead and test the extruder anyway (just pushing plastic through in one spot) and here’s what it came up with:
It’s ALIVE!!! I’m sure this is a fairly common refrain among first time makers when they get their printer to follow an order for the first time. But it certainly didn’t work on the first try. Oh no! After all, why would it? Things are never that easy are they?
Well, I’m finished with all my axes… sort of. I kinda mighta sorta installed my X axis on backwards. (!!) The belt that drives the extruder is on the front, while the gears are on the back. I’ve thoroughly inspected it and consulted my trusted advisor (thanks John) and I really don’t think it will be a bigger problem than telling the software that things are reversed.
Want to use a stronger language in OpenSCAD? That possibility may not be far off.
I’ve got a basic proof of concept working, and I took the code from here and made a 3d representation of Pascal’s triangle. I’m sure this wouldn’t be too hard in .scad script but I think it was easier in Python. Not just because Python is easy to use, but also because it has a strong user base of folks who like to share code with each other.
Honestly, that’s the best I can do directly with my hands. Isn’t it a far better use of my time to develop something that I can print effortlessly as many times as I want? Ok, Here's the 3d printer prototype:
I recently found out about a wonderful program called PySCAD. It’s a fork of another program I like called OpenSCAD. Allow me to explain (actually most of these reasons are pulled from here) why I like OpenSCAD and why I like PySCAD even more:
You don’t need a surgeon’s hands to use OpenSCAD. I can get 100% perfect precision without dragging anything with the mouse.
OpenSCAD scripts are really nice to use with version control systems like git. Differences between one version and the next is represented as text because an OpenSCAD script is plain text rather than a binary blob.
With OpenSCAD, you have Infinite undos and you can change something you did at the beginning without modifying what you did more recently.
With OpenSCAD, you can make repeated patterns trivially; i.e. by copying and pasting text.
PySCAD goes WAY beyond that by adding the full (infinite) power of Python into the mix. The programming language used in OpenSCAD is pretty limited, but with PySCAD you have all the power of Python at your fingertips. I recently ran up against some of those limitations and I’m excited to redo the project with PySCAD.
This part of the assembly turned out to be a lot more trouble than I anticipated. Like a lot of things, it was harder than it looked. The bushings were just way too tight on the Z axis. After two iterations of gluing and then breaking the glue when I tried to slide the Y axis up and down, I decided to try a different approach.
I’m halfway through making the Z axis for my 3D Printer. Items of note:
I don’t actually own a level, so I used a great Android app called Bubble :)
I used a nut tied to a string instead of a plumb line, which worked just fine
Once again I found myself victim of the changing specs; my M3x25mm bolts were too long for the z-motor-holder and rod-clamp. I got around this by smushing some small fender washers in there as spacers. I know it’s ugly, but I can get M3x20mm bolts at any time and fix it. I just wanted to continue with the build.
There were a number of places where my parts seemed to deviate from the instructions. I don’t know if they are from an older or newer version of the extruder, but I eventually cobbled together a working Wade’s extruder with a MakerGear hotend. The pressure seems good and I tested that it pushes filament through perfectly.
I received my stepper motors in the mail today so I was finally able to finish step 6 (Y axis assembly) of construction. One minor hangup was that the slot in the pulley was way too small for an M3 nut so I carefully used a drill to expand it to the right size.
I finished assembling my MakerGear hotend! I’ll have my chocolate now, thanks. ;) I believe I found another discrepancy in the instructions though. I tightened the jam nuts on the heater barrel and used a wrench on the outer nut to tighten the heater barrel. Like last time, both nuts turned instead of the heater barrel. This time I carefully tightened the nuts only slightly. Unfortunately when I used a wrench on the outer nut, it still caused both nuts to turn but with considerably more effort; enough effort that the heater barrel is now very tight in the nozzle.
I was working on converting the assembly guide to LaTeX and I noticed that step 7 (assembling the y axis) doesn’t require the parts I’m missing and it’s separate from the rest of the printer at this point so there’s no harm in doing step 7 before finishing step 6.
Everything was going fine and I thought I was on the downhill stretch. Instructions for assembling the modular thermistor were missing but I found these instructions on the MakerGear google group.
I tightened the jam nuts on the heater barrel and tried to use them to tighten the barrel in the nozzle. Unfortunately the jam nuts weren’t tight enough so they both turned on the barrel instead of holding in place so the barrel could tighten in the nozzle. I tightened the jam nuts more and this happened:
I began assembly of the my MakerGear.com hotend yesterday, and the first step is to assemble the HeatCore. I wrapped the nichrome around the brass core and smothered it in the provided ceramic paste. I left it overnight to cure and to give me a chance to gather my wits.
As it turns out, I’m even worse at this “working with my hands” stuff than I thought. I guess that’s why I’m building a 3D printer; so it can be my “hands”. I was a bit hasty assembling the Y-Axis and I just randomly picked two matching-length smooth rods that were long enough to go from the front bar clamps to the rear bar clamps. It turns out I used the 495mm rods (which are needed for the X-Axis) instead of the 406mm rods.
I have finished the first half of step 6 (the Y-Axis). There was a slight hitch when I noticed my bottom sheet was cut uneven. It’s 140mm on one end and 138mm on the other. Fortunately, I’m pretty sure that dimension doesn’t need to be perfect and it only made it more difficult to measure the space between the smooth rods. I went ahead with the instructions and finished installing the smooth rods and the bottom sheet slides back and forth nicely.
Finished step four, adding the top bars and Z motor mounts. Also very straight-forward. I made sure to pretest the holes on the motor mounts by sliding them around on the threaded rod a bit until it slid pretty smoothly. Nothing more to report here. It’s exciting to have the frame completed though!
I made a parametric plant pot, based on the Flower Pot by hathawsh. It’s called “parametric” because you can customize it, based on parameters like height and radius. It can produce a typical pot with holes in the bottom, or an orchid pot with slits down the side and the number of holes or slits is parameterized as well. Once I have my printer running, I plan to print a new orchid pot with green PLA (Polylactic Acid) plastic, which is biodegradable. Hopefully it won’t breakdown before we’re done with it!
Following step three of the visual instructions was quite simple and straight-forward, especially after steps one and two. I did it while watching “Batman Begins” last night. Step three is just assembling the rear threaded rods, which are the closest horizontal rods in this picture. I was grateful to have pre-reamed the vertex holes this time.
I guess finishing step two will have to wait until I get some new drill bits and/or a file. I broke my one and only drill bit reaming out the vertex holes. I guess that’s what I get for trying to ream ABS with a 1/16” drill bit.
It’s in my blood. Take my grandfather. There are all sorts of contraptions and toys that he made at his farm. Even in retirement he decorated his lawn with “birds” made of old shovels and rebar.
Then there’s my dad, who bought the plans and built a speed boat using the engine from a muscle car in his twenties. Today, he’s just putting the finishing touches on a shop with an apartment in his back yard.
Now I want to make something. It won’t compare to what my dad and granddad made, but it’ll certainly scratch an itch. I’m going to make a Prusa Mendel RepRap, a 3D printer which will enable me to make many more things without “getting my hands dirty” so to speak.