Superior (non-destructive) bed tramming procedure for H2D

My H2D is just a month old and while it mostly prints perfectly fine, in certain cases it did not. Seeing that the lead screws was never sitting still I suspected bed tramming and once I finally got around to check it out, yep it was very far from ideal. So I carefully trammed it per the instructions (but with the little change below) and things got much better.

Much like I described some time ago for X1C, the H2D bed tramming per the wiki is “destructive” in the sense that you can’t re-run it just to check the setting without touching anything, as the procedure involves starting out with bottoming the screws out.

The reason? Well this time the gcode sets Z to 2.5 mm and Bambu cleverly provides a printable feeler gauge (they call it “Manual Leveling Assistant Block” lol) - but for some reason or the other they opted to make it only 2.0 mm… duh! Just like with the X1C, this certainly ends up perfectly fine except you can’t re-run it just to double check.

The remedy is very similar to the X1C case: I just scaled Z in the “Leveling Assistant Block” to 2.50 mm so the gauge matches the gcode.

Using that, and after tramming several times so it was as perfect as I can get it, before tightening the locking screws I heated the bed to 120°C and let it soak for a while, then let it cool down to ambient. I figured this would possibly let the bed settle in some way or the other. After locking it all up I could verify once again that the tramming didn’t change at all so now I’m hoping I wont have to revisit this for a year or two.

It actually ended up better than I hoped for: The lead screws barely move at all to compensate.

5 Likes

Lost you there somewhere. Sound like an interesting plan but I didn’t follow why you have to bottom out to test and a thicker gauge making it not necessary. Grateful for elaboration

Very nice! I remember your thread about tramming the x1-c. I’ve used that method ever since and it’s far superior to how the wiki tells you to do it. Thanks for pointing this out!

I believe my feeler gauge set has a 0.25mm feeler in it so I’ll probably skip printing one.

Being able to run the gcode for a quick check is so convenient.

It’s not 0.25 though: It’s a whopping 2.5 mm so I doubt you have it in your feeler gauge set :blush:

Not sure why they made it that high but it does protect from extremely warped beds or extremely confused users lol

It’s explained further in the X1C thread I linked to, Some had a hard time picturing why this happens or why the match is needed, back then too. It probably doesn’t help that English is not my first language.

Basically the mismatch of gcode height and gauge used, combined with the ABL - EDIT I mean Z homing - that happens between runs, results in a non repeatable process.

1 Like

I think a powered off manual tramming with a dial indicator would be even better?

2 Likes

Or both

3 Likes

Ooof! Yep, definitely don’t have that hahaha.

I think I have it now, I read the other thread carefully. Thank you. Need a far feeler now though LOL.

I like this. I’ve got an indicator that should work. 2 questions, how did you attach it? And, how do you “zero” it to the nozzle height so you can compare the height at 2.5mm in the probe locations?

You can print a jig to mount it on the toolhead.
https://makerworld.com/en/search/models?keyword=dial+indicator+h2d

You don’t have to “zero” it. You can simply start from mounting it on to the toolhead, then raise your bed carefully until it barely touches the indicator (also shows a reading on the indicator).

Then you can adjust the gauge/markings on the indicator to zero it. Many indicators feature a rotatable gauge which can zero dynamically. If yours can’t do that you need to note down the zero position then do some math yourself :stuck_out_tongue:

After that you can start manual tramming. Power off the printer. I use the 4 visual markers (square markings on the bed) as where to probe. Then I try to make the 4 probe spots show a same reading, as far as I can get.

2 Likes

Just pushing the head around in X-Y right?

1 Like

yes, push it slowly to prevent burning the motors or motherboards

1 Like

With my old Prusa printer I had direct access to send GCODE from a terminal interface via Octoprint. Is that possible with BL-H2D?

no, it’s a shelled system so… no direct access

2 questions, 1) How did you access that GCODE? 2) As long as the bed wasn’t grossly out, could one change the height from 2.5mm to say 2.0mm or whatever, then run. To match their depth gauge?

Although I do like the dial indicator method. And thought maybe I could make my own file to do that is some custom fashion.

It’s easier to print a 2.5mm high square block than to modify that gcode :stuck_out_tongue:
But still the dial indicator is the best approach

The gcode (linked from the wiki) is actually human readable in any generic text editor. It contains lines “G1 Z2.5” which sets Z to 2.50 mm (actually by convention I believe it “should be” G0 but it’s the same thing).

Agreed, and then you’ll have indefinite time to set it really good (the gcode often move to next point too fast when you need a change - or it could be too slow in case you see it’s already perfect). The only advantage with my idea is that you can mostly follow the wiki.

1 Like

I do have a dial gauge but I never got around to finding or creating a mount for it but now you got me started - I need to print one so I can 1) check how good or bad my feeler calibration was, just for curiosity, and 2) set it really perfect with the dial. Shouldn’t matter but just because I can.

On another note my Vision Encoder calibration ended up with somewhat lower figures after tramming. They are still very high (just shy of a whole mm) so I need to find my belt tension meter to see if that is the culprit. Just hoping it’s not the frame :cry:

1 Like