Options for getting a really flat build surface I've been fighting on and off with issues with my build plate seemingly not being perfectly flat. I've ordered a machined straight-edge and some new feeler gauges to diagnose the problem (and test any potential replacement) better, but I'd like to get an idea of what options are available for obtaining a flatter build surface. I'm not really interested in approaches like BLTouch since I want accurate flat bottoms on my prints, not just consistent adhesion.

My printer is an Ender 3 and I believe my problem is a mix of wear to the Buildtak clone surface and warping in its backing plate. Mine is the newer model with removable buildplate and clips, and the backing is reportedly a "glass fiber" (FR-4) material that's hard to find genuine replacements for.

Glass seems like an obvious option - I might even put a buildtak clone on one side of it and use that most of the time - but I'm somewhat concerned about weight and whether having glass moved by the Y axis is going to limit acceleration. I've had (seemingly unrelated) problems on and off with layer shifts, which seem to be mostly Marlin's fault not mechanical, but I'm scared to introduce another factor that might encourage them.

Are there other non-glass options I should consider that would provide a rigid, flat backing? I'm very happy with the buildtak clones and their adhesion properties, so my leaning it to look for something that makes a good backing for them rather than a material that's intended to be built directly upon.

Measurement results: Using a machined straightedge and feeler gauges, the surface seems to be at least 0.10 mm but less than 0.15 mm lower within a couple inches of the bed center. This is plausibly just wear on the buildtak-clone surface, so I think I'll try to see if I can get by with just replacing that for now. But I'm still interested in the general topic of the question.
It all depends on what you mean by "flat".

Is the problem that the build plate isn't flat (perfectly planar), or is the problem that the distance to the build plate varies based on X and Y coordinates?  They are very different problems.

"Bed Leveling" is the process of allowing the firmware to know the Z position of the build plate for every (X,Y) location.  Some printers support measuring a mesh of points and interpolating the mesh.  This compensates quite well both for warped build plate, and for bad positioning mechanisms which add some position dependent Z-axis offset.

If you really need a flat, planar, build surface, perhaps because you are printing mirrors or precision parts, glass should work well.  It is still, and will not brook any inelastic bending.  It will shatter before it takes on a curve.  If possible, you could consider a Pyrex® bed, since it has a lower coefficient of thermal expansion and won't warp as much with a temperature gradient through the glass. 

I tried to find a spec on how flat your glass might be.  I'm assuming it is "float glass", which is made by floating molten glass on a pool of molten tin.  I didn't find a spec, but I found this answer to a similar question:


  I doubt you will find such a spec- float glass isn't manufactured for
  that purpose and it isn't really in the manufacturer's interests to
  maintain such a spec. that said, the stuff is surprisingly flat, just
  as a side effect of how it's made. you don't say what your needs are
  other than near optical tolerances . might just be good enough for
  you. consider though that granite surface plates of certified flatness
  can be had fairly inexpensively these days.


So, it is clearly flat.  I can't tell you how flat.  And the flatness depends on not applying stress to the glass that causes it to bed.  Thicker is stiffer (probably at the third power of the thickness ratio).