My Mendel Prusa is ready for printing

Now I have a chance to show some photos of my 3D printer finished and set up. If you haven’t seen one before, this will show you what a MakerGear Mendel Prusa kit looks like once it is assembled. Then go have a look on the web to see how other folks have tarted their machines up. Here are Mendel Bling and Kliment’s Holiday Prusa Mendel to get you started.

My MakerGear Mendel Prusa 3D Printer set up on my workbench

My MakerGear Mendel Prusa 3D Printer set up on my workbench

This first photo shows the printer complete and ready to print. Everything on the green cutting mat is the printer. It is about 500mm wide, 400mm deep and 400mm tall. Hanging from the ceiling is my home-made filament spool and delivery system. I’ll tidy the wiring up when I’ve spent a bit more time printing.

600W ATX Power Supply with far too many cables

We take your mass produced technology and pervert it to our own ends!

Photograph number two shows the power supply. Its a 600 watt unit intended for installation in high-powered PCs. So it has way more connections than we need. The two comparatively thin black cords in the bottom right of the image are the only ones we use for the MakerGear machine.

PC power supplies are cheap and mass produced. RepRap printers rely as much as possible on re-purposing stuff that was never meant to print, so as to keep the cost down and make 3D printers available to as many people as possible. Eventually HP and IBM and Apple will produce 3D printers, with weird copy restrictions, ‘walled gardens’ and anti-counterfeiting measures. Just like how they charge you a fortune for bubble-jet printer ink. Open Source Hardware FTW!

Filament Spool made from Meccano and foamcore

DIY filament control and storage system

The next photo is my home-made meccano-and-foamcore filament holder and delivery system.

PLA filament is surprisingly tough and springy, worse than lawn-trimmer plastic. In the quantities I bought it, it came as a coil held together with cable ties. I could tell it just dreamed about tying itself in knots, and couldn’t possibly just be left on the benchtop. Think about how your coiled up garden hose reacts if you just pull the nozzle away from the coil instead of unrolling it, then imagine it made of spring steel.

So I knocked up a reel system in Meccano. I knew meccano would prove useful for something. The first version failed dismally. The second version seemed to work ok, so I replaced as much as possible of the meccano with foamcore side-panels. Then I mounted it on a ceiling beam using a sliding release mechanism so I could easily take it down when I needed to. And a swivel mechanism to automatically release any twists that might be in the coiled PLA.

When I installed it, I discovered my bearings were too good, and the weight of the 5 feet of PLA hanging down to the printer was enough to spin the reel, potentially unrolling all the coil onto my head. I had expected this, because I’d read of someone else with exactly the same problem. Out with more meccano, and I built a spring-tensioned friction arm, inspired by the brake arm in drum brakes. It presses on the rim of the reel, providing just enough tension to stop the PLA unrolling on its own, but not adding to the workload of the extruder stepper motor. It now works beautifully and I’m quite proud of it!

Mendel Prusa during bed levelling

Mendel Prusa during print bed levelling

The next two photos show the printer having its printing bed levelled. The horizontal plywood square covered in blue painter’s tape is the print bed. The object is built up on it in layers of tiny thin extruded plastic that looks a bit like thick spider’s web. The black thing with the pointed base in the second photo is the extrusion head. It squeezes out the plastic while moving from side to side and forward and back. When it finishes one layer, it moves up a tiny amount (mine is set for 0.3mm per vertical layer) and puts the next layer on top op the previous one.

Extruder nozzle over playing card 'feeler gauge'

I’m not sure what the ultimate vertical resolution is, but you can manually move the extruder head in tenths of a millimetre, and the bed needs to be level with respect to the nozzle tip to about that order of accuracy. Otherwise the plastic won’t stick reliably to the bed. Levelling is a bit tedious. The key thing for me was remembering that a quarter turn of the adjustment nuts is significant, on the order of 3 tenths of a vertical step. Once I stopped over-adjusting the nuts, the process went much more smoothly. The playing card on the bed is a simple way to measure the gap by how much friction you feel when you try to move the card.

RAMPS v1.4 board wired to Mendel Prusa

The last photo is of the electronics. The plywood board at the bottom is cable-tied to the frame of the printer.

On top of that is a bog standard Arduino Mega microcontroller board. These are a staple of the electronics hobbyist, especially in the ‘maker’ community. It does all the communication with the PC, and runs the printer control software. It’s way more powerful than the first 3 computers I ever owned, but then I did start back in the late 1970s.

