THE Rostock Max calibration guide
Posted: Fri Apr 26, 2013 1:40 pm
There are a lot of Rostock Max calibration tips and tricks out there, but I’ve found that they are posted across several different threads that are difficult to search for. I’ve compiled the links and information that I found helpful while calibrating my Rostock Max. I make no claim to be an expert on the matter, this is just my experience with getting everything dialed in. There are multiple ways to do everything, so please test, tweak, modify, and enjoy!
After you’ve built your machine, there are a few things that you need to do before embarking on your first print.
End-stops and Motor Direction:
The first thing is to check that your end-stops are functioning and that your stepper motors are moving the right direction. Gene’s assembly manual does a great job of outlining this process (http://forum.seemecnc.com/viewtopic.php?f=39&t=987 ). In short, use the “M119” command to test all 3 snap-switches. Both that they function, and that the right one is plugged into the right axis. Then you’ll send the “G28” command, with your hand on the power switch, to see if the motors move up or not. If they move down, cut the power and reverse the motor direction. I suggest doing this with the wiring so that you don’t have to change it in your firmware each time you load a new version in the future.
Set Z Height
Next, you need to set your height. This is also outlined well in Gene’s manual (http://forum.seemecnc.com/viewtopic.php?f=39&t=987 ). Heat the bed and hot-end, home the axes, and jog the hot-end down (careful at the bottom) until you are about the thickness of a piece of paper from the heated bed. Then you can take that Z value (in the manual control window of Repetier) and add or subtract it from the X, Y, and Z "MAX LENGTH" numbers in the EEPROM and Repetier settings. There is also a good guide for mechanical setup that can be found here (http://minow.blogspot.com.au/ ). Note, that your z-height will change when you level the bed and also when you adjust the delta radius. You'll have to dance between all 3 of these settings multiple times to get everything spot on because each one has some effect on the other two.
Bed leveling
Now that you're in the ballpark on z-height, it's time to make sure that everything is level. Heat everything and jog your hot-end down until you're about 1 cm away from the build plate. Then manually move X and Y to position the hot-end near each tower. You want all 3 to be at the exact same height, and you want those "outisde heights" to match the same height in the center of the build plate (see delta radius below). If a tower is higher or lower than the others, you need to adjust your endstop screws. Turn the screw to the right (clockwise, tightey, anticyclonic) to raise the hot-end's height near that tower, and turn the screw to the left to lower it. Right to raise, left to lower. Note, this is adjusting where the home position is... Turning the screw doesn't raise and lower the actual hot-end, it raises and lowers where home (G28) is. To see the effect of the tweak you just made, you need to home the machine and check it again.
Delta Radius adjustment (aka Smooth Rod Offset, or PRINTER_RADIUS in the Repetier firmware)
This adjustment flattens the movement of your machine. In other words, if you notice that your nozzle moves in a curved pattern and is higher in the center of the heated-bed than it is around the perimeter (or vice versa), this is the adjustment to tweak. Please note that this is different than leveling (even though the forum post calls it this sometimes). Consult this thread from gabrielk ( http://forum.seemecnc.com/viewtopic.php ... 74&start=0 ) and revisit this site (http://minow.blogspot.com.au/ ) for the details. In short, if your nozzle is higher in the center you need to lower this value, and if your nozzle is lower in the center you need to raise this value.
Double-check all geometry
After all of your geometry is set, I'd suggest writing a script (like the one I posted later in this thread) to check for z-height, leveling, and radius with a piece of paper. I do this after moving my machine and any time I've swapped build plates just to be sure. This is a good opportunity to learn a little bit about GCode (I would suggest trying to write your own script as a learning experience). At its most simple, there are commands like G28 that work by themselves without having to type in anything else. Then there are custom commands where you can enter custom values to tell the machine what you want it to do. M303 S200 tells the machine to (M303) perform a PID autotune at (S200) 200 degrees. G4 S3 tells the machine to (G4) pause for (S3) 3 seconds. G1 X110 Y-64 Z0 F5000 tells the machine (G1) that it's moving (X110 Y-64 Z0) to this Cartesian point in 3D space (F5000) at this speed. After you learn a few of the commands, you'll be on your way in short order. Break it up into small pieces, and GCode is easy to learn.
Squirt some plastic
Since you already have the bed and hot-end heated up from setting the Z height, home the axes and let’s start extruding a string of plastic. Use the manual controls in Repetier and see if you can feed any plastic. Start out with 10mm or so, just to make sure that it’s going the right direction. If it is, have it squirt out about 100mm (don’t worry, your filament will last a good long time, this won’t diminish your supply). While it’s feeding the filament through the Bowden tube and towards the hot-end, you need to check your tension. The rollers should be tightened until you can’t stop the filament anymore by pinching it. I would read Rich's blog about calibrating your extruder's steps per mm at this point ( http://richrap.blogspot.com/2012/01/sli ... s-and.html ) it is important to calibrate to the filament that you're using so that Slic3r knows how much material it's feeding into your print. In short, you need to measure the diameter of the filament very precisely, and then measure the amount of it that is being fed through the extruder.
First Print!
Go to Thingiverse and download the .5mm thin wall test cube from this set (http://www.thingiverse.com/thing:5573 ). You’ll want to slice it with retraction turned off and run the program at a low speed. Polygonhell has a great thread about this (http://forum.seemecnc.com/viewtopic.php?f=54&t=1163 ). After the print, you need to measure the walls of the cube with calipers or, better yet, a micrometer. If you’re using a .5mm nozzle, you want the wall to measure .55mm. You need to adjust your extrusion multiplier in Slic3r to adjust the wall thickness. Do this over and over again until you’re right on .55mm. I bought this micrometer to do the measuring (http://www.harborfreight.com/digital-mi ... 68305.html ) and have been very happy with it. One other note, If your wall thicknesses varies from one side to the next, you may need to adjust the flatness of the nozzle. Brian from TrickLaser describes a great way to do this here (http://forum.seemecnc.com/viewtopic.php ... 740#p10740 ).
Delta Arm Blues
If you’re having trouble with your prints, there is a decent chance that you’ve got slop in the delta arms or that you’ve got a tight spot where it’s binding. Mhackney does a very good job of helping you identify and correct these problems in this thread (http://forum.seemecnc.com/viewtopic.php?f=54&t=1434 ). There is an stl file for a print that helps test your arms somewhere in the thread. It is a great idea to try this and see if you have any problems to address before continuing. If you have a big problem, check out the seemecnc.com website. You can get all 6 arms for less than $10. You could also upgrade to the carbon-fiber arms that are available from TrickLaser. Lots of folks have said great things about that upgrade.
Temperature Calibration
Use a contact style temperature sensor, usually a thermocouple with a multi-meter, and lightly pinch it between the hot-end body and the brass nozzle (yes, you have to unscrew it a little to do this). Then heat up the hot-end and compare the temperature on your Rostock against the temperature on your meter. Figure out the ratio that it’s off by and modify the “GENERIC THERM1 BETA” value in your firmware. Lather, rinse, repeat. Another note, several people have reported that you’ll get a more accurate temperature reading if you can actually place the thermocouple inside of the hot-end. You can read more about that here (http://forum.seemecnc.com/viewtopic.php?f=37&t=1666 ). There’s also some good conversation there about how to test the accuracy of your thermocouple. You can do the same thing with the heated bed, but I would use a non-contact thermometer for this. One of those laser thermometers (that don’t actually measure with a laser) should do the trick there. I don’t know off the top of my head what that value is called verbatim in the firmware.
PID settings
Every electrical component is slightly different, and the heaters in your bed and hot-end are no different. To fine tune their on/off duty cycles, you should adjust the PID settings. PID stands for… ppfff I dunno. The manual outlines this process (http://forum.seemecnc.com/viewtopic.php?f=39&t=987 ). Run “M303 S230” (for ABS) and average the P, I, and D values that are reported back. Do this starting from a cold machine. For the heated-bed, the command should be “M303 P1 S80” according to this thread (http://forum.seemecnc.com/viewtopic.php ... t=70#p5121 ). Note, I changed both of these commands' S### values to reflect the actual temps I've been using for ABS, feel free to tweak. If you use the M303 P1 S100 command for the hotbed, it is possible that your machine can't reach the 100 degrees in 10 minutes and it will time out the process. This is another reason that I changed the value to S80 for the bed.
That’s as far as I’ve come with my machine. I intend to update this post for bridging and some of the other things you need to adjust for, but I just haven’t done it yet. Please add any tips and next steps that you would like to share. Thanks.
After you’ve built your machine, there are a few things that you need to do before embarking on your first print.
End-stops and Motor Direction:
The first thing is to check that your end-stops are functioning and that your stepper motors are moving the right direction. Gene’s assembly manual does a great job of outlining this process (http://forum.seemecnc.com/viewtopic.php?f=39&t=987 ). In short, use the “M119” command to test all 3 snap-switches. Both that they function, and that the right one is plugged into the right axis. Then you’ll send the “G28” command, with your hand on the power switch, to see if the motors move up or not. If they move down, cut the power and reverse the motor direction. I suggest doing this with the wiring so that you don’t have to change it in your firmware each time you load a new version in the future.
Set Z Height
Next, you need to set your height. This is also outlined well in Gene’s manual (http://forum.seemecnc.com/viewtopic.php?f=39&t=987 ). Heat the bed and hot-end, home the axes, and jog the hot-end down (careful at the bottom) until you are about the thickness of a piece of paper from the heated bed. Then you can take that Z value (in the manual control window of Repetier) and add or subtract it from the X, Y, and Z "MAX LENGTH" numbers in the EEPROM and Repetier settings. There is also a good guide for mechanical setup that can be found here (http://minow.blogspot.com.au/ ). Note, that your z-height will change when you level the bed and also when you adjust the delta radius. You'll have to dance between all 3 of these settings multiple times to get everything spot on because each one has some effect on the other two.
Bed leveling
Now that you're in the ballpark on z-height, it's time to make sure that everything is level. Heat everything and jog your hot-end down until you're about 1 cm away from the build plate. Then manually move X and Y to position the hot-end near each tower. You want all 3 to be at the exact same height, and you want those "outisde heights" to match the same height in the center of the build plate (see delta radius below). If a tower is higher or lower than the others, you need to adjust your endstop screws. Turn the screw to the right (clockwise, tightey, anticyclonic) to raise the hot-end's height near that tower, and turn the screw to the left to lower it. Right to raise, left to lower. Note, this is adjusting where the home position is... Turning the screw doesn't raise and lower the actual hot-end, it raises and lowers where home (G28) is. To see the effect of the tweak you just made, you need to home the machine and check it again.
Delta Radius adjustment (aka Smooth Rod Offset, or PRINTER_RADIUS in the Repetier firmware)
This adjustment flattens the movement of your machine. In other words, if you notice that your nozzle moves in a curved pattern and is higher in the center of the heated-bed than it is around the perimeter (or vice versa), this is the adjustment to tweak. Please note that this is different than leveling (even though the forum post calls it this sometimes). Consult this thread from gabrielk ( http://forum.seemecnc.com/viewtopic.php ... 74&start=0 ) and revisit this site (http://minow.blogspot.com.au/ ) for the details. In short, if your nozzle is higher in the center you need to lower this value, and if your nozzle is lower in the center you need to raise this value.
Double-check all geometry
After all of your geometry is set, I'd suggest writing a script (like the one I posted later in this thread) to check for z-height, leveling, and radius with a piece of paper. I do this after moving my machine and any time I've swapped build plates just to be sure. This is a good opportunity to learn a little bit about GCode (I would suggest trying to write your own script as a learning experience). At its most simple, there are commands like G28 that work by themselves without having to type in anything else. Then there are custom commands where you can enter custom values to tell the machine what you want it to do. M303 S200 tells the machine to (M303) perform a PID autotune at (S200) 200 degrees. G4 S3 tells the machine to (G4) pause for (S3) 3 seconds. G1 X110 Y-64 Z0 F5000 tells the machine (G1) that it's moving (X110 Y-64 Z0) to this Cartesian point in 3D space (F5000) at this speed. After you learn a few of the commands, you'll be on your way in short order. Break it up into small pieces, and GCode is easy to learn.
Squirt some plastic
Since you already have the bed and hot-end heated up from setting the Z height, home the axes and let’s start extruding a string of plastic. Use the manual controls in Repetier and see if you can feed any plastic. Start out with 10mm or so, just to make sure that it’s going the right direction. If it is, have it squirt out about 100mm (don’t worry, your filament will last a good long time, this won’t diminish your supply). While it’s feeding the filament through the Bowden tube and towards the hot-end, you need to check your tension. The rollers should be tightened until you can’t stop the filament anymore by pinching it. I would read Rich's blog about calibrating your extruder's steps per mm at this point ( http://richrap.blogspot.com/2012/01/sli ... s-and.html ) it is important to calibrate to the filament that you're using so that Slic3r knows how much material it's feeding into your print. In short, you need to measure the diameter of the filament very precisely, and then measure the amount of it that is being fed through the extruder.
First Print!
Go to Thingiverse and download the .5mm thin wall test cube from this set (http://www.thingiverse.com/thing:5573 ). You’ll want to slice it with retraction turned off and run the program at a low speed. Polygonhell has a great thread about this (http://forum.seemecnc.com/viewtopic.php?f=54&t=1163 ). After the print, you need to measure the walls of the cube with calipers or, better yet, a micrometer. If you’re using a .5mm nozzle, you want the wall to measure .55mm. You need to adjust your extrusion multiplier in Slic3r to adjust the wall thickness. Do this over and over again until you’re right on .55mm. I bought this micrometer to do the measuring (http://www.harborfreight.com/digital-mi ... 68305.html ) and have been very happy with it. One other note, If your wall thicknesses varies from one side to the next, you may need to adjust the flatness of the nozzle. Brian from TrickLaser describes a great way to do this here (http://forum.seemecnc.com/viewtopic.php ... 740#p10740 ).
Delta Arm Blues
If you’re having trouble with your prints, there is a decent chance that you’ve got slop in the delta arms or that you’ve got a tight spot where it’s binding. Mhackney does a very good job of helping you identify and correct these problems in this thread (http://forum.seemecnc.com/viewtopic.php?f=54&t=1434 ). There is an stl file for a print that helps test your arms somewhere in the thread. It is a great idea to try this and see if you have any problems to address before continuing. If you have a big problem, check out the seemecnc.com website. You can get all 6 arms for less than $10. You could also upgrade to the carbon-fiber arms that are available from TrickLaser. Lots of folks have said great things about that upgrade.
Temperature Calibration
Use a contact style temperature sensor, usually a thermocouple with a multi-meter, and lightly pinch it between the hot-end body and the brass nozzle (yes, you have to unscrew it a little to do this). Then heat up the hot-end and compare the temperature on your Rostock against the temperature on your meter. Figure out the ratio that it’s off by and modify the “GENERIC THERM1 BETA” value in your firmware. Lather, rinse, repeat. Another note, several people have reported that you’ll get a more accurate temperature reading if you can actually place the thermocouple inside of the hot-end. You can read more about that here (http://forum.seemecnc.com/viewtopic.php?f=37&t=1666 ). There’s also some good conversation there about how to test the accuracy of your thermocouple. You can do the same thing with the heated bed, but I would use a non-contact thermometer for this. One of those laser thermometers (that don’t actually measure with a laser) should do the trick there. I don’t know off the top of my head what that value is called verbatim in the firmware.
PID settings
Every electrical component is slightly different, and the heaters in your bed and hot-end are no different. To fine tune their on/off duty cycles, you should adjust the PID settings. PID stands for… ppfff I dunno. The manual outlines this process (http://forum.seemecnc.com/viewtopic.php?f=39&t=987 ). Run “M303 S230” (for ABS) and average the P, I, and D values that are reported back. Do this starting from a cold machine. For the heated-bed, the command should be “M303 P1 S80” according to this thread (http://forum.seemecnc.com/viewtopic.php ... t=70#p5121 ). Note, I changed both of these commands' S### values to reflect the actual temps I've been using for ABS, feel free to tweak. If you use the M303 P1 S100 command for the hotbed, it is possible that your machine can't reach the 100 degrees in 10 minutes and it will time out the process. This is another reason that I changed the value to S80 for the bed.
That’s as far as I’ve come with my machine. I intend to update this post for bridging and some of the other things you need to adjust for, but I just haven’t done it yet. Please add any tips and next steps that you would like to share. Thanks.