Skip to content
No description, website, or topics provided.
JavaScript HTML Python CSS
Branch: master
Clone or download
Latest commit 59fd3a3 Jan 24, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
extras Initial commit Dec 13, 2019
octoprint_PrusaLevelingGuide Add Z screw note, faster completion detection, arrows for raw values Jan 24, 2020
translations Initial commit Dec 13, 2019
.editorconfig Initial commit Dec 13, 2019
.gitignore Initial commit Dec 13, 2019 Initial commit Dec 13, 2019 Proper version bump Jan 24, 2020
babel.cfg Initial commit Dec 13, 2019
bed.png Initial commit Dec 13, 2019
requirements.txt Initial commit Dec 13, 2019
settings.png Initial commit Dec 13, 2019 Proper version bump Jan 24, 2020
table.png Initial commit Dec 13, 2019


Start here Bed Leveling without Wave Springs

IMPORTANT: The guide mentions a firmware modification for modifying the G81 response to use relative values. This plugin only works if you do not use this modification. This plugin will calculate the relative values for you.

This plugin is to help guide you through the fine adjustments of the nylock bed leveling method for Prusa MK3 printers, which is described in the above guide. Make sure you start there and already have the nylocks applied to your bed before beginning. This plugin allows you to select a profile for preheating, then begin adjustment. For each round of adjustment, the plugin will send the configured mesh level code and gcode for retrieving values (generally G80; G81). Once values are received, you can view how to adjust your bed in a number of ways. You click continue to proceed with another round of leveling or click finish to finish up.

TODO: Allow configuration of a 'target bed variance' and alert whenever the bed is higher than the target variance - will only work if you configure your print start/print finish gcode to include G81

You have the option of viewing the values in a table view or overlayed on a photo of the heatbed. You can also customize whether you view raw values, degrees, decimal turns, or factional turns.

Table View Table view

Bed View Bed view


  • Bed Leveling without Wave Springs obviously I would not have written this plugin without this awesome mod/guide
  • OctoPrint-PrusaMeshMap This is the plugin I used previously to adjust my bed. It works, but I wanted something a little more automated. Some of the code for detecting g81 response was used from this plugin.
  • g81_level_guide I like the idea of this script because it automates the process, but I didn't like that it clears my preheat when connecting and that it was a pain to get running on a pi. The idea inspired me to write this plugin.
  • g81_relative This is the site I originally used for converting my g81 values to relative numbers. This is what inspired me to add all the different calculation types.


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


The configuration tab allows you to customize the gcode for mesh leveling similar to the PrusaMeshMap plugin.


G81 Output Handler

Just like the PrusaMeshMap plugin, this plugin has a handler that is watching output received from the printer at all times. This means you can place a G81 in octoprint's or your slicer's start or stop gcode and the plugin will update its values after every print.

Adjusting your bed

Once your nylocks are on your bed and you're ready to adjust using this plugin, pull up the tab in your octoprint instance. Decide if you want to preheat the bed while making adjustments. Preheating isn't absolutely necessary for your initial adjustments, but really fine tuning the bed should be done preheated, as the values will change when things are heated.

So select your profile and whether to preheat, then click begin adjusting. The plugin will:

  • Preheat (if enabled)
  • Send the mesh level command and G81 to retrieve results
  • Wait for the command to complete
  • Send gcode to move the bed and extruder out of the way
  • Update the UI with the values

Once the UI is updated, the status will change to Waiting for continue. This is your opportunity to adjust the screws. The raw value view does not provide the direction to turn the screws. If it's a negative value, loosen the screw. If it's positive, tighten the screw.

All of the other views will disable an arrow next to the value to show which direction to rotate the screw. Once you've made your adjustments, click continue to start another mesh check and update the UI with the new values. If you've gotten your bed to a variance you're happy with, click Finished. If the printer was preheated, this will disable the preheating.

Z Calibration can effect bed leveling

Note from Spacemarine2018

If you re-calibrate your Z-axis after leveling your bed, it might look like the whole left or right side of the bed is suddenly higer/lower than the other side. The reason for this is, that the Z-axis leadscrews might have changed their angular position relative to each other due to soft mechanical upper stops. If this is the case, try to rotate one of the leadscrews by hand by one or two clicks instead of re-adjusting the bed again.

You can’t perform that action at this time.