RepRap Mendel

From Kwartzlab
(Difference between revisions)
Jump to: navigation, search
m
m
 
(3 intermediate revisions by one user not shown)
Line 1: Line 1:
 
{{Asset
 
{{Asset
|Make=
+
|Make=RepRap
|Model=
+
|Model=Mendel
|Discipline=
+
|Discipline=3D Printing
 
|Ownership=Kwartzlab
 
|Ownership=Kwartzlab
|Date Manufactured=
+
|Image=Reprap-mendel.jpg
 +
|DateManufactured=
 
|Hackable=
 
|Hackable=
 
}}
 
}}

Latest revision as of 17:32, 20 June 2012


RepRap Mendel (Edit)
Reprap-mendel.jpg
Make RepRap
Model Mendel
Date Manufactured {{{Date Manufactured}}}warning.png"{{{Date Manufactured}}}" cannot be used as a page name in this wiki.
Discipline 3D Printing
Hackable
Ownership Kwartzlab


How To Use the 3D Printer

Contents

1. Get a 3D Model (.stl file)

You can download an STL file, scan an object using a 3D scanner, or create one using a 3D modelling program.

Places to download printable 3D models from:

More 3D model sites:

Use a 3D scanner:

3D model editors:

Other tools:

Sketchup doesn't support STL file format natively, but plugins are available for "Import" and "Export". On Import, it's important to hit the Options button and set the units appropriately. Or use MeshLab for file conversion.

2. Convert the STL file to GCode using the RepRap Mendel Host Software

This is the current procedure that we are using. It's not great, but improvements are in the pipeline. As we make improvements to the procedure, we'll update this doc.

Read our documentation for the program we use to print 3D objects.

Convert the STL file to work around a reprap bug, if it is ASCII. The goal is to globally replace all lowercase 'e' characters with uppercase 'E' in floating point literals. Kevin wrote a shell script to do this. From a shell window, type:

  • fixstl foo.stl

Start the program by typing "reprap" in a shell window. Two windows will open, a Console window, and a 3D View window. In the console window, select the "Print" tab, and make sure "Print GCode to file" is selected (it is usually the default).

Convert the STL file to GCODE.

  • If you have already loaded some objects, make sure none of them are selected (red) in the 3d View window by clicking the mouse somewhere against the base grid. If you don't do this, the new object and the selected one will become a single object that moves as a unit.
  • Click "Load STL" in the Console window. Choose file in file selector dialog. Once you "OK" the file selection, you get to select the number of copies of the object to load as well as the "Material" (Extrusion Profile) to use to print the object.
  • Move the model to the desired location on the print bed. The model will initially appear at the origin (bottom left) in the 3D View window. You probably don't want to print it right there, as the platform is a bit uneven at that point. Left-click the model, it changes colour. Then drag using right mouse button.
  • You can load several models before generating GCODE, or print several copies of the same model by repeating above instructions. Not all objects need the same Material Profile, but the Material Profiles for all the objects must all specify the same ExtrusionHeight.
  • There is now an opportunity to modify the GCODE generation parameters (including extrusion temperature) before generating GCODE, by clicking on Preferences.
  • Generate GCODE after the model has been positioned. In the Console window, select "Print". This will take a while; the amount of time taken depends on some of the Preferences you have set. This will generate one temporary file for each layer, then combine them into the final output file. The location of the output file is the same folder as the STL file and has the same name with a ".gcode" suffix instead of ".stl". Normally, if more than one STL file is loaded, the first one's name will be used as the basis for the GCode file name, but if more than one STL file has been loaded and the first filename was less than 50 characters in length, you will get some strange butchered name for the output.
  • Exit from the reprap program; generating GCode to a file sometimes leaves things bunged up.

Correct the GCODE file to work around a bug in our firmware and errors in reprap's GCODE generation. From a shell window, type:

  • fixgcode foo.gcode

