Building a Prusa i3 3D Printer

Moderator: Downey_Wercan

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Thu Aug 13, 2015 9:39 am

Step 10: Making the axis move
Image
Image
At this point we wanted to check our wiring and see if the motors would work. To do this you will need to download the RAMPS firmware. (We used Marlin). This can be found in this github repository. Use the "Download ZIP" link and unzip the main folder to your desktop or similar - as long as you know where to find it. You will also need the Arduino IDE if you haven't got it installed. The Arduino IDE can be found here. Current version as of this instructable is 1.0.5. Install the IDE, plug in the USB to Arduino cable, leave the 12V to the RAMPS board off. Open the marlin.pde or marlin.ino file from the Marlin software.

Click the Configuration.h tab and check the following lines:

#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time

add the date between the " " like this:

#define STRING_VERSION_CONFIG_H __DATE__ "July 8th 2014 " __TIME__ // build date and time

also the line below it:

#define STRING_CONFIG_H_AUTHOR "(none, default config)" // Who made the changes.

change the none and default config to something like this:

#define STRING_CONFIG_H_AUTHOR "(Steve, first test)" //Who made the changes.

Find the BAUDRATE line further down

#define BAUDRATE 250000

This should be 250000

Next choose the motherboard type so find:

#define MOTHERBOARD

if it's 7 change it to 33

Since we don't have any temperature sensors hooked up we need to disable them for testing the motor movement.

Find the line:

#define TEMP_SENSOR_0 -1

Change this to:

#define TEMP_SENSOR_0 0

The direction the motors move can be changed by reversing the wiring on the RAMPS board or via the Configuration.h file. Look for the lines:

#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true

#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false

#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true

and change them to:

#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true

#define INVERT_Y_DIR true // for Mendel set to true, for Orca set to false

#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true

We also need to change the number of turns the Z-axis motor makes to move it up and down and also the feed rate of the Z motor

Find the line:

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1}

and change it to:

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,4000,760*1.1}

Find the line:

#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25}

and change it to:

#define DEFAULT_MAX_FEEDRATE {500, 500, 1, 25}

I usually copy and paste the original line, then comment out the original line with two leading forward slashes, i.e. //

I also put a comment line above it so I know where i have changed the file. e.g.:

// SR changed to temporarily disable the temp sensor

So I can search the file for SR and find my changes and also I can go back to an original setting easily.

Save the changes and test compile the sketch. If it's OK then upload it to the Arduino.

Notes:

You will have to make sure you have the correct board (Mega 2560) and port selected under the "Tools" menu on the Arduino IDE

Whenever you make a change in the Configuration.h file you will need to compile/upload it to your Arduino for the changes to take effect.

To control the printer you will also need Pronterface software . Download the Printrun-Win-Slic3r for Windows or Mac and unzip it to a folder and run the pronterface.exe file.

Note there is other software like Repetier Host from Repetier Software which will work with the Prusa i3 and have the same functionality as Pronterface.

OK, check that everything is correctly connected to the RAMPS board and that the RAMPS is plugged into the Arduino Mega correctly. Plug in and power up the 12V supply. Plug in the USB cable to your PC/laptop if it isn't already.

In Pronterface check that the correct port and speed are selected, the port will be the same one used to download the firmware to the Arduino, the speed should be 250000. Click the "connect" button. On the right side you should see the software connect and detect the RAMPS board. Look for the Author: it should be the same as what you put in the Configuration.h file. Use the X, Y and Z movement arrows and try move the motors - try move them 1mm or 10mm for now. As you move your mouse over the X, Y and Z grid the directions and distance will highlight. DO NOT try to home the motors at this time - you will need to put end-stops onto the RAMPS board i.e. do not click on the "home" icons. If you accidentally move the motors too far and they reach a limit of travel and try to keep going just unplug your power supply or press the reset button on the RAMPS board.

You can also try the "Extrude" and "Reverse" buttons to test the extruder motor.

If the motors "chatter" and don't move the axis you will need to adjust the small pot on the driver board. Ideally you should use a ceramic/plastic screwdriver as to ensure you don't short anything out. To adjust the driver first disconnect the 12V power to the RAMPS by either unplugging your power supply or pulling the clips out of the RAMPS board, then click the "disconnect" button in Pronterface. Give the pot a slight turn clockwise, connect up everything again, connect to the RAMPS via Pronterface and try again. Keep going up in 1/8th of a turn increments until you get motion. You will probably also find the motor will turn only in one direction. This is normal for now as we don't have end-stops installed and haven't homed the axis - so the software doesn't know how far it can go in one direction or the other.

