I posted this in another topic but wanted to capture here in my topic too.
Z, Max_LENGTH and Bed Level Calibration
I'm using Repetier firmware and host (on a Mac). I'm assuming you have a heated bed - ignore the pre-heating step if not!
1) Install your build surface (glass plate and/or blue tape, etc) and make sure the heated bed is up to temperature. I print ABS at 100°C bed, so that's the temp I used. The Onyx warps as it heats up so unless you have a flat surface on top of it, you will not have a planar surface to calibrate against. If you are printing on tape directly on the Onyx, do the following steps cold and deal with the warping issue depending on the location of your print, etc.
2) Calibrate Z at 0,0,0 in firmware. These are listed as the following in the firmware:
#define X_MAX_LENGTH 369.0
#define Y_MAX_LENGTH 369.0
#define Z_MAX_LENGTH 369.0
Here's how I did it: I set these to 375 so they are longer than my actual travel. Then I homed and brought the nozzle down to Z=20mm (G0 Z20 F2000). From there I used the buttons in Repetier host to slowly lower the nozzle (decrease Z) to the build surface. Start with the 10mm and then 1mm and finally .1mm for fine adjustment. I used a piece of cigarette paper (an old machinist's trick, it's about .001" thick) between the bed and nozzle (make sure your nozzle is clean!) to test the "fit" you can use a .001" (or metric equivalent) feeler gauge too. You want to bring the nozzle down until it just "snags" the paper or gauge. At this point, read the Z height on the Z axis display in Repetier Host. Subtract this number from 375mm to get your actual max lengths. For me this measurement was exactly 6.0mm, so 375.0mm - 6.0mm = 369.0mm. If you are using EEPROM settings, you can simply change this in the EEPROM without needing to recompile and upload your firmware. That makes it a lot faster to do and test. Check this at least 3 times to make sure it is reproducible using this process:
Home All - move to G0 Z10 - use buttons to lower 1mm nine times - place gauge - lower by .1mm 10 times - nozzle should just graze gauge
3) With your Z = 0 set you can adjust the planarity of the bed by adjusting the stops at the homing switches at the top of the towers. This is done one tower at a time with the nozzle positioned as close to the tower as reasonable. The process is described in the manual but use the "true" circumference points. These are:
X: G0 X-77.94 Y-45 F2000
Y: G0 X77.94 Y-45 F2000
Z: G0 X0 Y90 F2000
(note F2000 is feed rate to speed things up) These locations came from
http://minow.blogspot.com (a MUST read for calibrating!)
At each one of these locations, you move down (using the Z buttons) until you get to Z=0. If you are lucky, the gauge will just graze the nozzle and you are done at that tower. If not, the nozzle will either be above the bed (case A) or the display will show that Z has not been reached (case B).
Case A Measure the gap and set the stop screw at the top of the tower (see a few lines below).
Case B Write down the extra distance the Z could go and set the stop screw as below.
Setting the stop screw: These screws are 6-32. That means they will advance .03125" per revolution. Converted to metric that is 0.79mm per revolution.
Case A - let's say that you measured a gap of .4mm. This means that the firmware thinks the tower length is .4mm shorter than it actually is! So, you need to "raise" the stop screw (lefty-loosey or counter clockwise looking from the top) .4mm - which is about 1/2 of a turn.
Case B - let's say that Repetier host shows (Z axis display) that you still have .2mm to go before reaching Z=0. This means the firmware thinks the tower length is .2mm longer than it actually is, so you need to "lower" the stop screw .2mm or about 1/8 of a turn, in this case righty-thighty or screw clockwise from the top.
That's it! Now you should go back and recheck everything 1 or 2 times to be sure.
Note that there is an advanced planarity adjustment described in the link above. I have not done this yet since my glass plate broke and I'm waiting for the replacement. If your machine is really "off" the re-check step above will show that Z=0 at X=Y=0 will not be correct. I'd adjust one more time through the entire process and if you still have this problem, then do the planarity adjustment. Hopefully I'll be there by Tuesday or Wednesday when my plate arrives!
There is an "auto calibrate" mode/command in the LCD controller firmware in Repetier. I have not had a chance to investigate it. In theory, all of the above could be accomplished in soft settings with the right math. It probably does not hurt to try to calibrate mechanically first though!
DISCLAIMER: there is some probability that there are mistakes or better ways to do the above. This is my first delta printer and I'm only a few weeks in and don't have a lot of experience yet!
NOTE/WARNING - since posting this on the original topic I tried playing around with the auto calibrate in the firmware exposed in the LCD Controller. Not intuitive and I hosed my configuration! I ultimately had to reupload the firmware with EEPROM disabled to get back to a good state. All sorts of weird things were happening!