Re: Delta Automatic Calibration Tool - For Repetier Firmware
Posted: Mon Aug 17, 2015 11:46 pm
TLDR: I have figured out a possible procedure to correct for any change this program creates in the XY dimension. I have plotted an excessive amount of graphs in excel with 6+ data points per (checking for linearity or a curve in the graph).
After determining what my printer radius, effector offset, carriage offset was to find what the theoretical delta radius is, I have checked the XY scaling for each tower (each reacting equivalently to the change) with each change I make to the EEProm in the calculation algorithm in the program. Finding the scaling after each test, I have determined that it IS possible to keep the XY scaling the same as it was BEFORE the calibration. This will NOT correct your XY scaling, this will ONLY keep it consistent. My XY scaling was exactly as it should have been, I moved to 130.14mm from the center of the plate, and I measured the distance to be in the range of 130.1 to 130.2mm for each tower. As it stands, I need to find an accurate way to measure the offset in the XY dimension to get accurate results when offsetting each towers Delta Radii to correct for this offset. I am currently putting graphite on the tip of the nozzle and probing the z onto a piece of paper. It gives a perfect ring, however, it is not precise enough for my liking. The only issue I may see with adding the correction for the XY dimension will be the time factor. It will require more iterations, as the printers bed will be calibrated messing up the XY scaling to a lesser extent, then the XY will be calibrated - messing up the bed calibration to a lesser extent. Theoretically, this is still possible, it will just require more iterations and/or changes to the calculation algorithm. I am predicting that it may take 15+ iterations to correctly scale the XY dimensions AND level the bed. So, most likely the program will get an expert calibration button and a lot more control over calculation variables - more than 20... If these variables are needed to be changed, the user will have to manually compute them, as there are no XY probes to measure against towers (yet).
Of course this testing was done instead of getting the current version to a stabile state, sorry... Which is what I am going to work on now. And I will not implement XY correction in the algorithm yet, this will firstly be implemented in the HTML version of the program for my sanity. Otherwise testing may take weeks.
One thing I will mention; if your printers towers are not square, the XY dimension correction will be pointless. As it will only be able to correct the XY scaling at the single layer of the plate, everything after will slowly change. This happens due to the actual delta radius being manipulated by the towers angle. For instance, if the angle against the bed to the tower is 89.75 degrees, then your Delta Radius will shrink by almost 3mm ((673.1*sin(0.25)/sin(89.75) = 2.94mm). This doesn't just affect the XY scaling however, it will also affect the scaling in the Z dimension. As the printer approaches higher prints, it will exponentially shrink/grow in certain areas of the build-plate. This of course may not be a significant change over the length of a 250mm high print. But, for instance, if a single tower is angled inward with a difference of 3mm from the top to the bottom of the printer, your object will be up to 1.06mm (|sqrt(269^2-126.85^2)- sqrt(269^2-124.85^2)| = 1.059mm) taller in some parts of the print. This may cause delaminating or inversely can cause your extruder to slip. I am sure this sounds absurd, but a square frame is very important for tall prints.
If anyone is confused as to how they initially calibrate their Delta Radius, then I will go into more details as to how I corrected mine.
Anyway, enough rambling, I am going to test the current program. Tomorrow I will work on the next update, and begin implementing the XY scaling correction into the HTML version.
After determining what my printer radius, effector offset, carriage offset was to find what the theoretical delta radius is, I have checked the XY scaling for each tower (each reacting equivalently to the change) with each change I make to the EEProm in the calculation algorithm in the program. Finding the scaling after each test, I have determined that it IS possible to keep the XY scaling the same as it was BEFORE the calibration. This will NOT correct your XY scaling, this will ONLY keep it consistent. My XY scaling was exactly as it should have been, I moved to 130.14mm from the center of the plate, and I measured the distance to be in the range of 130.1 to 130.2mm for each tower. As it stands, I need to find an accurate way to measure the offset in the XY dimension to get accurate results when offsetting each towers Delta Radii to correct for this offset. I am currently putting graphite on the tip of the nozzle and probing the z onto a piece of paper. It gives a perfect ring, however, it is not precise enough for my liking. The only issue I may see with adding the correction for the XY dimension will be the time factor. It will require more iterations, as the printers bed will be calibrated messing up the XY scaling to a lesser extent, then the XY will be calibrated - messing up the bed calibration to a lesser extent. Theoretically, this is still possible, it will just require more iterations and/or changes to the calculation algorithm. I am predicting that it may take 15+ iterations to correctly scale the XY dimensions AND level the bed. So, most likely the program will get an expert calibration button and a lot more control over calculation variables - more than 20... If these variables are needed to be changed, the user will have to manually compute them, as there are no XY probes to measure against towers (yet).
Of course this testing was done instead of getting the current version to a stabile state, sorry... Which is what I am going to work on now. And I will not implement XY correction in the algorithm yet, this will firstly be implemented in the HTML version of the program for my sanity. Otherwise testing may take weeks.
One thing I will mention; if your printers towers are not square, the XY dimension correction will be pointless. As it will only be able to correct the XY scaling at the single layer of the plate, everything after will slowly change. This happens due to the actual delta radius being manipulated by the towers angle. For instance, if the angle against the bed to the tower is 89.75 degrees, then your Delta Radius will shrink by almost 3mm ((673.1*sin(0.25)/sin(89.75) = 2.94mm). This doesn't just affect the XY scaling however, it will also affect the scaling in the Z dimension. As the printer approaches higher prints, it will exponentially shrink/grow in certain areas of the build-plate. This of course may not be a significant change over the length of a 250mm high print. But, for instance, if a single tower is angled inward with a difference of 3mm from the top to the bottom of the printer, your object will be up to 1.06mm (|sqrt(269^2-126.85^2)- sqrt(269^2-124.85^2)| = 1.059mm) taller in some parts of the print. This may cause delaminating or inversely can cause your extruder to slip. I am sure this sounds absurd, but a square frame is very important for tall prints.
If anyone is confused as to how they initially calibrate their Delta Radius, then I will go into more details as to how I corrected mine.
Anyway, enough rambling, I am going to test the current program. Tomorrow I will work on the next update, and begin implementing the XY scaling correction into the HTML version.