After upgrading my CR-10S with EZABL and UFW U1.R2.1d , I decided to print a XYZ 20mm calibration cube. These are my results, measured with a digital caliper:
X: 20.1mm (0.005% error)
Y: 20.05mm (0.0025% error)
Z: 18.82mm (-0.059%)
The Z height is visually compressed and I was trying to figure it out by running out some g codes. I also could notice that the bottom of the cube is slightly wider than the outer X and Y walls (looks like a tiny brim).
Firstly I ran G29 to generate the bed leveling mesh.
Then I placed a sheet of paper on the bed and sent a G1 Z0 to make sure the nozzle was in the correct position. I could feel the nozzle grabbing the paper but I was still able to pull it off (just like I was told in directions video to set up the EZABL sensor).
Using the caliper, I measure the height of the top face of hotend fan to define my starting point. I then used G1 Z20 to move it 20mm up and I measured it again. My Z axis is off by -0.5mm (ie: 19.53mm instead of 20mm). I tried with Z10 and Z50 and the Z height error seems very consistent.
Any ideas how to fix my printing problem?
P.S When I first got the printer with stock firmware, I printed the cat g code that comes with it and it came out perfectly.