|
Post by sypher on Mar 28, 2013 2:06:57 GMT -5
How do I make use of my limit switch? I want to set up so that it can start and finish a print job automatically instead of what I am doing now. Which is manually doing the following heat up bed > move bed Z amount > Heat up the hot end > print. I would like to someday attach a sd card reader with a controller and work independently from my laptop.
I couldn't find any tutorial and tired doing this a while ago in pronterface and it didn't go as what I thought it should have went. Would someone point me to a tutorial or guide me through the process?
|
|
|
Post by highcooley on Mar 28, 2013 4:17:10 GMT -5
Hi sypher Can you explain a little more detailed, what you mean by "make use of my limit switch" and "move bed Z amount"? Do you mean, that your limit switch settings are not correct in the firmware and you have to manually adjust Z distance to bed before print? The process there would be to zero your machine, figure out the delta between nozzle and bed when both, bed and hot-end are heated up to working temperature and adding this value to max Z height in your firmware. Usually, you need to fine tune this value several times, until you get the first layer thickness correct. This can be done with the method of moving a sheet of paper between bed and nozzle and adjusting Z in pronterface until you feel a slight resistance when moving the paper. The heat up process for both, bed and hot end can be done automatically before print. This is done in your slicing software by editing the custom start g-code, using m-code commands and slicing software specific variables for both temperatures. The m-codes you need are M104 (set extruder temperature), M140 (set bed temperature), M109 (set extruder temperature and wait until target temperature is reached) and M190 (set bed temperature and wait). Depending on your taste, you can combine this codes, including a G28 (home all axis) code. I found an interesting combination here: www.soliforum.com/topic/231/improved-start-and-end-gcode/ which I haven't tried yet but find it interesting with it's anchor approach. If your power supply doesn't provide enough power to heat up both heaters from room temperature at the same time, I would first set and wait for the bed temperature and then go for the hot-end, since the bed needs a lot of power and takes much longer to heat up. Otherwise, set one temperature, then set and wait for the other and set and wait for the first temperature again to make sure, all target temperatures are reached. I hope, this was of help for you. Cheers Andy
|
|
|
Post by sypher on Mar 28, 2013 17:06:58 GMT -5
Hi, I already have everything connected at the right location as described on wiki. Now what? How do I zero the machine and set my custom home setting. In sprinter .h are these following settings for xyz "const int Z_MAX_LENGTH" under "const bool max_software_endstops = false;" the one I need to change?
I am having some trouble with the software side I guess. I have calibrated xyz already during a print, is it the same process for setting home? I was manually moving the nozzle head in xyz this whole time for every print. I am using Slicer and understand how to control the heated bed and hotend but now just need to get it moving correctly to the right spot before a print and move back to x amount after a print. I am using RelicatorG to print now.
|
|
|
Post by highcooley on Apr 2, 2013 3:02:25 GMT -5
Yes, exactly, you need to set "const int Z_MAX_LENGTH" correctly. To be able to do this, you have to make sure, that your bed is absolutely level to the nozzle (distance between nozzle and bed is always the same, independent from the x/y position of the nozzle). If you homed Z in Replicator G (platform hitting the end-stop) and sent the command G1 Z0, the nozzle should stop somewhere above the print bed. Unless of course, you have already messed around with the max length and set it larger than the actual distance between the platform hitting the end-stop and the nozzle touching the bed. In this case, the nozzle will CRASH into the bed. So ALWAYS have one hand at the power switch when calibrating to immediately switch off to prevent crashes. Let's assume, it didn't crash: Then, the bed should stop close to the nozzle. I don't use ReplicatorG, but I think the control needed is called jog control. Each time you click on the Z- arrow, the bed should move towards the nozzle the amount of mm set in jog mode. Use the jog mode setting and the Z- arrow to close in the gap between bed and nozzle until you are about 1 mm above the bed, always remembering how many mm you had to close in. For the last mm, set jog mode to 0.1mm. Then stick a piece of paper between bed and nozzle. To be as accurate as possible, heat bed an nozzle to working temperature now (both, the bed and the nozzle slightly expand when heated). When you reach temperature, start closing in this last mm, 0.1mm at the time. After each step, check if you feel a resistance when you move the paper between the bed and the nozzle. If this is the case, then you have found the right value for Z=0. Let us assume, that you moved the bed once for 10 mm, three times for 1 mm and seven times for 0.1 mm. So you end up with 13.7 mm. Add this value to the current z max length setting in your firmware and upload the firmware again. Zero your Z axis, heat bed and nozzle again and then move it 5 mm above bed level with the command G1 Z5. This is to make sure, you didn't do a mistake and the nozzle actually ends up 5 mm above the bed. Put the paper back in place, use G1 Z0 and check, if you still feel the same resistance. If this is the case, zero Z and go G1 Z0 directly a couple of times to make sure, this works flawlessly. If you feel more resistance, move the nozzle away in 0.1mm steps, if you feel less, move it closer. Reset your Z max length if necessary until zeroing works perfectly. When you are sure it works, do a test print (with proper zeroing with G28 in start g-code), abort after the first layer and measure the layer thickness. If it has the thickness that you set in your slicer software, congratulations, you just set your machine properly! Otherwise, finetune Z max length.
To "max_software_endstops = false": This means, that the software end-stop function is set to off. If you didn't add additional end-stops, your machine only knows the limit on one side of every axis. To prevent your machine from accidentally crashing on the other side, you can enable software end-stops. So, the machine does not move more than MAX_LENGTH (set independently for each axis) in any direction. Usually, you never give your machine a command to move further than that anyways. However, if you do a mistake, software end-stops prevent a crash. However, you should not enable software end-stops during calibration anyways and it also only helps, if you calibrated all three axes correctly.
I vaguely remember that there was a firmware issue once with these software end-stops. However, I don't know, if this was with sprinter or marlin and if it got resolved with the version of sprinter you are using. Best you calibrate and test max lengths. If your machine works properly, you can switch on software_end-stops. Just keep in mind that if your machine behaves strangely, this could be because of the software end-stops.
Ok, I hope, this helps and you are able to zero your machine properly. Otherwise, don't hesitate and ask again. There is also tons of information online about how to properly calibrate a 3D printer. I find the paper sheet method to be the fastest, easiest and accurate enough way to do it.
Cheers, Andy
|
|
|
Post by sypher on Apr 3, 2013 1:36:57 GMT -5
I couldn't find the find home or where to enter the much needed g code in ReplicatorG so had to switch over to Pronterface instead and everything is tune to my liking now. I was a bit hesitant going through the process again because last time it always crush my axis no matter what value I used, turn out that the wiring was wrong and the z limit switch was too far up and would contact the bottom of the x carriage screw instead first so thank you for taking the time to write this great guide, surely I won't be the only one that will find this useful so much appreciated.
|
|
|
Post by highcooley on Apr 3, 2013 4:09:18 GMT -5
Glad it worked and your printer is finally tuned. I figured out that our wiki is a bit short on this behalf. Maybe you could contribute by explaining this process in your own words with a couple of pictures: sumpod.jumpwiki.com/wiki/Software
|
|
|
Post by sypher on Apr 3, 2013 23:01:11 GMT -5
The unofficial wiki is helpful and play a big part of me completing my build so I would be happy to contribute what I can. I made a page under tutorials called "How to home your machine" and hopefully it will be of some use.
|
|
|
Post by sypher on May 11, 2013 15:02:37 GMT -5
there is a hick up with my z home now. For what ever reason it only accept integer and can't get it to move any micron closer to the hotend. I am sure I didn't change the firmware and the only thing I can think of that changed recently was that I had reinstall the hotend and now when ever I go to print something it is always 0.4mm away. Ex. 71.1, 71.5, 71.9 all 0.4mm away.
|
|