WHAT THIS IS FOR
The point of these objects is to help you to fine-tune the calibration on your delta printer to produce dimensionally-accurate parts. (Your printer is probably already close - this will help you get it all the way there.) Before doing this, you'll need to have your printer calibrated with, at a minimum, the GeneB 3-point method described in the Rostock MAX assembly manual. Any version will do. You should also have your extruder steps/mm calibrated - an imperfect process, but this process will compensate for any error in steps/mm.
Dimensional accuracy is marginally important when printing statues and other knick-knacks, but if you want to print something that has to fit with something else, dimensional accuracy matters. It can also help if you have problems with larger prints failing after they've been running for awhile, particularly if they're failing because the hot end is knocking them around (scaling is too small), or you're getting delamination (scaling is too large). If you want to print parts that will be used to form the structural components of a 3D printer or some other machine, this is VERY, VERY important!
HOW IT WORKS
On a delta robot, the scaling is directly influenced by the arm length setting in the firmware. If your parts are coming out too small, you need to tell the firmware that the arms are slightly shorter, so that it'll know that it has to push them a little bit farther to get the correct result. Likewise, if your parts are coming out too large, you need to tell the firmware that the arms are slightly longer, so that it'll know not to push them quite as far.
You also have to calibrate the filament extrusion multiplier. If it's off, the part will be slightly "fatter" or "thinner" than it's supposed to be. That will be the first step we do.
If your printer has auto-calibration firmware that can adjust the delta geometry variables - delta radius, tower radius and angle, etc. - it may have a feature that allows you to adjust the arm length automatically. At this time, I recommend against letting the firmware adjust the arm length. Let it adjust everything else, but not that.
If you have a Smoothieboard or compatible controller, you can use my auto-calibration Smoothie fork: http://forum.seemecnc.com/viewtopic.php?f=82&t=7640
Duet users can use dc42's fork of RepRapFirmware: https://github.com/dc42/RepRapFirmware
Repetier and Marlin have their own automatic calibration systems, but I haven't had good luck with either of them. I don't recommend anyone in the market to buy a new controller get anything Arduino-based, as they are not future-proof, and struggle just to keep up with the calculations required by a delta robot.
Please note that using the "bed leveling" feature of firmware usually means that it's doing a height adjustment based on probing the bed. That's not the same as calibrating the printer, and is not particularly useful for anything we do here. You can leave it turned on if you need it, but when the instructions say to re-calibrate your printer, that doesn't refer to automatic bed leveling by itself.
DESIRED END RESULT
Two printed calibration boxes, one 50mm wide and the other 100mm wide, or as close to those numbers as possible. That will tell you that your printer is ready to produce some nice, dimensionally accurate prints.
EXTRA TOOLS NEEDED
STEP 0: Carefully Measure the Filament Diameter
Use natural (uncolored) filament if you can. Surface quality tends to be highest. Colorants - especially ones that make the filament translucent - behave like contaminants, reducing the surface quality. Black filament is notorious for being stuffed with low-quality fillers, so avoid that if you can. Do NOT use specialty filaments such as carbon fiber, wood, metal fill, etc.
Use the Outside Micrometer, not the calipers, to measure your filament in ten places, each at least a foot apart. Enter the measurements into a spreadsheet, and then take the average. Put that into your slicer for the filament diameter.
The filament will want to curl because it cooled on a spool. If you pass the filament between the micrometer's jaws at an angle that directs the curvature towards either jaw, it may throw off the measurement, causing the filament to read thicker than it really is. Instead, hold the filament so that the curvature is at a 90 degree angle relative to the jaws.
STEP 1: Extrusion Multiplier
Slice Step 1 - Single-Wall Box.stl with the following settings:
- Layer height: 0.1 - 0.2mm is fine, the shorter the better. Taller layers will be sloppier.
- Extrusion width: Your nozzle width plus a little extra (e.g., 0.4mm nozzle -> 0.45mm extrusion width)
- Extrusion multiplier: Start with a value between 0.9 and 1.0.
- Loops: 1
- Skin thickness: 0
- Infill: None
- Speed: 20mm/sec outer loop, 30-40 for everything else (this is not the time to be a speed demon)
Your slicer (I recommend KISSlicer) should produce a square, only one loop thick. It should have no top or bottom surface, and there should be no infill. Print this.
After CAREFULLY separating the square from the print surface, use the Outside Micrometer to measure the thickness of the top few loops. If you measure the first few bottom layers, it'll probably make the reading artificially high, because the first few layers are usually a little bit squished. Focusing on the top few loops is better.
Avoid the corners! The plastic is likely to be a little bit thicker there. I usually measure 1/3 of the way between the two corners, and then 2/3 of the way. That should give you eight measurements for the single-wall box, which you can then average. You should expect the numbers to be a little different in each place. Multi-out hot ends (E3D Chimera and Kraken) may distort the filament more than single-out hot ends (E3D Cyclops and v6, Diamond, Prometheus, regular J-head, etc) because every nozzle is offset from the center of the hot end. That offset can throw the calibration off a little bit.
We're using the Outside Micrometer for this step because its ratcheting mechanism ensures that you're always putting exactly the same amount of force (which is very light) on the filament. Using the regular calipers is less precise.
Measure the box in at least two spots on each side. Some will read higher, others lower. Avoid measuring close to the corners, where the filament will be slightly thicker. You want the average of all the points you measure to be the extrusion width you specified. If it's too thick, reduce the extrusion multiplier. You shouldn't need to go below 0.9. If it's too thin, increase the extrusion multiplier. I usually wind up with values around 0.9 to 0.93 with PLA, PETG and ABS. Two or three iterations of this print should get you dialed in.
Once this step is complete, you're done with the Outside Micrometer and can set it aside.
STEP 2: Small Box
Slice Step 2 - 50mm Box.stl with the following settings:
- Loops: 3
- Skin thickness: 0.6 or more (not a big deal)
- Infill: 15-20% is fine (not a big deal)
- Speed: 20-30mm/sec outer loop, 30-50 for everything else
Use the Digital Calipers to measure the width of the 50mm box in several locations. Measure the box across the east-west and north-south directions. (We don't care how tall it is right now.) As stated above, avoid measuring right next to the corners, as well as the bottom 1mm or so, where the plastic may be a little thicker. You should get a number close to 50mm.
STEP 3: Big Box
Slice Step3-_100mm_Box.stl with the same settings as above.
Print the box and measure it in several places, avoiding the corners and bottom layers. It should come out to about 100mm.
STEP 4: Figure out where the scaling error is
Now, we'll figure out whether both boxes' scaling errors are about the same, or whether the scaling error is greater for the 100mm box than it is for the 50mm one.
IMPORTANT: NEVER adjust the arm length and extrusion multiplier at the same time! Do only one at a time. If you try to do them both simultaneously, you won't know what is helping and what isn't. Engineers prefer to change as FEW variables as possible at once!
Scaling error = average measured width / what the width should be.
Scaling error same with both pieces: Arm length needs to be adjusted.
Scaling error changes between both pieces: Extrusion multiplier needs to be adjusted.
Example of the arm length needing to be adjusted:
50mm box: 49.9mm wide. 49.9/50 = 0.998.
100mm box: 99.8mm wide. 99.8/100 = 0.998.
In this case, the scaling error is identical. In other words, the scaling error changes proportionally with the size, and we see twice as much at 100mm as we do at 50mm. That's because the printer thinks the arms are longer than they really are, and it isn't pushing them far enough. (Conversely, if the boxes averaged 50.1 and 100.2mm, it would be because the printer thinks the arms are shorter than they really are, and is pushing them too far.) Jump to 5A.
Example of the extrusion multiplier needing to be adjusted:
50mm box: 49.9mm wide. 49.9/50 = 0.998.
100mm box: 99.9mm wide. 99.9/100 = 0.999.
In this case, the scaling error is different on the 100mm box than it is on the 50mm box. They are both too small by 0.1mm, suggesting that the arms are fine, but that the extrusion multiplier is too low. Jump to 5B.
STEP 5A: Adjusting the Arm Length
New arm length multiplier = average measured width / what the width should be
New arm length = Old arm length * New arm length multiplier
Arm length = 300 (plug in your own arm length, whatever it is)
49.9/50 = 0.998
New length = 300 * 0.998 = 299.4
After adjusting the arm length, you will need to re-calibrate the printer geometry, as by running GeneB's 3-point calibration, or using the auto-calibration feature in your firmware (assuming it has one).
STEP 5B: Adjusting the Extrusion Multiplier
If the boxes were too narrow, increase the extrusion multiplier by 0.005 to 0.01. If they were too wide, decrease the extrusion multiplier by 0.005 to 0.01.
Since the printer geometry settings haven't been touched, it's not necessary to re-calibrate the printer. You're only changing the extrusion multiplier in the slicer.
Re-do Step 2 (print the 50mm box). Check it in several places with your calipers. If your calibration piece doesn't come out close enough to perfect, you can re-start the process.
IMPORTANT: If you adjusted the extrusion multiplier, you will need to re-slice both boxes in Steps 2 and 3. However, if you leave that alone and only adjust the arm length, you don't have to re-slice them.
EVERY TIME YOU CHANGE FILAMENT
It's very important to re-calculate the filament diameter, and then to re-do Step 1, every time you start using a new spool. Even if it's the same exact color from the same exact manufacturer, chances are good that the diameter will be a little different.
Please leave a comment to let me know whether or not this calibration system works for you, and whether you have any comments about how to make it better!