I'm having a Prusa i3 derivative printer with a capacitive sensor for the z-axis. It switches a tiny bit before the nozzle hits the print bed and hence needs a z-offset to be configured.

In Slic3r I have configured the z-offset to -0.1 on the General page of the Printer Settings, but currently I'm evaluating Cura and can't find such a setting. Slic3r seems to apply this setting directly to the generated z-values in the g-code, so it does not use a short version at the beginning of the g-code. My current (except of the auto-bed-leveling part default) g-code:

G28 ;Home
G29 ; auto-bed-leveling
G1 Z15.0 F6000 ;Move the platform down 15mm
G92 E0
G1 F200 E3
G92 E0

Is there a way to configure Cura, e.g. using the Start Gcode options, to apply the z-offset?


You can trick the printer into applying an offset using the G92 command:

G0 Z0

G92 Z0.1

First, we move the nozzle to Z=0. Next, through the G92 command, we tell the printer to, from now on, treat the current position as Z=0.1. This effectively applies an offset of -0.1 to the Z-axis, since if we now executed G0 Z0 again, the nozzle would move down 0.1mm.

Note that this needs to be done after homing and leveling to be effective.

Of course, you don't necessarily need to move the nozzle to Z=0 for this to work. You could also just insert G92 Z15.1 after G0 Z15 to get the same effect.

  • $\begingroup$ Should I add the line G92 Z15.1 after the G1 Z15.0 F6000 line (you write about G0 while G1 is there)? $\endgroup$ – Thomas S. Oct 16 '17 at 17:48
  • $\begingroup$ Yes. G0 and G1 are the same thing. Formally, G0 denotes a rapid move and G1 a coordinated move, but Marlin doesn't make this distinction. It's just "move". $\endgroup$ – Tom van der Zanden Oct 16 '17 at 18:41

For Cura 3.1(?)+:

  1. Install the plugin: Menu / Plugins / Browse Plugins... / scroll to "Z Offset plugin" <-- Install

  2. Configure the setting: Printer Profile / Print Setup / Build Plate Adhesion / Z Offset

    • set positive value for nozzle liftup
    • set negative value to bring nozzle lower for first layer (like -0.1 for your wanted scenario)
  • $\begingroup$ First in Cura 3.2 this is called "Initial Layer Z Overlap". Secondly, this applies to a raft only, so without using a raft this will not work, and should therefore not be considered as an overall solution. $\endgroup$ – 0scar May 8 '18 at 7:11
  • $\begingroup$ @0scar, I heve never said that my answer works for each and every version on Cura. Just for v3. Now I've added a variant for newer versions of Cura, so make sure you re-evaluate your view on usefulness of my answer without incorrectly reading into it. $\endgroup$ – Saran May 8 '18 at 7:47
  • $\begingroup$ You should remove the first Build Plate Adhesion option as it only works for a raft. The newly added variant is a viable answer on it's own which could be accepted as a solution (it works independent of the "Build Plate Adhesion Type"). $\endgroup$ – 0scar May 8 '18 at 9:05
  • $\begingroup$ You are right. I was basing the 3.0 version of answer on a youtube video and now that I have compared a sliced file with and w/o Initial Layer Z Offset, there is no difference, hence it isn't used. $\endgroup$ – Saran May 8 '18 at 12:15

I built my printer five years ago with a similar issue and I strongly suggest that the physical 0 will be the actual 0 instead of tweeking it into the system. Especially if you are exploring and testing new methods, i.e. Cura vs Slic3r settings. In Marlin, you can insert a z adjustment for the endstops but it can create future complications if you decide to upgrade the machine.

Keep it as simple as possible, if a sensor is misplaced don't try to reverse calculate it, the pressure of the motors will nudge it and after a while you'll have the same problem...

  • $\begingroup$ Welcome and thanks for sharing your experience. Please note that this does not answer the question. Please consider moving the text to a comment on the OP. $\endgroup$ – 0scar May 8 '18 at 17:03
  • $\begingroup$ hi @0scar and thanks, I think my answer has a more elegant solution to the issue, rather than tricking the machine or installing additional non-required plugins. having an actual 0 position in the mechanical state will provide the builder more time to actually gain experience with printing. any other option will create future side effects that could be avoided now. $\endgroup$ – Zohar Karabelnik May 8 '18 at 17:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.