This will replace M109 commands with M104 to avoid the firmware problem, and will add G92 E0 commands before each new layer (each layer assumes the E axis starts off at zero). Note that the parameter on the M109/M104 command is the extrusion temperature as specified by the Preferences. You will need this value in a couple of steps (but unfortunately the fixgcode command does not display this.

3. Print the GCode using the RepRap Mendel Host Software

Start the reprap program by typing "reprap" in a shell window. In the Print tab of the console window, select the "Print computer G-Codes" option. Use the "Load GCode" button to load a previously generated GCODE file. You won't be able to view or reposition the model in the 3D View window.

If the printer has just been powered up or reset, the axes must be homed.

  • In the Console window, click on the "XYZ" tab.
  • Click on "Home All". The printer should move the head to the origin as defined by all the opto-sensor flag positions.

Warm up and clean the print head. Warming up is necessary due to the firmware bug. Also, cleaning out the extruder is supposed to improve print quality.

  • In the Console window, click on the Extruder 0 tab.
  • Click "Move to dump point", which positions the extruder over the notch in the print platform.
  • Enter the extrusion temperature from the GCode (on the M104/M109 command as noted above) into the "Target temperature" text pane. If you put any other value there, the nozzle will heat up to your entered value initially, but the M104 command will reset this to what the GCode was generated for.
  • Click "Switch heat on". Wait for the temperature to climb and stabilize.
  • Clean out the extruder (optional, but several experts have independently told me that this helps with print quality).
    • Remove the filament from the print head. Select "reverse" then repeatedly select "Extrude" until the filament has been backed all the way out.
    • Square the end of the filament with wire cutters, clipping off the cone shaped end. The theory here is that you get a better print if you minimize the length of the solid to molten transition zone within the print head. This reduces the occurrence of strings: whenever the print head must move from point A to point B without extruding any plastic, the software first jerks back the filament, which is supposed to withdraw molten plastic back into the print head, but that doesn't work as well if there is a long cone and an extended transition zone, so strings are left behind during the move.
    • Insert the filament back into the print head, threading it through the felt pad (which both cleans and lubricates the filament). Deselect "reverse" then repeated select "Extrude" until the filament has gone back in. Add a few drops of oil to the felt pad if it seems dry. The oil helps prevent the unmelted-but-sticky filament from sticking to the sides of the feed guides. The oil does not seem to interfere with layer adhesion.
    • Extrude a few centimeters of plastic out of the extruder to ensure that the filament is all the way in.

Print the GCODE by clicking the "Print" button.

Once you have printed a model, you can't repeat this process without resetting the printer (power down and up, or click the reset button on the main board) and quitting and restarting the program. (Could fix this by changing firmware? Yes, or perhaps from dropping the final M0 (?) command from the GCode)

When you are done, remove the power plug from the reprap.

If you cancel printing partway and want to leave, make sure the nozzle heat is off and that the nozzle is not touching anything (so it does not end up welded to the table when cooled). If necessary reset the printer and/or restart the reprap application, and use the Console window to ensure the nozzle heat is off (don't just rely on the pushbutton state, which can be wrong after a reset--click it until you actually observe the nozzle temperature dropping) and to raise the nozzle into free air.

Once your part is printed, it needs to be cleaned up. Try sanding, or see the video in the reprap manual (link above).

4. GCODE Generation Parameters

You specify the material when you generate GCODE. We currently have PLA. ABS is the other popular material, which we can mail order if there is interest. You need to clean out the printhead before switching materials (with solvents or a blowtorch), and we don't have the heated platform required for good results with ABS.

  • PLA (what we have) is clear, warps less during printing, and smells better (fumes less toxic). The printing temperature is lower. It's biodegradable. It's more brittle, and very hot water will melt it. You can print it onto green or blue painters tape, you don't need a heated platform. Makerbot.com sells it, so does MixShop in Toronto.
  • ABS is stronger, less brittle, more durable, has a higher melting point. It's what Legos are made from. It tends to warp during printing, so you need a heated platform. It is pickier about what you print it onto (doesn't stick to a lot of things): people use Kapton tape.

You specify the temperature when generating GCODE. Doug is currently experimenting with 190 degrees, a recommended temperature for PLA. In the past, Kevin has had success printing at 220 degrees. Don had the most success with his icosahedron part at 216. My cube printed okay at 210.

  • Lower temperatures are preferred for: small printed areas, large overhangs, or other situations where faster phase change is beneficial. Lower temperatures also reduce swell inside the extruder and decrease the extrusion after feedstock drive is stopped (drooling).
  • Higher temperatures allow the build material to flow into printed areas and extrude faster, and bond to previously extruded stock faster. At the same the filament becomes more viscous and more plastic evacuates the extruder after drive is stopped. A fan can help the plastic solidify faster and improve performance.

If your first layer doesn't stick to the base, drop the first Z coordinate that extrudes your part by .1 till it does. Once your first layer is down the next layers are good.

Lots more parameters to tweak.

5. Extruder Maintenance

The extruder is the most finicky part of the printer, and needs regular maintenance. If you use dirty filament, it can get clogged with dirt, which affects printing.

http://reprap.org/wiki/Mendel_User_Manual:_Extruder

http://wiki.makerbot.com/plastruder-mk5-usage

6. Troubleshooting

Temperature reading of zero on console

This is usually a transient condition caused by a communications failure between the extruder board and the mainboard. If it comes and goes it is harmless, but if it persists you should check for general communication problems between the computer and mainboard, or it may be necessary to reset everything.

Temperature reading of 2000 on console

This is caused by a communications failure between the extruder board and the thermistor controller board (on the side of the print head). In particular, the RJ45 connector seems to become flaky. To fix this, unplug and replug the RJ45 connector; no resetting should be necessary. Unless you have tiny fingers, you may need a knife or screwdriver to depress the retainer tab on the cable. Perhaps this board needs a thicker standoff from the extruder, but it could also be argued that a more reliable connector would be best.

When printing a GCode file, the head moves to the dump point and sits apparently forever

This is caused by the M109 command near the start of the GCode file, which sets the extruder temperature and waits for temperature stability. There is a bug in the wait code somewhere causing it to wait much longer than necessary. As mentioned in section 2, the GCode as generated must be manually corrected with the fixgcode command as mentioned above. To recover from this wait, you will have to reset the printer and restart the reprap application.

When printing a GCode file, after a layer, the extruder reverses all the way out

This is caused by incorrect GCode generated by the reprap skiening. Each new layer generated assumes that the E axis (which represents cumulative mm of extruded filament) has been reset to zero, but the GCode command to do this is missing at the end of the previous layer. The fixgcode command attempts to fix this by inserting the appropriate reset command before each layer. This only seems to be a problem if infill is requested.

The printed object has bridging filaments that don't belong

This is more than just the thin whiskers of plastic that are caused by drooling. This is a case of full-width strands of plastic in mid-air where they don't belong. They appear at the same place each time the GCode is printed. We haven't confirmed this, but we suspect that this is an error in the skiening code in the reprap application. We don't have a way around this yet.

Other Software that We are Investigating

Here are some all-in-one programs that handle these printing a model:

  • the original RepRap Mendel Host Software: "RepRap" in the Desktop folder
    • http://reprap.org/wiki/Mendel_User_Manual:_Host_Software
    • http://reprap.org/wiki/DriverSoftware
    • We've used this software successfully, but it has a number of problems:
      • The user interface is terrible
      • It won't read standard text based STL files from thingiverse.com without a format conversion: you have to translate lower case 'e' to upper case 'E' in floating point number literals, or use Alex's program to convert these to binary STL files.
      • The generated GCODE files need to be manually edited before printing.
  • ReplicatorG (also in the Desktop folder)
    • This is the MakerBot printing software. The Mendel is only "experimentally" supported. The control panel is kind of broken: no way to control the extruder motor, and it keeps getting wedged while communicating with the Mendel, which I fix by rebooting. Probably better to use the Mendel control panel instead.
  • RepSnappper. Recommended by Kimberly Aandrus, CTO of TechZone Communications, the vendor who built our Mendel kit.
    • We use repsnapper and run our files through a free website we created to clean them up. It is at www.3dtoolchain.com It is not pretty, but it works well.
  • Pronterface: https://github.com/kliment/Printrun (fairly new, recommended by Josef Průša, one of the RepRap core developers, via Alex W). Requires the use of Sprinter firmware, which speeds up printing and improves print quality.

A GCODE file contains opcodes that directly controls the behaviour of the 3D printer at a low level. The conversion from STL to GCODE is non-trivial, and there's a lot of fiddling you can do during the conversion that will improve the print quality.

Instructions for Mendel Host Software:

  • see above
  • according to Kevin, the STL file needs to be manually edited before being loaded, to uppercase all the ‘e’s in the exponential-notation numbers
  • according to Kevin, the GCODE file needs to be manually edited after generation, to replace the M109 (set temperature and wait to stabilize, which unfortunately often waits forever) with M104 (set temperature).

ReplicatorG and PronterFace use SkeinForge for GCODE generation. Not tried yet. Skeinforge docs: http://fabmetheus.crsndoo.com/wiki/index.php/Skeinforge A Skeinforge tutorial: http://edutechwiki.unige.ch/en/Skeinforge_for_RapMan

Skeinforge is powerful, but difficult to use. Rotorit has made Sfact, which is an easier to use Skeinforge (it's on his github account). Rotorit has our kind of printer, so hopefully there is a TechZone gen3 hardware profile.

New hotness, recommended by Josef Průša, one of the RepRap core developers: Sprinter is a new generation of firmware for reprap. This is the 1st firmware that has native support for SD card, and extreme acceleration. This firmware can run a printer at up to 300mm/s, which really changes the quality of a print. Sprinter has been tested and works on Gen6, Ramps, and Sanguinololu. Rotorit has created a fork of Sprinter that works on our hardware, but this appears to require a "gen3 plus" add-on electronics board which Rotorit provides schematics for, with no other explanation.

Personal tools
Navigation