It was a great moment in our build when we finally got the motors to move all the axis and extruder motor - It's Alive!!

Before we test the end-stops in the next steps we need to make sure each Axis move in the correct direction.


Lets start with the X-Axis, power everything up and open Pronterface, connect to the board, click the X-Axis 10mm minus and the carriage should move from right to left, click the X-Axis 10mm plus and it should move right. If this is backward then power down everything and flip X motor plug on the RAMPS board around. Power everything up and try again.

For the Y-Axis, start with the bed in the middle. Click the Y-Axis 10mm minus and the bed should move toward the back, click the Y-Axis 10mm plus and it should move toward the front. If this is backward then power everything down and flip the Y-Axis plug on the RAMPS board around. Power everything up and try again.

For the Z-Axis when you click 10mm minus the motors should go anti-clockwise and move the extruder down, when you click 10mm plus the motors should go clockwise and move the extruder up. If this is backward then power everything down and flip both Z-Axis plus on the RAMPS board. Power everything up and try again.

Notes:

1. we found with the cheaper ~$42.00 Arduino/RAMPS combo we got off eBay that the drivers needed adjustment, however a more expensive (~$80.00) combo from SainsSmart the drivers were adjusted and the motors just worked. Part way through our testing I did manage to blow the eBay bought Arduino when I placed a driver board in incorrectly and powered everything up - so be careful with it all.

2. If you have Pronterface open and want to compile/upload changes to the Arduino first click the "disconnect" in Pronterface - this will allow the Arduino IDE to use the port. Once the changes are uploaded you can leave the Arduino IDE open and connect to the Arduino/RAMPS from Pronterface. The Arduino only needs control of the port when you upload the complied changes - no need to close and reload the IDE every time.

3. Save the Marlin file often when changes work. It's a good idea to keep notes on what works and doesn't.

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Thu Aug 13, 2015 9:47 am

