For all who want level on glass

I find it OK. It’s all relative, the 123 blocks may be accurate but you put them on the Y axis frame which has an unknown relationship to the actual bed. Never actually tried putting them on the bed, just always followed @Brent113’s advice. Now I have a good probe and a flat bed I will have a go and measure rail pushed to the top, leveled with 123 blocks on the Y axis rail and levelled with 123 blocks on each side of the bed when the bed with the Y axis bed supports directly below the X axis.

While you’re doing tests, would you mind exploring the sensitivity of this? The reason I suggested the linear modules is because it’s invariant to downward pressure and Y positioning of the bed as well as any bed tilt front/back, resulting in repeatable positioning of the X module.

Could you try explore the following scenarios with the 123 blocks on the bed:

  • Light down pressure directly above bed supports, as well as heavy pressure to see if the bed mounts are sensitive to pressure
  • Light and heavy pressure a few inches away from the bed mounts and near the edge of the bed to get a feel for how much the bed defects.

I made some assumptions about these scenarios but never tested. If you’re taking measurements already would be nice to get some quantitative data.

I’ve actually wondered about using an ultra sensitive laser leveling tilt sensor on the modules to see how the Y rails are in relation to each other.

Best method would be to get 2 pressure displacement sensors, attach them both to each underside of the x axis, manually pull up the x axis all the way to the top of the z rails, make sure the sensors will touch the same spot on the y rails then with the machine on do a homing then manually bring the x axis down and see when each touch the y rails and see what the difference is. Could also do this for the bed itself to create a full map of the hills of the bed. Drawback? Displacement sensors aren’t cheap. A good one is between $500-$600 each sensor, you’d need two minimum. Laser displacement sensors run about the same as pressure sensors. It really comes down to preference.

I have done some testing and the results are interesting.

Process was power machine off, do what was being tested like push x axis to top as detailed in the results sheet. Power the machine back on, home and level using my auto leveling script. I then auto leveled again just to check consistency.

  1. Trying to level using 123 blocks from the bed must be done from exactly over the Y axis bed supports. When I tried it near the front of the bed it deviated considerably though looking at the numbers it actually made the bed more level in the Y direction but that was just chance.

  2. The worst result came from pushing the x axis all the way to the top of the Y rails. Which is a shame as thats the recommended process though any discrepancy should be comfortably handled by bed leveling for printing. Not so good on Laser but bell within CNC tolerance.

  3. Leveling on the Y rail or on the bed above the Y bed supports gives the best result.

  4. Removing the blocks before or after powering on doesn’t make any difference.

The numbers represent how high up the machine thinks the bed is as calculated from the Z home of Z:326.29. less how far down it moved before stopped by the bed probe (adjusted by fixed nozzle offset and 1mm).

What I dont understand is why it looks like the bed is higher or lower depending on which method used.

Happy to be told I have misinterpreted everything!

1 Like

It looks like you’re computing Max-Min across diagonals - it might be more accurate to compute only in the tilt around the Y axis:

I recomputed these numbers for Run 1 and Run 2 (average of each row’s tilt) and additionally I computed Run 1 to 2 repeatability as the difference of the average run’s Z height measurement.

For repeatability I’m not surprised the Z axis tops were the most repeatable. I’m quite surprised the front of the bed firm overall performed the best.

I would expect light pressure to be more repeatable than firm pressure, though the opposite is showing. I think this is indicating the internals of the rails cannot be trusted as a solid reference as they will move up and down slightly in the U groove bearings, resulting in slightly different Z heights unless it’s recalibrated after each time.

Ideally, you would not want to have to recalibrate every time you check tram, so the reference must be solid, like the Y rails. Personally I turn the power on before removing the blocks so it’s less likely to introduce a bump. And it seems here to be slightly more repeatable.

May come as a result of changing the tilt of the X axis, the left or right Z end stop will hit the top first. Hitting the endstop sets the Z to a “known height”, and a tilted X axis will take fewer steps down to reach the bed as a result.

I think this adequately supports using the Y rails as the reference. There seems to be too much variability between light and firm pressure for me to be comfortable explaining to someone how much pressure to apply. Removing the blocks after power on, has very good repeatability to 0.006mm, enough that calibrating each time is not necessary.

Ideally the carriage would be shimmed so that it’s parallel to the Y rails, and also levelled front to back - but if anyone is capable of doing that level of precision then they wouldn’t need instruction on tramming. (11.6 KB)

