Friday, September 30, 2011

Prusa Mendel RepRap: Calibration Step Two



In Calibration Part One I tackled physical calibration. Part two of the calibration process is in the firmware settings. I used sprinter firmware to start with, but have recently switched to marlin. Marlin is almost identical to sprinter in configuration, so this information will work for both. If you have a different firmware, the idea is basically the same. I'm also assuming you will be using RAMPS 1.x, the Arduino IDE and pronterface.py in this tutorial. If you are using RAMPS, and you want the marlin firmware, be sure to use the link above to get the "non-Gen6" version. I won't be going into the particulars of each program I name in this tutorial. Look for upcoming posts for an examination of each piece of software.

Step Two: Firmware and Temperature Ballparking

Fortunately, this is rather straightforward. What you will be aiming for is that when the bot is instructed to move +1mm on the axis, or to extrude 1mm of filament, it actually does that to within 0.02mm. That is about the maximum positional accuracy of your typical Prusa Mendel RepRap.
  1. Open the Arduino IDE
  2. Open the firmware .pde file (i.e. sprinter.pde)
  3. Switch to the configuration.h tab
  4. Scroll down to find the line:
    float axis_steps_per_unit[] = {80, 80, 3200/1.25,700}; 
  5. Open pronterface.py and connect to the electronics
  6. Power up the power supply and make sure each motor moves in the correct direction with small moves. If it doesn't move in the right direction, STOP. You either need to change how you have your motors plugged in or you need to change the direction the motors move in the firmware (in configuration.h).
  7. Home the X axis and press the X +100 button in pronterface
  8. Did it move 100mm? Measure it to find out. The X axis is easy to measure when the nozzle is close to the print surface. Make a mark on the blue tape under the nozzle at home, and then where it lands after X +100, and measure the distance.
  9. Use the RepRap Calculator to figure out the new steps_per_unit value for the X axis.
  10. Enter 100 in the desired movement field
  11. Enter your measurement of actual movement in the next field
  12. Copy and paste the steps_per_unit value from configuration.h for that axis in the third field of the calculator. The steps_per_unit values are in the order X, Y, Z, E and each value can be an equation instead of a numerical value. So the default value for Z is 3200/1.25, meaning 3,200 divided by 1.25. You can substitute the actual value for the Z parameter.
  13. Copy and paste the new calculated value (up to three decimals) back into configuration.h and save the file
  14. Exit out of pronterface.py
  15. Press the reset button on the electronics
  16. Upload the firmware to the electronics
  17. Rinse, repeat until that axis is as finely tuned as your margin of error for measuring will allow. Additional refinements to these values can be done after the machine starts printing.
  18. Rinse and repeat for the Y and Z axis.
Ballpark the temperature.
  1. The thermistor attached to a hot end is not calibrated. So while 185 deg. C might be the right temperature for PLA, it's not as easy as setting the temperature to 185 in pronterface.py and forgetting about it. You'll need to find the melting point of the plastic you're using and then start printing with a temperature that is a reasonable setting somewhat higher than that minimum.
  2. Heat the nozzle up to a good starting temperature. For PLA you might want to start at 185 deg.
    Caution! If this is the first time you have turned on the hot end, monitor the temperature carefully and if it soars way past the target temperature (by more than 10 degrees) or doesn't register much of a change in temperature, turn the power supply off immediately. Don't freak out if the hot end starts to smoke, though. The first time or two of heating the nozzle, it will smoke.
  3. Set the speed on the extruder (in pronterface.py) to about 150 and extrude 30-50mm of filament.
  4. Immediately turn the nozzle off (set the temperature to 0) and keep the nozzle clear by removing the ooze and wiping the nozzle tip with paper towel.
  5. When the temperature has reached room temperature again, turn it back on to 185 deg. and turn on print monitoring
  6. Watch the tip of the nozzle carefully. Note at what temperature the plastic starts to ooze out of the nozzle again.
  7. Set the temperature at the observed melting point and try to extrude a small amount (5-10mm)
  8. If it doesn't come out at all, try again and grab the filament. Feel to see if the filament is still going into the extruder. As long as the filament is moving, keep hitting the extrude button until something comes out.
  9. If the filament isn't moving, turn the temp up four degrees and try again. Give the filament a little push to get it moving again. Caution! You may have clogged up the teeth of a normal hobbed bolt at this point. If you get a lot of slipping that you didn't before, you will need to open the extruder and clean it up. I used a cut-thread bolt, so I'm not too worried about clogging it up.
  10. If the extrusion is slow, great, you're in the ballpark. Your starting temperature is about 10 degrees higher than that.