Step 11: End Stops - A primer
Image
Image
Image
The Prusa i3 printer has a build size of approximately 200mmx200mmx200mm (8"x8"x8"). To know where it can print you need to "home" the printer. To home the printer we need to use end-stops, mechanical or optical switches that are tripped when the movement of the axis reach their maximum (or minimum) - the switch signals the Arduino and the RAMPS/Pronterface software get the signal and knows the movement limit.

For our build we used mechanical switches. The switches can be wired to be normally open (NO) or normally closed (NC). We used normally open, i.e. when the switch is hit it closes the contacts and sends a signal to the Arduino port via the RAMPS board. This logic can be changed in the firmware to normally closed if you wish. Some would argue that NC is better as if one of the wires break by accident it will trip the RAMPS telling it that the maximum or minimum have been reached. We chose NO as you only home the printer once per print and therefore the printer gets a signal on it's port(s) once vs having the logic on the port the whole time through the print.

In the Configuration.h file this logic of NO or NC is found in the lines:

const bool X_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.

const bool Y_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.

const bool Z_ENDSTOPS_INVERTING = false; // set to true to invert the logic of the endstops.

We changed all of ours to true

const bool X_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.

const bool Y_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.

const bool Z_ENDSTOPS_INVERTING = true; // set to true to invert the logic of the endstops.

Also in the Configuration.h file you define whether the end-stop is at the MIN or MAX of it's travel

// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1

#define Y_HOME_DIR -1

#define Z_HOME_DIR -1

We found the defaults worked.

We placed our Y-Axis end-stop at the back of the printer frame, if you wanted to place it at the front of the frame you would change the firmware line to read #DEFINE Y_HOME_DIR 1 and also change the end-stop wiring to the Y MAX pins on the RAMPS board. That way Marlin knows the Y home position is with the bed forward and to look for the signal on the MAX pins.

Make the changes as above and compile and upload to the Arduino board.

On the RAMPS board are pins for the 3 axis for both the minimum and maximum positions - 6 sets of pins in total. There are 3 pins for each of the X, Y & Z and their MIN and MAX positions - however you only use 2 of the 3 and some documentation we've read suggest you could damage the RAMPS board if you use all 3 of them.

See the attached image of the RAMPS for the correct pins to use.

For the X, Y and Z axis we used the MIN pins - when we clicked X minus in Pronterface the carriage moves left, when we clicked the X home position the carriage moved left to the end-stop, when we clicked the Y plus the bed moves forward, when we clicked the Y home position the bed moves back to the end-stop, when we click Z minus the carriage moves down, when we click the Z home position the carriage moves down toward the end-stop.

A note on the Marlin software and the RAMPS pins:

We placed our Y-Axis end-stop at the back of the printer frame, if you
wanted to place it at the front of the frame you would change the firmware line to read #DEFINE Y_HOME_DIR 1 and also change the end-stop wiring to the Y MAX pins on the RAMPS board. That way Marlin knows the Y home position is with the bed forward and to look for the signal on the MAX pins.

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Thu Aug 13, 2015 9:49 am

Step 12: End Stops - Setting them up & testing
Image
Image
Image
For our home position we wanted the bed (Y-Axis) all the way back, the X-Axis to the left and the Z-Axis all the way down - this makes the print head home on the front left of the heat bed.

To do this the X-Axis end-stop goes on the left side of the X-Axis, the Y-Axis end-stop goes at the back of the printer and the Z-Axis end-stop goes on the bottom left. Included in our plastic kit were 3 switch holders. We were able to use 1 of them for the X-Axis, but decided to use different designs for the Y and Z axis. Our Y-Axis holder just wouldn't work and while the Z-Axis could have worked there was (IMHO) a better design. For the Y-Axis we used this design from thingiverse, and for the Z-Axis we used this design from thingiverse.

First thing is to use a multi-meter and figure out which wires to use on the switch, if you use a multi-meter with a buzzer that sounds when the leads are shorted and therefore when the switch is closed you will be able to figure out which pair to use that is NO and closes when the switch is tripped.

Use the pairs that are open when the switch isn't tripped and closed when the switch is pressed.

Wire up the switches and plug them into the RAMPS board - looking at the RAMPS from the top - plug in the X end-stop on the first row, miss a row then plug in the Y end-stop, miss a row and plug in the Z end-stop.

See the image above to see where to connect them on the RAMPS board. For testing don't mount the switches in their holder as you first need to figure out if everything works and at first we just want to test that the axis movement will stop when the switch is closed. You only need 2 wires from the switch to the RAMPS board, do not connect a wire to the 3rd pin on the RAMPS. Also when testing be ready to either disconnect the 12V power or press the reset switch on the side of the RAMPS board as if the end-stop switch doesn't work as expected the motor could continue to try drive the axis even though it hit it's limit.

With the end-stop switches plugged in power everything up and connect to the Arduino/RAMPS with Pronterface.

Be ready to unplug the power supply or press the reset on the RAMPS if the following doesn't work...

With the X-Axis in the middle click the X-Axis home icon - the carriage should move left. Press the end-stop switch and the carriage should stop moving.

With the Y-Axis in the middle click the Y-Axis home icon - the bed should move toward the back. Press the end-stop switch and the bed should stop moving.

With the Z-Axis, click the home icon - the carriage should move down. Press the end-stop switch and the carriage should stop.

If things don't work as expected:

1. Make sure the direction of the axis is correct - check in Configuration.h that you changed to mendal as in the previous step, if correct and you did compile and upload to the Arduino you can change the the plug-in on the RAMPS.

2. Make sure the switch is NO and goes closed when pressed and that the logic was changed in the Configuration.h (and compiled/uploaded) as per the previous steps.

3. Make sure the MIN or MAX is configured correctly in the Configuration.h

4. Make sure the leads go to the correct position on the RAMPS board

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Fri Aug 14, 2015 1:07 am

Step 13: End Stops - mounting them
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
You will need to mount the heated bed onto the bed base. You may want to wire it as per the next step before this - or just mount it temporarily for now. We are using springs between the bed and holder to help level the bed when we calibrate - so make sure you add them when testing the height of the bed vs the Y-Axis end-stop. (search ebay for "reprap springs" to find them)

X-Axis: We used the "vanilla" end stop mount for the X-Axis. It clips onto the top 8mm smooth rod and faces downward. It can be adjusted left to right to get the correct position of the home position of the X-Axis

Y-Axis: Since we couldn't fit the vanilla end-stop mount we had a member of our hackspace print us up this design. It sits behind the printer and is adjustable both up and down and forward and back.

Z-Axis: The vanilla mount would have worked for us, but it had to be mounted on the right side and therefore needed a longer run for the wires. Because we used the alloy couplers between the motor and M5 threaded rod (vs 4mm tubing) the vanilla mounts were a tight fit. I found this design on thingiverse which moved the stop to the left side and was a lot neater.

See the pictures of our mounts - and yes we did cover the wires with braided sleeving.

We also un-soldered the large plugin adapters on the switch and soldered the two wires directly to the PCB, in most cases they interfered with mounting the switch to the mount and we think it looks a little cleaner.

Once everything is in place connect it all up, start Pronterface and test the positions. With the bed installed and the hot-end temporarily installed you will be able to adjust the stops and frame to home the extruder/hot-end to the front left of the bed. You will also have to adjust the 10mm threaded rod on the Y-Chassis to move the bed back or forward so the Y motion covers the whole bed.

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Fri Aug 14, 2015 1:15 am

Step 14: Heated Bed
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
A heated bed helps print quality by allowing the printed part to cool slowly and therefore not warp, it also helps the extruded ABS/PLA etc adhere to the bed.

Note:

The heat-bed can pull a little over 9A of current and is controlled by a MOSFET on the RAMPS board. (12v / 1.3 ohms = 9.2A). We found the standard STP55NF06L got very hot even with a heatsink. After reading a few reprap forum threads on this issue we decided to change the MOSFET to a IRLB8743PBF and found the issue went away. The circuit is also protected by an 11A resettable fuse - the extruder circuit is protected by a similar 5A fuse. See the images. This fuse also gets hot to the touch and if the circuit pulls maximum amps it will heat up and expand and break the circuit. We found that we had to have a small fan blow air over the fuses to keep them cool during the initial heat up of the bed. Once we did this it heated no problem. We may look at changing the fuse out to a 15A unit later.

When attaching the two 12v circuit wires from the heat-bed to the RAMPS make sure they are inserted into the terminal blocks correctly and the screws are tight.

On to the build:

In our build we turned the bed around so the 12V solder pads were at the back of the printer - this was so the wire runs were shorter and didn't run under the bed itself. We used the same 16awg we used for the 12V power supply run. You must use stranded/flexible wires for the 12V heat-bed.

The temperature of the bed is is read by the Arduino/RAMPS by a thermistor (usually 100k). We used a pair of wires from the wiring kit we bought from eBay. Solder the thermistor to the wires and cover the joins with heat-shrink.

The thermistor is attached to the underside of the bed with "kapton" tape. See the attached image.

There is also a hole in the center of the heat bed - this is so if you want to put the thermistor in contact with the glass sheet that usually goes onto the heat bed, you can read the temperature of the glass directly. Due to the shape of our thermistor we stuck with the normal placement against the heat bed itself.

Solder the two 12V wires to the solder pads and then mount the heat-bed onto the frame. With the bed all the way forward measure and cut both sets of wires to length. The 12v bed wires go to the RAMPS D8 position - make sure the screws that hold the end in the terminal block on the RAMPS are tight..

The thermistor wires go to T1 pins on the RAMPS.

We attached out heat bed to the frame with M3 bolts and used springs with washers to enable us to level the bed if needed.

In the firmware Configuration.h file look for the line:

#define TEMP_SENSOR_BED 0

Change the value to what best matches your thermistor - we used a value of 1

Save and upload to the Arduino.

Connect everything up and open Pronterface, connect to the RAMPS and click the box "watch" in the left column above the graph, on older versions of the software it's the "Monitor Printer" at the top of this column.

Also click "Settings" then "Options" then "User interface" and make sure there is a check mark on "Display temperature gauges" - you should restart Pronterface after this.

You should see the bed temperature reading the current room temperature. Select PLA temp from the drop down menu and click the "set" button. You should see the temperature rise in the graph and it will level out at 60c.

On our RAMPS a red LED comes on when the heat bed is on and goes out when the temperature is reached. Once it hits the desired temperature it will cycle on and off to maintain the correct setting.

Hold your hand above the bed (don't touch it - it will be hot!) and you should be able to feel the heat. Try the ABS setting and make sure the bed temperature levels out correctly.

Be sure to click the "off" button before disconnecting from the RAMPS to shutoff the 12V to the bed.

If the fuse trips before the correct temperature is reached try using a small fan to cool the fuses. As mentioned above we found a small fan was needed to help cool the fuse.

You will need a 8"x8" piece of glass - we used 3mm. We covered the glass with blue painters tape to help the first layer of extruded abs/pla adhere to the bed/glass. Another option is kapton tape. Do not let the tape overlap on itself as it will cause the first layer to print incorrectly and therefore every other layer.

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Fri Aug 14, 2015 1:18 am

Step 15: Calibrate the Extruder
Image
Before you attach the hot-end to the extruder you should calibrate the number of motor steps to extrude an amount of filament (we tested 100mm). Open the marlin.ino file and in the configuration.h tab find the line:

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,4000,760*1.1} // default steps per unit for ultimaker

We have already changed this line to get the correct number of steps for the Z-Axis. Change the 760*1.1 to 450 and upload the file to the Arduino. Move the Z-Axis up toward the top and put a 200mm length of filament into the extruder and wind it down so it just comes out the bottom. Using a ruler or calipers measure up 120mm from the top of the extruder idler and place a mark on the filament. Start Pronterface and connect to the printer.

Under the extrude button change the amount to 100mm and change the rate to 300 mm/min.

Click the "extrude" button to extrude the 100mm of filament.

Measure from the top of the idler to your mark to figure out the actual amount extruded. i.e. if it measures 30mm then the actual amount extruded is 90mm (120 - 30 = 90)

Use this formula to get the new value for the steps per unit:

new_value = old_value * (100 / actual_amount_extruded)

Using the above example then... 450 * (100/90) = 500

So in Marlin replace the 450 with 500 and try again. Save and upload the changes to the Arduino. You should be able to get within a mm doing this 2 or 3 times.

Our final number was 472 - but it will be based on the gearing etc of the extruder.

If the filament doesn't extrude properly make sure the hobbed bolt is lined up correctly with the guide hole for the filament - if not shim it with washers as necessary. Also try adjust the tension of the idler springs - they may be too tight or loose.

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Fri Aug 14, 2015 1:22 am

Step 16: Hot End
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
I thought installing the hot end would be one of the hardest parts of the build and in some ways it was - once wired up it was quite hard to install into the extruder. It helps to use a small nut driver on the bolt head (or use a cap screw and allen key)

Since we bought the hot end kit from Makerfarm we followed their video tutorial on wiring it up - for the most part.

Start by inserting the resistor through the hole in the hot end, Cover the exposed pieces of wire with the heat resistant tubing leaving enough to go into the end of a ferrule. Crimp a ferrule on each end.

Measure 2 lengths of the 18awg wire - keep in mind it has to reach from the bottom right position of the axises to the RAMPS board. Crimp on the wire.

Note: it is a bad idea to solder these wires as the temperature could get to 220 degrees C, enough to melt solder - so this is why crimps are used. Cover the crimps with shrink tubing.

For the thermistor we covered the leads with the temperature resistant tubing and soldered 2 wires from our wiring kit to the thermistor. (our kit was missing the ferrules and I could only source larger ferrules for 16awg wire locally) These were covered with shrink tubing.

Insert the thermistor into the small hole on the hot end and use thin kapton tape to hold it in place. As per the Makerfarm video run thin kapton tape around the end a few times, then tape all the wires just a little further up (below the bottom cooling fins). Fit the hot end into the base of the extruder - our was a really tight fit. Slide the extruder/hot end into the mount and use M4 nuts and bolts to bolt them together. Make sure you don't crush any wires doing this.

We didn't remove the mount from the X-carriage and it was quite hard to get everything together - so it may be easier to remove the mount first. Once we have an operational and tuned printer we will probably look at alternatives to this setup.

With the hardware mounted we connected the 12v wires to the RAMPS D10 terminal block and the thermistor to the T0 pin on the RAMPS. You will need to open the Marlin.ino (or pde) file and change the line:

#define TEMP_SENSOR_0 0

to

#define TEMP_SENSOR_0 1

This tells the RAMPS that we have a 100k thermistor on pin T0 and we will be able to test heating the hot end.

Save the file and upload it to the Arduino, start Pronterface and connect to the RAMPS, check the "watch" box as per the heat bed step (or "monitor printer" box) and you should see the hot end temperature (should be around room temperature). Next to the "heat:" select 185 (pla) and click the "set" button. You should see the temperature graph rise as the hot-end heats to 185 and of you put your hand close to the hot end you will feel the temperature (don't touch the hot end, it will burn you!). Try the ABS setting too. Make sure to click the "off" button before you disconnect from the RAMPS.

At this stage of the build you can test extruding actual ABS or PLA - raise the Z-Axis, heat the hot-end to the required setting and give it a try. Try extrude 20 or 30mm, you should eventually get fine plastic extruding from the hot end.

Don't leave the hot end at the melting temperature too long without extruding plastic particularly with PLA as it can overheat in the hot end and gum everything up. So after testing click the "off" button.

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Fri Aug 14, 2015 1:26 am

Step 17: Calibration before the first test print.
Image
Image
Image
Image
Image
Image
Image
At this stage of our build we haven't really done much calibration except for the extruder and the Z-Axis under the #define DEFAULT_AXIS_STEPS_PER_UNIT line.

To find the "steps per unit" for the X, Y & Z axis you can use Jozef Prusa's RepRap Calculator. For the X and Y Axis we used a GT2 pulley with 20 teeth. The motor step angle is 1.8 degrees and they are setup for 1/16 micro step (remember we used 3 jumpers under the driver on the RAMPS). So using those values in the calculator we get a value of 80 for the X and Y.

In an earlier step we changed the Z-Axis value to 4000. This was found using the Steps per millimeter - leadscrew driven systems. Again - 1.8, 1/16 and pick M5 to give 4000.

The extruder value was found as per the previous step by extruding 100mm of filament and calculating the correct step number. So our final default axis steps per unit line looks like this:

#define DEFAULT_AXIS_STEPS_PER_UNIT {80,80,4000,473}

It goes X, Y, Z, E

To ensure our Z-Axis was level we moved it close to the top of the axis and measured the distance between the top of the X-Ends and the top Z-Axis mount on each side, then manually wound one motor so the measurement was the same on each side. You can also sight the X-Axis smooth rod along the top of the frame to visually see if it is parallel.

Next we moved all the axis to the home positions to level the bed. From the home position move the Z-Axis down so you can just slide a piece of paper between the nozzle and painters tape on the glass, then move the bed forward all the way and adjust the M3 bolt so the paper just slides between the nozzle and tape. Move the nozzle/bed to all four corners doing the same until it's even. You will have to go around a couple of times to get it correct. It's important to get the bed as level as you can as the first layer of the print has to be as accurate as possible as every other layer is built on top of this.

The Pronterface bundle downloaded in step 10 includes "Slic3r" This takes a 3d model and generates G-code. It slices the 3D model into the layers for the 3D printer. Start Pronterface and click "Settings" then "Slicing Settings"

This will start Slic3r. If it starts with a configuration wizard then go through it, if not then click "Help" then "Configuration Wizard".

Firmware Type = RepRap (Marlin/Sprinter/Repetier)

Bed Size = 200mmx200mm

Nozzle Diameter = ours is .35mm

Filament Diameter = 3mm

Extrusion Temp = we used 200C

Bed Temperature = 60C

kyogjj
Posts: 219
Joined: Wed Jul 22, 2015 7:56 am

Re: Building a Prusa i3 3D Printer

Postby kyogjj » Fri Aug 14, 2015 1:29 am

Step 18: First Test Print
Image
Image
Image
Image
Image
At this point of our build we just wanted to print something - and if you use this instructable as a guide for building your own Prusa i3 you will probably want to as well.

A normal first print is calibration cubes/set - but we chose "Keff's Weeping Skeleton Vampire Mummy Earphone Winder" from thingiverse. It may as well be something useful!

We loaded some PLA into the extruder, started Pronterface, did a "file" then "open" found the .stl file and brought it into Pronterface. After heating the bed and hot-end, we homed the print head and clicked the "print" button.

After a few seconds the printer did a quick "home" then moved to the center of the bed and our print started.

With the minimal calibration we have done the first two prints we did turned out fantastic. As we fine tune and further calibrate the printer we will be keeping notes and hope to have another Instructable on the actual fine tuning andcalibration.

The RepRap wiki also has a great write up on calibration.

When you have finished your print using PLA don't let the filament sit in the heated hot-end, either let the head cool a little (about 10 degrees) then reverse it out or let it cool while you are preparing for your next print. Five or so minutes is OK.

Who is online

Users browsing this forum: No registered users and 2 guests