Thanks for sorting this out Brent, all makes sense. Also different end stops triggering could explain the distance difference.
The firm pressure on the front moved the bed considerably and I think it must have leveled it up. It’s not something I felt comfortable doing or will be doing again. I will be sticking to leveling using the Y rails as you originally suggested,
The variations to suggest to me that doing Z level using blocks should be done regularly and a hot calibration before you print is the best way to get a level start. It’s dead easy with this sensor and the calibration macro that I run from Octoprint. I have now added it on a button rather than using it in a start gcode.

1 Like

I have written up the process I followed to replace the existing proximity sensor with an Infrared sensor so that the print head will level on glass. I have included a wiring diagram for the new cable thats required and STL’s for the two new parts that need to be printed plus a load of pictures that should make the process more obvious for anybody else that might want to give this a try.
Happy to take any comments or clarify anything thats not clear. If somebody does look at this and sanity check it I will post on the Facebook site.


Just to finish this off. I followed the leveling process detailed in my instructions then did an auto level from the macro and this is the result. A graph from OctoPrint Bed Visualiser , a full print test with 25 squares and a line all the way round the very edge of the print bed and the bed side of the 25 squares. Print was on clean glass no coating. Very pleased with the test, the line round the edge is very even as are the bottoms of the squares. I do need to do something about leveling the bed but auto level works very well with what is a 0.5mm difference between the lowest and highest points.

1 Like

How does the sensor work on the original print surface?

Not tried it but black is bad for infrared so I dont expect it to work. If you get set up with glass I dont think you will go back to the original print bed. It’s flat which the original never is, the sensor measures to the glass surface that you actually print on. The original sensor measures to the metal plate within the bed, not the surface you print on. I do most of my prints on clean glass they stick while printing and pop off when the bed cools. I could go on.

  • just tried it and it actually senses the original print surface fine though I have not checked how accurate it is. I will be sticking to glass.

Just curious to see if using the original is excluded. Yes it being black makes it difficult which is why I asked :slight_smile:

So that would mean a PEI sheet is not needed to auto level on glass. Now I’m curious as to how to get auto leveling to work on a glass plate with a thin high temp magnetic sheet on the bottom of the plate.

IR sensor detects the top of the glass, doesn’t care about what’s below it from a material perspective though you get best results if the bottom is a uniform black. Thats why I sprayed the back of the glass with high temp black paint. Now I can put it on anything. I did have it on silicone thermal pad to help with heat transfer but it didn’t seem to help much so the glass just lies on the heated bed now. The bed is so bent I dont clamp it down at all as that bent it. I just hold it in place with blue tape. It does mean that the lower corner doesn’t touch the heated bed so it’s about 10c colder than the middle. I need to sort that by making the heated bed more level.

Awesome. I’m going to do the IR sensor upgrade you documented, will buy a separate print head to do it to. I have a borosilicate glass plate perfectly sized to the A350 on the way, going to put a high temp magnetic sheet on the bottom from mcmaster carr, it’s pre applied with adhesive, only need to trim to fit and its a uniform black.

The mcmaster high temp sheet - not really sized well you need 2 pieces, but i found some on another site that was a bigger piece that could trim down

EZFlex² - Magnetic Base (140C Max Temp) - TH3D Studio LLC

It may not make a huge difference but id rather have one solid magnet vs 2 pieced together for heat transfer purposes

plus u know, mcmaster costs a lot.

Not to shit on them, I buy from them constantly at work.

dont expect it to be enough to hold the glass down, it is not. there are glass clips out there, including some crappy one i made if u need a link.

Awesome, thanks. I was planning on having it as a solid base with no uncovered glass. And yeah, mcmaster costs a LOT. However, if its not enough to hold down the glass there kind of isn’t any point. I’ll keep searching for a solution.

Youd probably have better luck with a steel plate with adhesive than the magnetic sheet.

I wonder if a Ginopad would work

The silicone thermal pad I used was very tacky. One side glued to the glass and the other stuck well to the heated bed. I didn’t hold it down with clamps or clips or even tape and it didn’t move one bit. You then dont need the magnetic bed. It also cost £7.99!!
It’s Amazon UK but you might want to try this before forking out on something expensive.

Thats probably ideal then, silicone thermal pad would provide optimal heat transfer.