Skip to content
This plugin performs a mesh bed leveling operation then returns the results as an easy to read heatmap.
Python HTML JavaScript CSS
Branch: master
Clone or download
Latest commit e8d758e Jul 10, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
extras Adding initial files. Mar 27, 2018
octoprint_PrusaMeshMap * Refactored mesh-map plot generation to incorporate an alternate con… Jul 10, 2018
translations Adding initial files. Mar 27, 2018
.editorconfig Adding initial files. Mar 27, 2018
.gitignore Adding .gitignore for sample heatmap.png Apr 1, 2018 Adding in latest version info. Apr 5, 2018
LICENSE Adding initial files. Mar 27, 2018 Updating install URL Jun 16, 2018
babel.cfg Adding initial files. Mar 27, 2018
example.png Update example image for README Jul 10, 2018
example2.png Updating example images to 0.2.0 equivalents. Apr 4, 2018
requirements.txt Adding initial files. Mar 27, 2018 * Refactored mesh-map plot generation to incorporate an alternate con… Jul 10, 2018


This plugin is undergoing beta testing!


This plugin takes Prusa's G81 mesh level output and translates it into an easy to read heatmap using matplotlib.

Upon installation, you will have a "Prusa Mesh Leveling" tab:

example showing new tab in interface

Clicking "Perform Bed Level and Check" will execute a bed level operation and status check using a GCode script defined in the settings:

example showing GCode script in settings

It should be noted that the heatmap image will not reload automatically. To reload, click "Reload Heatmap Image" below the heatmap. This is to allow you to be paying attention and see how your new bed level result changes.

G81 Output Handler

It should be noted that this plugin has a handler that is watching output received from the printer at all times. This means you can place a G81 in your slicer's GCode start script and have a new heatmap generated every time you print!


Install via the bundled Plugin Manager or manually using this URL:

Raspberry Pi Users

This plugin uses matplotlib and numpy packages from pip. Since wheels do not exist for these ARM packages in Python 2.7, they will need to compile. This process takes a long time (30min+). If you try to install this directly from Plugin Manager without installing these dependencies first, the compile process will take long enough that OctoPrint errors out the plugin install and quits responding while the install process continues in the background! You can monitor the process with top command via SSH, and when it finishes attempt the plugin install again per the above. It will detect that the plugin is already installed and force a reinstall, and since the dependencies will be there it will go on without issues.

A better method may be to log in to the Pi via SSH before doing the plugin install and run /home/pi/oprint/bin/pip --no-cache-dir install matplotlib numpy first (--no-cache-dir for Pi Zero W users, may work fine without this on other Pi versions). This will still take a long time, but will get the packages the plugin depends on in place beforehand. The plugin will then install without issues within a few seconds in Plugin Manager.

You can’t perform that action at this time.