RepRap Project
From FGARWiki
RepRap Project
The Replicating Rapid Prototyper (RepRap) project home page can be found at http://www.reprap.org. We have chosen to follow the Prusa Mendel Assembly plans which can be found at http://reprap.org/wiki/Prusa_Mendel_Assembly.
How this page works?
Here is where people working on this project can document where they left it last. Why would you want to do this?! So that the next person who works on it can pick up where you left off with out having to check step by step what has and has not been done. REMEBMER: Please, and I mean /please/ use this page even if you are /sure/ you wil be back to work on this project next time. Life happens and you might not be here to work on it.
Formating and Guidlines
You don't have to write a book here, just leave a note on the step you left off on below as well as any notes that you think might be useful for other project members. Also leave any errors, issues, notes, etc that you find with the Prsua Mendel so we can send thoes to the main project's (http://reprap.org) wiki so others can share and what we learned.
Project Status
Machine #1 works, mostly. ;)
Acquiring Parts
Printed Parts
LM8UU
The LM8UU bearings we received from china via alibaba are defective, and the seals have a tendancy to catch on the smooth rod (even new from factory, cleaned).
To correct, just remove the seals, as once they catch, they stay catchy.
Assembling the frame vertex triangles
Assembling the front threaded rods
Assembling the rear threaded rods
Assembling the top threaded rodss
Tightening the frame
checked assembly of machine frame. found missing nut and washer in vicinity of lower stepper motor assembly. Consulted project leader and learned that it was intentionally left that way due to using a plastic gear which has now been replaced with a metal gear.
re-assembly of that area will be required to add nut/washer and bring project to spec.
Found no other errors in assembly.
Confirmed that precision adjustments have NOT BEEN MADE up to this point.
Assembling the y axis
Assembling the x axis
Assembling the z axis
Installing the carriage
Attaching the Print Bed
Cutting the Print Bed
Advice from the project
make the bed out of 8 mm MDF or 5 mm Perspex. To mount it to the bearings, just drill the appropriate holes, and use zip-ties.
What we did
We aquired MDF at lowes. Remember that the dust is toxic, so make sure to use an air filter right next to where you are working on this material.
http://en.wikipedia.org/wiki/Medium-density_fibreboard
DO NOT use the dremmel to cut this; it burns the material instead of cutting.
Instead, use a knife, or a box cutter. Use useless cases to support the material where you are cutting. Make sure to vacuum out the machines in question (or dispose of them properly) when you are done.
Wiring the electronics
Motor Controllers
MS1, 2, and 3 of X, Y, and E need to be wired to +5 volts, to enable 1/16th microstepping.
Thermal Circuit
4.7K to positive rail, 100K across thermistor.
Firmware calibration
X and Y Axis
- Set the hard calculated value for steps-per-millimeter.
- next, make the axis move with the buttons of pronterface. make sure they move in the right directions, and that the endstops function.
- Set the max feedrate in the firmware to an insane value. I used 80000.
- Make the axis move with manual G1 commands, for example:
G1 X0 F2000
Adjust the feed rate (speed of the axis) on your manual moves upward, until you can make the axis skip. This happened for the first time for me, at a rate of 16000. Adjust it until you are comfortable that the machine will not skip at that speed, barring other obsticles (12000 was the magic number for X, this run)
now, set this value as the max feed rate for this axis in the firmware.
Z Axis
The Z Axis by default is geared up much higher, but the procedure is similar to the above procedure.
- Drop the steps per millimeter for Z to the floor, in the firmware. I started at 140, assuming microstepping is turned off on the axis.
- Measure your distance moved, and adjust. my first adjustment was to 135.
E Axis
To adjust the Extrusion speed, extrude a known quantity of material, then measure how much material is left over (as in, did not enter the top of the extruder). Multiply the current extrusion steps per milimeter with the amount expected, OVER the amount measured.
OPS settings
Be wary of bad OPS settings causing intermittent extruder jams. turning up the rate at which our firmware pulls back the fillament, before a move results in jams. (max extruder speed, mm/s)
Max Speed
to find the stable speed of your extruder, print the 20_mm_box.stl calibration item shipped with sfact sliced at various speeds. Observe the top of the object, to see whether it appears 'droopy'. if your plastic is stopping and starting, you'll see 'lines' in the top of the object. If the plastic is semi-transparent, check it for how well light passes through it, by placing it in front of a flashlight. if the top layer looks 'dirty' you're going too fast, but if you can see defects in the middle of the object, you're in the right range.
When using hobbed bolts to drive the filament through the extruder you can only go so fast. For our testing the fastest possible extruder speed we can reliably obtain is 40mm/min. This works out to 0.66mm/sec. We have had limited success when using herringbone gears of attaining 60mm/min or 1mm/sec speeds, but these speeds could not be sustained for long print jobs(over an hour).
For Repetier-Firmware the settings to be aware of are the following:
- max extruder speed (mm/s) - 0.66 mm/sec
- Extr. start feedrate (mm/sec) - 0.6 mm/sec
- Extr. acceleration (mm/sec^2) - 1.0 mm/sec^2
- Extr. max feedrate (mm/min) - 40 mm/min 50
We currently have:
- Max Extruder Speed: T3 P95: 1mm/sec
- Extruder Max Feedrate: T3 P154: 70mm/min
K value
K is the amount the pump is primed before a fast move. it starts at 4.
the community calls this 'advance'.
adjusting it requires an item to print that is a single wawll item, with long stretches, so the printer can be moved rapidly in a single direction.
PID values
For tuning PID values see the chart on Wikipedia for assistance.
Our initial PID was set to: 300, 1, 200
Change pronterface's internal variable, to cause it to monitor the printer once a second, instead of once every three seconds:
* !self.monitor_interval=1
Measure three times, measure your first-rise peak, the dip afterward, and what it rises to after the dip.
In our case, I got 173->158->167 all three times.
Halving or doubling D had at this point no measureable effect whatsoever. (i could not measure the period of the oscillation at this point)
We set the PID drive min to 0, and max to 255. This is so as to trigger the floor of our darlington transistor (tip120) easier, and resulted in visibly improved extrusion. Setting the min to 0 resulted in the dip in our oscillation to start getting 1 degree lower.
Next, we're going to start removing I and D, to get us closer to the zeigler method of tuning.
First, remove I. 170-> 156-> 164 170-> 156-> 164 170-> 156-> 164
At this point, the target temperature is reached after first oscillation, but drops as low as 157, before coming back up to 164.
I'm going to guess, that since we have eliminated the 'second bounce too high', that the P component is too high, and that is not allowing us to express the I component at all.
(this guess was in fact completely wrong).
Next, we're going to remove the D component, so that P can express itsself alone.
The temperature ranges are unaffected by this change.
Dropping P seems like a good idea at this point, so that we can re-engage the expression of I.
We're going to cut P into 1/2 of its value, to start with. 166->152->158
Next, we're going to re-enable the expression of I, setting it to 1.
This resulted in a temperature that went through the roof, so we cut down P again, to 1/3 of its origional value.
At this point, we started bouncing ten degrees around the target value.
It turns out through trial-and-error, that our P value needed to be larger. After all this tuning, we ended up with a PID of 1200, 1, 400, which ends up bouncing around +- 3 degrees, instead of what we started with.
Keep your D value low for more stable temperatures
http://en.wikipedia.org/wiki/PID_controller#Overview_of_methods
PID drive max is used when bringing up the temperature, from room temp, according to https://github.com/repetier/Repetier-Firmware/wiki/Temperature-control .
(old notes) To begin with, we were overshooting our target temperature, and had a variance of ~5 degrees, so we decreased P by 100.
after that, we were still going high three degrees, low three degrees, so we dropped it another 50.
OPS
set the OPS on 'fast'. set retract % to 50. set retract on move to 1.00mm. set retract filament amount to 0.5mm.
When the OPS is set to 'fast' mode the firmware will attempt to create tool paths that speed up and slow down to match the actual speeds the extruder can go. To get this pathing mode to engage you must take care to set the following values appropriately for the speed your extruder is set to.
- Extr. start feedrate (mm/sec)
- Extr. acceleration (mm/sec^2)
If your extruder has a max speed of 40mm/min then the start feedrate should be between 0.00 and 0.66. The acceleration speed should not be higher than 1.00 for an extruder with a max speed of 40mm/min. If your extruder goes faster than 40mm/min these values will need to be adjusted up.
Getting Firmware Values
On Repetier, which is the firmware we are using, the M205 command is all that is required to dump these firmware values. type it into Pronterface's command pane (the text box next to the send button), and hit enter. The values will show in the Pronterface interface, but ignore that, go to the terminal you launched Pronterface from. all of the printer output is displayed there, as well, and the terminal is more manageable. scroll back, to see what the firmware values are.
Each value is displayed in the following format: EPR:<Type> <Position> <Value> <Description>
Types become important, when setting these values, as the syntax differs.
Setting Firmware Values
On Repetier, the M206 command is used to set a firmware value... but the format is rather tricky. To set a value within the firmware, the format is: M206 T<type> P<Position> (if Type=3{X})<value> or if Type=(0|1|2){S})
Notice that the value must be an integer(?).
For instance, to set the 'X-axis max. feedrate', i used the following command: M206 T3 P15 X12000 to set OPS to Fast i used: M206 T0 P103 S2
Hardware Calibration
Extruder
If you're not able to measure a consistent rate, when trying to set your extrusion rate, its possible you have some friction in your extruder.
paint the bearing in the idler with a magic marker. extrude material. see whether the paint is moving. if it does not move consistantly, there is friction on your idler bearing. If it moves somewhat, extrude a bunch of material, then disassemble your extruder. odds are, you will see magic marker where you were rubbing against the plastic. file anything that has been marked away.
Recovering a print
When the arduino locks up, the following commands are useful:
M110, to re set up the current line number... !self.p.resendfrom=-1 - to reset the sending system of pronterface !self.p.clear=1 -- actually start sending data out of pronterface.
next, set the extruder into relative (M93) or absolute (M92) mode, and set the movement into relative or absolute mode, depending on the contents of your g-code file.