Z coordinates issue after 3D printer restart I started to have one issues which

Z coordinates issue after 3D printer restart
I started to have one issues which could be a small mistake, but I can’t figure it out (selective blindness :wink: ):
I have Printrbot Simple Metal (enhanced with bigger bed or E3D V6 hot end) with automatic bed levelling procedure before printing (traditional probe). Even I use the same starting script and custom firmware for a while, when I turn on the printer my Z axis do not want to go below actual position (the same level the printer was turned off after previous print). So G29 or G30 ends somewhere in the mid air (not directly above the bed as M212 Z tells it) and I have to manually roll the nozzle to the bed (with Zebra or BuildTak pad on aluminium) every time after printer turns on. It doesn’t matter if I have OctoPi turned on during the printer shut down/turn on procedure.

I use this starting script (it is added before g-code by Simplify3D and executed at once via OctoPi server):

; START
G00 Z2 F5000; lift Z axis by 2mm
G28 X0 Y0 ; home X-Y axes
G28 Z0; home Z axis
G29; begin Z probing
G00 Z2 F5000; lift Z axis by 2mm
G00 X0 Y0; set X-Y axis to zero
G00 Z0.3; park Z axis to bed, prevent oozing

What I have missed? :wink:

You can offset it with a G92 command in your start slicing. I have the same issue with my printrboard. It won’t affect or recognize any of my z offset values that I set in Marlin not EEPROM. If you know what your offset value is then just add the positive version of it to your “z raise after probing” height. For example my offset is -1.6 in Marlin but I use the value G92 Z16.6 in my slicer because my raise height is 15mm I have mine set after my G92 E0

It seems to be an issue with the Z axis end stop. It looks like it is always active.

New firmware might fix this… It sounds like an old problem. When I experienced this on old firmware, I added z home to startup code

@Brook_Drumm Aha, maybe that’s it. I use custom firmware (as upgraded to E3D V6 before all metal hot end was out), but it is from mid 2015. So I have to learn how to recompile new one from the last official one (different thermistor). :wink: That will be… adventure. But as X axis upgrade is mounted I need to change probe measure points as well.

@Griffin_Paquette So I can send the nozzle into the same absolute position after the printing is done and after switch off/on cycle set the Z position by G92…? Isn’t it dangerous when I cancel printing and will forget to send the printer to the same spot (Z level)? (Z0 can be lower then bed then.)

Not necessarily dangerous. Because your hotend has to move down anyways when probing it is considered in the air. Unless you have your nozzle tap the bed every probing point (bad idea) you are going to use an offset. It’s not dangerous. It really does the same thing as you move down the same amount from your probing point. If you have it set too low you may run into issues but that’s the same thing when setting the M212. Just a value.

@Brook_Drumm has new firmware coming out as far as I know but he might be able to explain this better than I did anyways.

G92 makes the nozzle think it’s in a certain position which is why you do it after probing. It will simply set the offset for your hotend in a different way. Not really kosher but works all the same as long as you slice with the same startup scripts.

Thank you all. So before I will use new Printrbot’s firmware (after observing how to change thermistor settings and recompile the result) the G92 command is worth to try. I hope the new bed will be unscratched after all. :wink:

@Griffin_Paquette Only for my assurance:
• After every print (and before the printer is switched off) I will raise the printer to max. Z level – in my case by G1 Z150 ; go up command.
• Then the 1st command of the new print g-code will be G92 Z-150 ; set the Z position absolute zero every time. So I can go down back to real Z0 after it and measure the bed with G29.

Did I follow your hint right? :wink:

No no G92 tells the printer that it is at that position. If you put G1 Z150 in your end that’s fine. If your autolevel ing probe is working fine then it will go all the way down till it senses the bed. You need to just put G92 and then your offset for your z that you know and whatever the length that the extruder raises after it proves the last point in the bed and add them. Then you will put that number after your G29 in your start code. It will make the leveling work as well as your offset. Do you want to see a pic of my start code??

@Griffin_Paquette ​ Maybe we got it wrong as I have no problem with offset (yes I have a small one but it’s another story :wink: ) as I can’t go below the Z level where the nozzle is when I’m turning the printer off – using any command or OctoPi interface arrow. So I have presumed that when I send the printer to the Z150 level before switching off and after switching on tell the printer that it is Z150 level, it will have no problem to go to Z0 after it. :wink: – So for the safety reasons maybe Brook’s new firmware hint is the proper way.

@Brook_Drumm So, I have tried to compile new firmware based on the Printrbot’s latest Rev. F V5 (as I have different thermistor on hot end). Looks like it does not help: After every switching the printer off and on it thinks the lowest possible Z level is in the mid air, on the last Z position. If I go to the bed manually (by turning the Z by hand), the autolevelling works well again.

PS: I have observed, that enabling of ACCURATE_BED_LEVELING in firmware configuration brings faulty auto bed leveling (with 2×2 or 3×3). The original/default (only three points measuring) works better. :wink:

To my knowledge, only the 3 point leveling works on the printrboard.

As far as the z, have you tried homing z before home X, home y, g29 (auto leveling)?

@Brook_Drumm ​ Yes, but Z (homing, G29, G30 etc.) stops at the level when printer was switched off and do not want to go lower. I use the hack with raising Z after every print to max. level (defined point with G0) and after switching the printer on tells it that it is in that point with G92 command. :slight_smile: I will dig into more forums if somebody solves the same problem.

@Brook_Drumm I use the 4 point accurate bed leveling. Works fine but only with custom firmware.

@Griffin_Paquette ​ I had tried it, but it was inaccurate (with two custom external firmwares and two mine). Don’t you have well levelled bed even without auto levelling? :wink:

actually my bed isn’t super level. To get good readings it should be within a degree or two and that’s about what mine is at. Can you send a picture of your setup? It might be that your bed isn’t perfectly flat.

@Griffin_Paquette I had original Alu bed from Printrbot and now X axis upgrade Alu bed (Printrbot again) with different pads on it – from kapton to Zebra Plate or BuildTak. Because of this reasons and non-original hot end I have tried several custom firmwares for more than half year which are using ACCURATE_BED_LEVELING parameter in Configuration.h settings (2×2 to 4×4 probing points). All of them have problem on outer corners, so some areas have scratched pad and some others have bed adhesion (micrometers play a role here). When I disabled this parameter before compiling my own firmware based on original Rev. F V5 (Printrbot) I have only 3 probing points, but for flat Alu bed it seems to be better option.

PS: I have very detailed prints overall (see gallery at http://3dhubs.com/brno/hubs/tom for some examples), so I try to solve last issues to have my Simple Metal perfect with many upgrades icorporated. :wink: