Software bed levelling

Is there no software bed levelling in OctoPrint?
I mean like there is on Mattercontrol, where you probe a set of points with a paper test and the programme works from there.
It works brilliantly and Octoprint seems to me an ideal platform to have something similar.

There's no software bed leveling in the core OctoPrint but there are plugins. If you have OctoPrint running, open the Plugin Manager, click on Get More..., and type "level" in the search box.

I'm not finding one there that does what I'm talking about. The mainly seem to be utilities to help move the head around to assist the adjusting of screws.
On that count I like the feature in Klipper that runs the probe around the bed and tells you how much to turn each screw.
OK, so it doesn't quite get it right, but the principle is helpful.

Bed Level Visualizer will show you the grid which will aid in adjustments. Bed height compensation would technically possible with OctoPrint but I have a feeling that the overhead might be too much to do on the fly on something like a Raspberry Pi. It would be way more efficient to just do it in firmware.

1 Like

@Hairyloon, I think there is some confusion here between what you calling "Software Bed Leveling" and what @kantlivelong and I are assuming that means.

MatterControl is an integrated modeling, slicing, and printer controller/monitor. Octoprint is just a printer controller/monitor. The "Software Bed Leveling" in MatterControl uses data collected from the printer to control the slicing (or more appropriately, the generation of the gcode). In OctoPrint, the gcode has been generated elsewhere and is passed to the printer almost exactly as received.

Klipper is a combination of firmware in the printer and additional software on the RPi. When integrated with OctoPrint, the gcode is sent to the additional software (which appears as a virtual printer) and that software converts it and sends Klipper commands to the printer.

The most popular firmware for printers is Marlin and Marlin has a variety of automatic bed leveling algorithms along with a code to interface with various hardware probes. At this firmware level, gcode is translated into real time control of the stepper motors and the stepping can be "modified" by the data collected during the automatic bed leveling phase.

If our "answers" don't match your "question", then perhaps you can ask a different question and we can try to answer that.


Yeah, good point. I hadn't thought about how the code actually works.
The question is moot for me now since I'm using klipper which sorts it out another way, but thank you all anyway.

Nothing beats manual bed leveling. Learn how to level the bed and you won't need any software wizardry to try to fix the problem. Try to visualize what software has to do to compensate for a non level bed. You're just kicking the can down the road.

1 Like

I agree there is nothing better than a manually leveled bed, this plugin just helps with understanding how far off your bed really is relative to the mechanically moving parts and inconsistencies in the bed itself due to either being warped, tightened down to much, etc.

Ah, but you cannot manually level a bed that is bent and it's a simple enough task for a computer to compensate for a little bit of wobble.
Alternatively if a perfect bed is so important, has anyone tried strapping a sander to the print head so it can mill itself flat?

So are you trying to bed level with a mesh manually? or do you have a probe? Eitherway you need to adjust your firmware and make the commands according to the setup you want. You can use a command mod to make gcode buttons and save them for use.

As I said in an earlier post: Klipper sorts it out nicely (apart from the fact my probe is crap).
It has a feature that probes the corners and tells you how much to turn each screw to level it.
Somebody might want to implement something similar for Octoprint, unless there already is one.

Bed Leveling Wizard:

Get your center set with Z-Offset, then run the wizard. Head will go to each corner and pause while you adjust the bed then will do it again.

Once that's done, run your ABL probe, save your mesh data and print away.