Octoprint bed leveling

So, I got my Zim after Zeepro went belly up. I did the octoprint conversion and things seem to be working fine on the software side.

I set up a trio of buttons using the “custom control editor” to put the head in the 3 positions the original Zim used (I can’t remember where I found them). It kinda works. I’d like to see if there are better options out there for bed leveling via octoprint.

Could y’all share what Gcodes you’re using?

Here’s what I’m using:

’A’ position button:

G90 ; absolute positioning
G1 Z10 ;
G1 X75 Y75 Z10 ; for A point
G1 Z0 

’B’ position button:

G90 ; absolute positioning
G1 Z10 ;
G1 X30 Y145 Z10 ; for B point
G1 Z0 ;

’C’ position button:

G90 ; absolute positioning
G1 Z10 ;
G1 X122 Y145 Z10 ; for C point
G1 Z0 ;

I hit these after hitting the ‘home’ buttons for the x/y as well as z axis controls on the Control tab in Octoprint.

It feels a bit kludgey. What codes are you all using to level the bed?

Thanks!

1 Like

Hi!
Yes, it might feel a bit strange, but in fact, it is better than the codes that zeepro used before. They did´n t lift the nozzle before moving to the next point. Pretty shitty if your Bed is totally out and is too high at one point. Then, the sensitive brass nozzles are grinded down by the rough glass surface… :tired_face:

Also, I added two more points D “X10 Y10” and E “X140 Y10” for verification. If you have a small deviation at one of the standard-points for example the gap at point A is a tiny, tiny bit too small, the oppossing point E will show you a pretty big gap.

Thanks for your reply, @J_Schmidt!

So the strange part for me, and I’m sure it’s just something I don’t understand with Gcode yet is that it only works after hitting the home buttons on the X/Y and Z built-in controls.

I actually added the ‘drop 10 and then come back up’ to each button. When I first got the coordinates, they were based on the Zim’s values of Z=0.

I’ll add ‘D’ and ‘E’ points for reference.

Does anyone have thoughts on:

  • not needing to hit home first? I’m assuming it’s changing the mode somehow.
  • heating up the print heads first? Should I level the bed with heated up hot ends? It seems like it’d be messy as they can ooze a tiny bit.

This is my first foray into 3D printing and/or CNC of any kind. I’ll be learning more about Gcode in the future, I’m sure. :smile:

Hey! Of course, we can help you with your issues.

  • You have to hit the home button because when you turn on the printer, it does not know the printhead´s position right at the moment. That´s one thing that nearly all CNC machines have in common: After turning on, the first thing that you do is homing, and that normally is the only move-command that the machine will (or at least should) accept.
    Example: You turn on the printer and give a command to move 100mm to the right (X100). The machine does not know if the Head is located 150mm or 1mm from the end of the axis. If the printer would accept that command, it might crash.) After homing however, the printer knows where it hit the endstop, and how many steps it moved from that defined position, so it also knows how many steps it can go until reaching the end.

  • I for myself, added the G28 Command in the Script named “after Printer connected”. So, my machine is homed and ready to go all from the beginning.

  • It is not necessary to heat up the hotends before leveling. Yes, material grows when heated (so, theoretically the nozzles get longer), but this effect is so small that you can´t measure it with “normal” tools.
    (If you really want to know it: For the brass nozzles it is 18,5*10E-6mm/K --> For a nozzle with 5mm length, it is 0.0037mm when heating up from 20°C to 220°C --> :slight_smile: NERD_POWER! :slight_smile: )

I´ll take a look at my G-Code scripts and post them when I´m at home.
If you want to know about G-Codes, take a look here: G-Code Handbook

1 Like

Ahh… makes total sense. It’s got to go and hit the limit switches to calibrate. I should have guessed. Thanks!

I’ve added G28 to run automatically after the printer connects also. Thanks for the tip!

(200-20) * (18,5E-6) * 5mm = 0,01665mm or am I wrong?

I always heat up the nozzle before leveling as there is always a bit of non-melted material on the tip which I clean after retracting manually a few mm.

Hm… Let´s take a look:

(220°C-20°C) * (18,5*10E-6 /K) *5mm = X
    200°C    *   0.0000185 /K  *5mm = X
                        0,0037 *5mm = X   (here was my mistake!)
                          0,0185 mm = X

We were both close, but wrong. :weary:
Anyway, It makes no difference in the fact that it´s small enough to ignore :wink:

1 Like

I always heat up both extruders manually before leveling. If some material oozes out, no worries really. It’s important that you don’t level the print bed with a tiny bit of hard material sticking out of the nozzle, otherwise it will end up being too high up.