How to tell if the temperature is too high.
  • The plastic actually drips out of the nozzle of the idle extruder and forms droplets
  • Air escapes the nozzle, making little bubbles at the tip
  • Your test prints stick so hard to the blue tape that it's impossible to remove them without tearing the tape
  • You get a lot of blobs and your lines have the appearance of melting down over the previous layer, perhaps sliding off the side a little.
  • There is a strong smell of cooking plastic (there is always a smell, but overheated plastic has a strong scent)
Next Up: Calibration Part Three is an introduction to Skeinforge.

"Hains" Prusa Mendel RepRap: Building an Enclosure, First Steps


Slowly but surely I'm putting together a box to house the "Hains" Prusa Mendel RepRap machine. The enclosure will have a nesting top secured along the bottom with 20 #6 screws and custom designed (and printed on the "Hains") nut holders. There will be a windowed door on the front with a lock to keep idle hands off it until they can be properly trained. I'm thinking slim windows on the right and left, and a 9" square window in the back. It's all MDF except for the 1" hardwood square dowel used in the frame of the base. The back will have an access port for the power supply, probably with a printed faceplate, and there will be a special on/off switch inside the enclosure. For special effects I'm going to mount some PC lights inside and give it that cool, modded computer look. The finish will be ultra gloss black.


Ran into a bit of a problem last night as I discovered that I'd glued on the wrong trim piece. Had to chisel it off, and I'd done such a good job laminating it to the other wood that it was like carving off a solid hunk of wood -- very hard to do. I did eventually manage to get it reasonably close to normal again and attached the correct piece of trim. I can really only add one piece at a time so it'll be three more days until I get the base finished and can move on to the top.

Tuesday, September 20, 2011

"Hains" Prusa Mendel RepRap: Goes On a Field Trip


The "Hains" got let out of the house for the first time last Saturday when we attended a meeting of RepRap enthusiasts and makers at the Kalamazoo Air Zoo. That's me stalking around in black, and the "Hains" is there on the table being inspected on the left by the machine's namesake herself. New member Chris is there on the left next to the pizza. In all we had nine people at the meeting. Quite the turnout!


Alan Hollaway (on the right) organized the meeting through the RepRap Michigan Google Group and through the Kalamazoo Maker's Guild Meetup Group. I thought he was so good at putting this meeting together I made him an assistant organizer for the Meetup group. Kyle Mendez (center) wants to build a RepRap the size of a room. John de Longpre (on the left) came down from Grand Rapids and these are his pictures. 


Dean Piper (on the right) also brought his machine. He's sporting a new MakerGear Plastruder and a custom heated print bed under glass. He hooked up to the projector and gave everyone a demonstration of printing and the software.

