The image is kind of fuzzy, but I'm happy to have a completely wobble-free print, or at least as much as can possibly be achieved on this class printer!
To get it, I set a custom compensation curve which I can now quickly measure and enter with the aid of some customized tools and firmware. Personally, I think it's a lot easier to do than using trial and error, especially since one has to recalibrate every time the z stop screw is changed. It should also give better results, since it's not limited to a sine curve.
TOOLS:
I created a rocking laser pointer mount that is designed to rest on the bed with one end hooked beneath the forward x-axis rod. By shining the laser on a far wall, the bed movement can be greatly amplified and measured with a ruler.
FIRMWARE:
I modified RinceWind's wobble code to add two small improvements. First, I added an "L" parameter that can be used much like the "H" parameter when setting a custom compensation curve, except that the values entered can be in any units or scale (such as dimensions amplified with the laser rocker). The changes automatically calculate the correct scaling factor so one can skip the math to convert laser distance measurements to bed heights. Next, I added a cheapie graph to the M96 command so one can picture the compensation curve after the values are entered to spot any typos. RinceWind, what do you think?
PROCEDURE:
1) install the marlin firmware with the modded wobble files
2) print the laser rocker, making any modifications necessary to fit your laser pointer.
3) Home the print head and fit the rocker on the bed with a laser pointer aimed at a sheet of paper taped to a wall about 10-20 ft away.
3) Send the following codes to home the cursor and clear any previous compensation, and move down one full rotation of the z-axis bar:
M97 A0
G28
G1 Z1.411
4) To avoid any backlash, we're starting measurements from one revolution away from home instead of at zero.. First undo any backlash by manually stepping the bed up (head down) a few .1mm steps and then back down (head up) the same number of steps.
5) Mark the first laser point, then make an additional 14 marks, continuing to move the bed down (head up) .1mm between each mark.
6) Measure the distance of each of the 14 marks from the initial point.
7) Use a text editor to enter the 14 numbers into the indicated spaces in the calibrate_antiwobble.gcode file
8) To send the compensation values to the printer, just load the gcode file and select "print"
That's it. Done. No iteration necessary; just send the calibration gcode file to the printer at the start of each session, or include it in the custom start gcode used by your slicer. If recalibration is ever necessary in the future (if printer is jostled or the stop screw changed), restart at step 3.
Hope this is useful.
Post's attachmentscalibrate_antiwobble.gcode 416 b, 11 downloads since 2013-02-18
CIMG1012.jpg
CIMG1012.jpg 1.14 mb, file has never been downloaded.
CIMG1014.jpg 531.71 kb, file has never been downloaded.
SDLaserLevel.stl 62.24 kb, 7 downloads since 2013-02-18
ZWobble.zip 6.48 kb, 11 downloads since 2013-02-18
You don't have the permssions to download the attachments of this post.