Automatic Bed Level Measuring Tool (with external dial indicator)


  1. Connect dial indicator to ESP32
  2. Mount dial indicator and ESP to Snapmaker 2.0
  3. Connect to Snapmaker via Luban
  4. Start python-Script
  5. Copy Values from Python script to excel (or whatever)

Pre-Condition: Know the token for the communication between Luban and Snapmaker (Use Wireshark for Network Analysis (Filter: IP of Snapmaker and HTTP)

View from Snapmaker:

View from Desktop

Modifications to ESPDRO (see Credits)

  • I had to modify the code, because sometimes single bits flipped (my ESP to slow, or dial indicator strange, not sure what’s the cause).
  • Only Values that are within 0.5 resp. 2.0 times the previous values are displayed / transmitted.
  • Value transmitted was only 1/10 from the actual value (until the moment I realized this, I was very pleased with my head bed ^^). But just a quick’n’dirty-Fix without messing with the decimal-sign-position. There should be a much nicer fix for this. But the flipping bits killed all my patience :wink:

My modified ESPDRO-Code (see Credits for the Original-Code) and my Python-Script: (5.8 KB)

Credits to:
Quick Tool changer: snapmaker 2.0 quick tool changer by fips - Thingiverse
Holder for dial indicator: snapmaker 2.0 holder for dial indicator by fips - Thingiverse
ESP32 DIY Digital Readout: GitHub - MGX3D/EspDRO: ESP32 DIY Digital Readout
Used dial indicator:


Sorry for the question, but what is the benefit of the measurement?
Can I send the much more detailed and more precise data to my snapmaker so the print will be better?
Is there any howto for that?

I don’t know if this is possible. I was just curious and will probably try to use the information to improve the flatness via hardware (with shims or something similar)

You can modify the mesh using G29:
So it might take a small amoount of coding, but doable. I think the SM mesh has a max of 24 points (I might be wrong, it’s been awhile since I explored this), so you wouold have to reduce the set of values by interpolation (probably not a good idea) or decimation.

@sightz: Probably the only worthwhile hardware fix is a glass bad. I’m a bit surprised that SM has gone through all the engineering trouble of improving the linear modules and redesigning the base unit fot the X and J series, but hasn’t offered a simple glass bed. Presumably, the danger of someone using the automatic levelling probe on a glass bed is what kills the idea.