I printed a whistle (which didn't turn out great and broke) and Dean printed a RepRap Merit Badge.

Friday, September 09, 2011

"Hains" Prusa Mendel RepRap: Printing Prusa Parts



The "Hains" Prusa Mendel RapRap 3D printer has begun to replicate. It's printing parts for the "Desmonda", the second machine I will build. As you may be able to tell from the photo above, the quality is very good, and it's about time!

That quality was hard won and well earned. I've been lax in posting to the blog because I've spent weeks  and weeks tweaking, fixing, modifying, calibrating, and test printing, often putting in 14-16 hours a day. You could say there have been some bumps on the road.

Here are the highlights of the challenges I've been dealing with over the last month and a half.

Temperature


The first prints were such a disaster (see Movember ring first print, above), I now know, because I was setting the temperature too high. I set it to 210 at first, the default temperature for PLA plastic. Then I read that setting it at 185 was a good starting place. Even at 185 deg. Celsius, though, the plastic was oozing out of the nozzle like crazy when idle, and printing a real mess. Sometimes it would even burp plastic, which I came to realize was gas released from the plastic when the temperature is too high. Essentially, it was boiling. Lesson one: the thermistor (temperature sensor) is not calibrated. So, when the computer is set to 185, that doesn't mean the nozzle is actually 185 deg. I started lowering the temperature, and until I got down to 149, the prints got better every time I did a test print. I now print with it set to 152.

Bearing Upgrades and Modifications


The pulley design for the RepRap turns out to be quite problematic. The metal fender washers don't move in the default design, so the belt rubs up against them and causes a lot of friction. You have to turn the motors WAY up to counter it. It also makes things irregular and generally hard to manage. I used a combination of techniques to fix this problem. For the front and undercarriage pulleys I loosened the nuts on either side of the fender washers so the washers could rotate freely, but cemented the nuts in place with loctite. On the back pulley next to the motor I cut a nylon washer in half and glued it back it together  inside of the fenders. They are low friction and rotate when they need to. But that's an ugly hack. The X-end idler could be taken apart, so I upgraded the pulley there. On Thingiverse.com there is a bearing upgrade object, and it comes standard on machines from MakerGear and others. Lesson two: these upgrades will replace the fender-bearing design on every machine I make from here out.

Bad Parts


As I start to print my own RepRap parts, and after having worked with the parts I got from eBay all summer long, I've come to kind of loath them. So much of my trouble has come down to poor quality parts that I couldn't guess how many hours they took up in testing and tweaking. Notice the crack in the pulley gear in the photo above? Yeah, now you start to see why this has taken me so long, right? In addition to bad gears, the X motor mount and X end idler are really quite poor, causing the smooth rods to be out of alignment with each other, and I suspect, not entirely perpendicular to the Y axis. The extruder idler came small and out of shape, and I've had to bore it out a few times to make it so the extruder won't bind. Lesson three: get good parts! The guy I got the parts from is well intentioned, I have no doubt, but I think these Makerbot people aren't the best candidates for producing quality parts. They're the type that are attracted to the instant gratification (or as much as can be had right now) of an easy kit they can throw together in a weekend. The RepRap people, on the other hand, tend to be kind of obsessive about their machines because it takes so much to get them working right. You have to know a lot more to use a RepRap. So, I would say that parts made on a RepRap will tend to be higher quality, as a rule, than parts made on a Makerbot. MakerGear has some really fantastic parts, and if I had to start over again I would have bought their parts. I would have bought their kit, frankly, but that's a point I'll come to shortly.

Wrong Parts


This was probably the biggest problem of the entire project, from start to finish causing me headaches the whole way. First there was the issue with the stepper motors. The parts list I got from the guy on eBay included a link to a supply of stepper motors, except they were the wrong motors for a RepRap. They weren't the right size (dimensionally) and they didn't have enough holding torque. Then there was the matter of fasteners. I didn't know what I was doing, for a start, and then the parts list I got from the eBay seller had parts for an SAE Prusa, but a metric Wade's extruder. I got all confused and now have a large assortment of various screws and nuts that weren't of any use to me in the project. The pulley gears were at the heart of it, in the end. I spent weeks of calibrating after the first print, all of it wasted because the eBay seller included a link to the wrong belt. It's the kind of belt that is used overseas, and is metric. So they didn't match the printed pulleys that came with the parts. I first bought replacement printed pulleys of the same size because I thought the problem was bad parts, and then bought the manufactured pulleys when I finally figured out the problem was wrong parts. Lesson learned: don't believe the parts list supplied by the eBay seller. Do your homework, hard as it is, and understand which nuts and bolts you'll use by walking through the instructions one step at a time and counting it all up.

Belt Tension


While trying to hunt down the backlash problem caused by using T5 pulley gears and XL belting, I learned a lot about belt tension. In the process I managed to pull off a short and messy print I could turn around and put to use right away. It's called a Y-tensioner, and is probably the first thing I downloaded and tried to print off of Thingiverse after the Movember ring and test cubes. It allows me to adjust the tension of the Y axis belt, the most inaccessible one, with a hex key without having to take the print bed off. The X axis belt has to be done the old fashioned way, and boy what a pain that is! Lesson learned: yes, there is such a thing as too tight on the belts. I'll leave it at that. Suffice is to say that you're shooting for a Goldilocks zone when it comes to belt tension: just right.

Z-Constraints


My prints were pretty good, but there was room for improvement. Early on someone had pointed out to me that it appeared that I had quite a bit of wobble in the prints, meaning that the layers didn't stack right on top of each other exactly. That can happen when the leadscrew for the Z axis (up and down) orbits a bit because the motor shaft doesn't line up exactly with the center of the leadscrew and the nut in the X ends. In my case, you may have noticed in an earlier post I mentioned that the Z clips I got from the eBay seller snapped during assembly. Well, they did, and I replaced them with rubber tubing (thanks Tonokip) but the leadscrews definately were orbiting. ScribbleJ, who has helped me a ton via IRC, designed these Z axis constraints that I printed up and added to the machine. Lesson learned: use MakerGear modifications and their design to eliminate Z wobble from the start.

That's a taste of what it took to get to printing well enough to make Prusa Mendel parts for "Desmonda" on the "Hains". I'll tell you about my software calibration journey another time. The test cubes! So many test cubes!!!