Here's some things I've learned in the process of using my new prusa mendel with skeinforge 40 and repsnapper, from the perspective of a reprapper who is new to all this.
First some "big picture" definitions and overview that's often missing from guides and forum posts I've learned from. Also, There are so many sources of info I've used that I'm not going to try to single out everybody for credit, you probably know who you are. :) Araspitfire and the folks on the freenode #reprap IRC channel are major sources of help for me, so thanks guys!
If I start off too basic, please bear with me.
A recommended workflow for reprap printing commonly goes something like this:
STL file -> Slicer -> GCODE file -> Host Software -> Reprap Firmware
My personal workflow for printing currently goes like this:
STL -> skeinforge40 -> gcode -> repsnapper -> RAMPS
The Reprap Prusa Mendel Hardware
The prusa mendel hardware itself is pretty well explained elsewhere, it's purpose is to provide all the mechanical bits to support the print nozzle and extruder as needed to print a specific object. Wonderful instructions for the Prusa Mendel are at http://garyhodgson.com/reprap/prusa-men ... tructions/
I currently use and recommend RAMPS. This is also pretty well explained elsewhere, it's purpose is to interpret GCODE and drive all the mechanical hardware via motors and heaters. This is done by the firmware loaded on the Arduino connected to the RAMPS board. The firmware receives GCODE from a host program running on a computer. The RAMPS board itself provides some interface components, connectors, and sockets for Pololu stepper motor drivers which are all controlled by the firmware running on the attached Arduino.
The Host Program
I currently use and recommend repsnapper. Although repsnapper can generate GCODE itself to send to the electronics, it's not very good compared to using a dedicated slicer called skeinforge. Instead of loading an STL into repsnapper and having it generate GCODE, you can generate the GCODE with skeinforge and load it into repsnapper for printing.
Here's what this forum thread is about, using a specific version of a slicer called skeinforge, which I'll refer to as sf40. The skeinforge download page at http://fabmetheus.crsndoo.com/
has several versions, as I write this the most recent is number 40. Installing it on your platform of choice is pretty well covered elsewhere as well. What I want to focus on is the details of getting sf40 configured and generally printing with good results. I will mention that for you Windows users a self-contained portable EXE version of sf40 packaged by Kliment available at http://koti.kapsi.fi/~kliment/sfwin/
I'm not a Windows user, but here's how Kliment described it: "It's a slight modification of skeinforge that saves profiles and settings in the skeinforge dir rather than the user dir, and has an exe for windows users that have no python installed. That way you can easily copy your settings over to another machine, or have multiple skeinforge installs with separate settings." It even runs from a thumbdrive! Now on to the configuration...
Ah, the beast. Many of us are a bit overwhelmed at first with the interface for sf40. It's got some rough edges and uses a lot of terms that can be confusing. I'll go through this literally from the top (of the sf40 window) and comment on each item...
This is set to Extrusion. The reprap is an extrusion printer, enough said.
This is a way to save sets of settings. All the settings below are saved under the current profile. You can save your own profiles for different setting to quickly load any set that you previously saved. Beware though, when you actually slice a file, it automatically saves your settings first, so keep that in mind if you mean to do something only temporarily.
Analyze, Craft, Help, Meta, Profile
The Craft button is where all the settings are that we want to work with.
The Help button just offers links to helpful content, and if you have a web browser configured can open the links with it.
The Profile button is where you can add a new profile. I recommend doing this each time you want to experiment without screwing up your current settings. It's pretty simple to do, type a new profile name in the empty field and click the Add Profile button. Then File->Save and select your new profile from the list at the top of the window.
You should now have a new profile selected to experiment with, and have the Craft button selected.
There are several buttons under Craft, starting with Bottom and ending with Wipe. Each one of these buttons represents a plugin installed in sf40, so all the ones you see are the default plugins that come with skeinforge. I'll go through them one by one. There is a question mark button on each plugin section with a link to descriptions of the settings for that plugin. If the link doesn't seem to do anything, look at the console window you started sf40 from and you should see a HTTP URL there that you can copy into a browser. If I don't mention a setting, just leave it set to the default.
Additional Height over Layer Thickness: 0.7
Make sure Layer Thickness is set to the default 0.4mm
Set perimeter Width over Thickness to 1.7
Chamber, Clip, Comb, Cool
This plugin is at the core of how we are going to be using sf40. Basically, instead of having to tweak several individual settings to get the plastic to extrude well for a specific object, we tell the Dimension plugin about some properties of the filament we are using and it does calculations based on the actual physical volume of the plastic we're using to get things right. For this to work, we need to make a couple very careful measurements, so lets do that now...
First, we need to know the exact diameter of the filament we're using. The easiest way to get this is with a digital caliper. I measured mine at 2.86mm. That goes in the Filament Diameter field. Even if you usually print with ABS, use PLA for these measurements, it will make things simpler and you shouldn't have to measure this next measurement again once you are done.
Second, we need to know that when we tell the firmware to move the extruder 100 units, it pulls exactly 100mm of filament into the extruder. This is NOT a setting in SF40, it's something you need to set in your firmware. You will need to find the configuration file for your firmware where it specifies steps/mm for the E axis. If it hasn't been set for sf40 before, this may be a low number, something like 16. The number your going to measure is likely going to be a lot bigger, so don't be alarmed. If you are using 1/16 motor stepping, it will take a lot of steps to pull down 100mm of filament! Mine turned out to be 587 steps/mm. Araspifire's method for measuring this works very well. You don't want to try to measure 1mm at a time, there's too much measurement error, so here's how I did it:
Fire up repsnapper and connect to your firmware. Click on the Interactive tab and move the Z axis up 20 or so. Set your Nozzle heat target to a good printing value (I use 185C for PLA) and turn the heat on. Set the Extruder Length slider to 100. (If the slider won't land exactly on 100, use the left/right arrow keys on your keyboard to adjust it to exactly 100.) You want the Extruder Speed to be something that isn't very fast, just a nice relaxed smooth speed and make sure you see no sign of the filament slipping in your hobbed bolt. Now that you have extrusion happening, measure how much filament is pulled into the extruder with the length set to 100. Look at your firmware setting (mine was 16) and divide it by how many mm it moved and multiply by 100. If you measured well enough, this new number will be very close to perfect, but it's hard to measure that well, so lets set the firmware a bit low, so multiply the number by 0.8 and set the number of steps/mm for E to that number in the firmware configuration file. Load the updated firmware to your board and reconnect repsnapper. Make sure the Extruder Length is still set to 100, make a mark on the filament exactly 110mm from the top of the extruder. Lower the Extruder Speed to around 100. (Now that the steps/mm is set larger, the old speed is probably too fast. To be sure we don't miss any steps, slowing it down helps and you'll probably find that 100 is now a lot faster than it used to be.) So, you've got your length set to 100, your speed set to 100ish and a mark very carefully measured at 110mm above the top of the extruder. Now click the Run Extruder button once and wait for the filament to stop. Measure to see how far the filament moved as precisely as you can. Divide the current steps/mm set in your firmware by this number and multiply by 100 to get the new number. Set the steps/mm in your firmware to this new number and reload your firmware again. Now do the same measurement process once more with the mark at 110mm. You should now find that when you extrude 100 in repsnapper, exactly 100mm of filament is pulled into your extruder and your mark is now exactly 10mm above the top of the extruder. If it's still off, divide the current steps/mm by the number it actually moved and multiply by 100, change and reload again, and it should be pretty much dead-on exact if you are measuring carefully enough. Don't move on until you get exactly 100mm movement when you move 100 in repsnapper.
Now you are done with the hardest part, getting the diameter of the filament and calibrating the extruder steps/mm. We are still in the Dimension settings, so lets set them:
Make sure Absolute Extrusion Distance is checked.
Extruder Retraction Speed: You can't use a big number here anymore, since speed is now being based on actual mm, so a good starting value is 30
Filament Diameter: This is what you measured, hopefully with digital calipers. My 3mm PLA actually measured 2.86mm
Filament Packing Density: This has to do with how the density of the plastic changes when it melts. We are using PLA which doesn't expand much, so use 1.0. This is the handy part, to use ABS, you should be able to change this to about 0.85 without much change to other settings or measuring again.
Retraction Distance: I set mine to 3. 2 or 3 seems to be a good number.
OK, we're done with the Dimension settings, now on with some more plugins...
Make sure Gcode Small is selected.
Infill Width over Thickness ratio: 1.7 (This should match the Perimeter Width over Thickness value under Carve.)
Fillet, Home, Hop, Inset, Jitter, Lash
Maximum Initial Feed Rate: 30 seems to be good for me, I set this about 10 lower than the feedrate I set in the Speed plugin, up to about 40. Even if you're doing high speeds with firmware acceleration, you don't want to increase this.
Maximum Z Feed Rate: 3.0 seems good for me, not too slow, not too fast. Without this the Z axis motors may be stepped too fast to move.
Or... yes. If you want to print closer to the middle of the bed, set the Center X and Y to the middle value for ech axis, and set the number of columns and rows set to 1. This will move your print to the center, but only print a single copy.
This one is always activated, it lets you specify some gcode defaults. I added gcode to alternatives/end.gcode to move Z up a bit, move X toward home a bit, and turn off the nozzle heat. This is handy if I'm not there when it finished printing! Once thing to be sure NOT to do is have any gcode that changes the extruder steps/mm since you are now depending on the firware setting that you measured so carefully. When I first did this, I had an old start.gcode file left over from sf39 that was resetting my steps/mm to a small value which basically caused my extruder to not extrude while printing!
I don't want a raft, but I want to slow down printing the first layer to help it to stick well. The secret is to use the raft plugin with a couple layers set to zero so that the actual raft doesn't print:
Base Layers: 0
Interface Layers: 0
This used to be where we would set the speeds and flow rate that had a huge impact in how well an object printed. These settings still have a lot of impact, but not in all the same ways. The big thing to remember here is that now the Feed Rate and Flow Rate are the same thing and should always be set to the same value. I set both to 40, and have had good test prints at 60, for your first test, I recommend 30...
Feed Rate: 30
Flow Rate: 30
Travel Rate: 50
Splodge, Stretch, Temperature, Tower, Unpause, Widen, Wipe
That's all the settings that should be a good starting point for using sf40. Save the settings, and you can slice a STL file by clicking the Skeinforge button at the bottom of the window. Once thing I've noticed is that on my system, if I single-click a STL file in the file browser and click Open, it doesn't necessarily open the selected file and instead opens the last file it sliced. I can only select a different STL file to open if I double-click on it instead of using the Open button. Another thing that may not be obvious is when it's done slicing and opens the sliced file in the skeiniso window, you have to File->Save before closing the window or you will lose the gcode. Even though there is an Export menu choice, you don't use it to export your gcode, you use Save. I have not found a way to Save As with a new name, so if you don't want to save over a previous export, you need to move the previous file first or start with a renamed STL file.
Once you have the exported gcode file from sf40, you can load it into repsnapper from the Simple or GCode tabs which both have a Load Gcode button. Then I use the Print button on the Print tab. If a print goes bad or fails to stick at the start, I use the Pause button then click back to the Interactive tab to move the Z axis up right away.
Here's the gcode I put in alterations/end.gcode to move the axis a bit and shut off the heater: You can change the name of this file in Preface.
G1 Z7 F70
G1 X-100 F2300
Here's the gcode I have in my alterations/start.gcode file: (From araspitfire's sf39 guide)
G21; metric is good!
G90; absolute positioning
G92 X0 Y0 Z0 E0 ;zero the extruded length axes
And here's what I have in alterations/replace.csv The last 2 lines must have a TAB for whitespace, not spaces.
A reminder that with feed=flow calibration like this, any other gcode generator will probably try to drive your extruder insanely too fast, either for the motor to step or for the hotend to keep up. So if you want to use other gcode, you'll want to change your steps/mm back to something normal for the old way of doing things.
Well, that's about it for off the top of my head at 1am. My learning curve has been made shallow by others, so I hope some of this rambling helps some other reprappers. Disclaimer: If I'm wrong about something here, let me know so I can learn and so it can get fixed here. I'm not an expert, much of this is my first experience with this stuff. I went from "Hey, I want to build a 3D printer" to a working Prusa in 3 weeks thanks to the help of the community, and have only about 2 weeks of actual printing experience at this point.