On top of the Arduino is a RAMPS shield (version 1.4 in this case). The RAMPS shield allows the Arduino to control the stepper motors and extruder heaters, which use way more current than the Arduino can handle on its own. It also monitors the thermistors and the limit switches.

On top of the RAMPS shield are 4 tiny boards, each with one stepper motor driver. This way, if you burn up one of the drivers you can replace it without replacing the whole electronics system. And yes, there is enough current running through these things that they can explode in a tiny ball of flame if you really screw up. Exciting isn’t it? Seth Godin, the only marketer whose books I recommend, is quoted as saying ‘If you can’t fail, it doesn’t count’!

Despite that macho statement, I paid extra for the assembled version of the hardware. My eyes aren’t what they used to be, and I didn’t feel like trying to solder components smaller than a grain of rice.

The wiring is twisted together in braids partly for neatness around insensitive stepper motors, and partly because twisting wires together makes them less prone to certain forms of electrical interference. Microcontrollers and stepper motors are noted for their potential to generate interference, so every little bit helps.

Next post should finally show some things I’ve printed on my newly assembled 3D printer.

This entry was posted in 3d printing, Assembly and tagged , , , , . Bookmark the permalink.

7 Responses to My Mendel Prusa is ready for printing

  1. looking good!

    I use regular paper to set my Z=0 point and level my bed, a playing card should work too- just send G92 Z0.05 when it’s rubbing a little but not grabbing. I find differences of 20 microns make a difference in Z height, but there’s no way to tune it to that level by feel.

    When I start a print and it’s doing the skirt and first layer, I can usually tell if it’s too high or too low and I’ll send G92 Znnn where nnn is my layer height +/-0.02. For example if it’s a tiny bit too high and I’m using 0.2 layer height, I’ll send G92 Z0.22 which will cause it to think it’s at 0.22 and move down to 0.2 after several moves. If it’s too low, I’ll send G92 Z0.18 and it’ll move 0.02 up in a little while.

    This depends on every line in your gcode having a Z position even if they’re all the same. skeinforge and sfact generate gcode like this, slic3r does not at the moment.

    Once it’s dialed in properly, I can basically rely on it staying good until I shut the printer down for the night.

    After a few months using this method, I can estimate the /exact/ amount to alter it by to within 10 microns, ie I’ll raise it by 0.04 or drop it by 0.13 and it’ll be perfect 🙂

    If your first layer isn’t quite good enough, just pause the print, rip it off and start again. part of one layer is a fairly insignificant amount of plastic to discard.

    I find neither my mechanical nor optical endstops have enough precision to avoid this final manual adjustment. If you know of an endstop that has repeatable accuracy of 10 microns and doesn’t cost heaps, I’m all ears!

    • BrazenArtifice says:

      That is a neat trick that would never have occurred to me, with my non-existent knowledge of G-Codes. I’ve not read of anyone else using your technique, so I hope you’ve told the slic3r devs about it. It’d be sad to have to stay with skeinforge just for the lack of this feature. I had to read your explanation 3 times and look up G92 on the reprap wiki to get my head around what you were doing!

      Have you read the post by James on his automated bed-level measuring software? It made me realise that my chunk of plywood with a pcb and layer of printer’s tape on it is never going to be perfect. At least with your method we can make some allowances for that.

      • heh, I’m basically telling it that it’s too high or too low, then it corrects itself 🙂

        I hadn’t seen that post, but I’ve come across nophead’s method on where he simply measures the bed in 3 spots and applies a transform to the gcode so that the object is printed perpendicular to the bed, regardless of the bed’s orientation.

  2. Mark C says:

    Thanks for posting all these pictures! They’ve been really helpful in ironing out some of the details while building.

    Can you explain a little about how your have your end stops placed? Specifically, I’m having trouble figuring out the x-stop. If I place it on the left side where the motor is, the carriage won’t make contact with the stop. If I place it on the right, the filament motor sticks out too far and will hit it before the proper distance is reached.

    Also, what screws did you use to secure your Arduino board down? It looks like M2.5×15 works, but I only have 6 supplied (just enough for the end stops).

    • BrazenArtifice says:

      Hi Mark
      I’ve been thinking of you as I slave over my electronics commentary. Wondering how far you’d progressed. As you can see, I’m having great fun.

      My x-stop is on the smooth rod nearest the x-end idler wheel, and as close to the idler wheel mount as I can get it. It sticks up from the smooth rod, with the microswitch lever pointed up and inwards towards the back of the extruder stepper motor. When the extruder motor moves towards zero, the first thing it touches is the microswitch lever.

      My y-stop is on the Y smooth rod nearest the RAMPS unit. It sticks up from the rod at an angle so that the plywood print bed passes over it without contact, but the top edge of the Y carriage presses against the lever just before the Y carriage would hit the Y belt idler wheel.

      My Z-stop is on the Z smooth rod nearest the RAMPS unit. The lever faces upwards, and is pressed down by the bottom of the X-end idler mount. Those annoying little screws in the underside of the mount don’t get in the way, because they have all vibrated out, to no loss that I can see.

      Works great with Sprinter. Can’t get Marlin to notice the endstops yet, sadly, so I’m stuck with sprinter for the moment.

      As for Arduino mounting. Yes, that was a bit of a problem. I think I did use the M2.5×15 bolts, and I did indeed run out of things to hold the endstops on. I’ve got a feeling I used M3 bolts as self-tapping screws to fix the endstops to the endstop mounts, figuring that I could replace microswitches at my local electronics store, but cracking an Arduino board would be expensive.

      Hope that helps.

  3. Mark C says:

    Thank you! Got my end stops set tonight though I’ll probably have to readjust the Z-stop once I get the platform mounted. I also ended up having to mount the RAMPS on the left side since there was barely not enough room on the right.

    All I have left now is the platform/heated PCB, power supply, hookups and software, which I’m expecting to be another beast (first I need to find my multimeter…). If you have any tips on getting started with drivers/sw/calibration that would definitely be useful as everything else on your blog has been so far! Are you running this off a Linux machine?

    • BrazenArtifice says:

      (Gah! This is the second update to this comment in 2 minutes. I’m too tired to be writing clearly…)

      Left and right are tricky ‘cos it depends on what you think of as the front 🙂

      The plywood RAMPS support board pretty much only fits on the side where there is exposed threaded rod between the top frame vertex and the Z-motor mount. Otherwise there is not enough space between the front-to-back side rail and the bottom of the threaded Z-rod. Anyway, you’ve worked it out, and that’s all that matters. Endstops are easy to move if you find you need to put them somewhere else.

      I’m using Windows 7. Software was fairly easy. Potted summary:-

      1. Download and install Pronterface (follow the instructions for your platform. Pronterface on its own is enough to talk to the RAMPS and move the stepper motors, and prove the thermistor works (tho the temperature it returns may be wrong til you flash the Arduino). But you’ll have to find out what the default baud rate for Tonokip is. I don’t know ‘cos I didn’t try connecting til I’d flashed the Arduino with Sprinter.

      2. Download and install Arduino, following your platform’s installation guide (I’m using Arduino 22). On Windows, point the hardware installation wizard at the ‘mega’ driver. (Ok, this was a little tricky. I was looking in the wrong directory).

      3. Download and unzip the ‘Sprinter for Prusa’ zip file from the Rick’s sticky message at the top of the MakerGear google group. Run Arduino and set the Arduino Board type to Mega2560 from the menus. Set your connection (some sort of USB)

      4. Load the Spriter.pde file into Arduino. Edit the configuration.h file to match your machine (nozzle size, baud rate etc). Compile. Upload to RAMPS. I wrote a more detailed explanation of this in a reply to a post in the MakerGear google group in the last week or so.

      5. Read some calibration guides and experiment.

      Sorry I’m not up to writing a full post on this right now. Other people have done much more detailed write-ups. I can’t even remember how I got git and github set up (tho its pure magic once you do! One Dos-like command and whole directories of up-to-date firmware appear on your hard drive, ready to be configured, compiled and flashed.) Really, once you get Arduino set up right, changing your firmware settings (or even switching from say, Sprinter to Merlin) takes only a minute and about three mouse-clicks.

      I’m using OpenSCAD for model building, when I’m not printing something downloaded from thingiverse. Nefabb and meshlab for fixing broken STL models. Slic3R for turning STL into GCode. Pronterface to load the Gcode and send it to the printer. All this software is free!

Please leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s