<p>I had a Z probe installed but the wires came out of the header so I am trying to use software endstops, but any time I <code>G28</code> the nozzle will always ram into the bed. I am using Marlin Firmware. Which I am relatively new with. I'm used to having hardware endstops, but,</p>

<p><strong>I don't have a hardware endstop currently (no probe/no switch).</strong> </p>

<ul>
<li><p>Is it possible to do this with software? </p></li>
<li><p>I took out <code>G28</code>/<code>G29</code> in my G-code and it shows that it is going to z0.2 and working upward (but it still hits the bed). If the bed is level do I need a <code>G28</code>?</p></li>
<li><p>Should Z probe offset be 0?</p></li>
</ul>

<pre>
    #define USE_XMIN_PLUG
    #define USE_YMIN_PLUG
    #define USE_ZMIN_PLUG
    //#define USE_XMAX_PLUG
    //#define USE_YMAX_PLUG
    //#define USE_ZMAX_PLUG
    #if DISABLED(ENDSTOPPULLUPS)
      // fine endstop settings: Individual pullups. will be ignored if ENDSTOPPULLUPS is defined
      //#define ENDSTOPPULLUP_XMAX
      //#define ENDSTOPPULLUP_YMAX
      //#define ENDSTOPPULLUP_ZMAX
      //#define ENDSTOPPULLUP_XMIN
      //#define ENDSTOPPULLUP_YMIN
      //#define ENDSTOPPULLUP_ZMIN
      //#define ENDSTOPPULLUP_ZMIN_PROBE
    #endif
    #define X_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define Y_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define Z_MIN_ENDSTOP_INVERTING true  // set to true to invert the logic of the endstop.
    #define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
    #define Z_MIN_PROBE_ENDSTOP_INVERTING true  // set to true to invert the logic of the probe.

    // Enable this feature if all enabled endstop pins are interrupt-capable.
    // This will remove the need to poll the interrupt pins, saving many CPU cycles.
    #define ENDSTOP_INTERRUPTS_FEATURE
    #define PROBE_MANUALLY
    #define X_PROBE_OFFSET_FROM_EXTRUDER 1   // X offset: -left  +right  [of the nozzle]
    #define Y_PROBE_OFFSET_FROM_EXTRUDER -55 // Y offset: -front +behind [the nozzle]
    #define Z_PROBE_OFFSET_FROM_EXTRUDER -3.4
    #define MULTIPLE_PROBING 2
    #define Z_CLEARANCE_DEPLOY_PROBE   0  // Z Clearance for Deploy/Stow
    #define Z_CLEARANCE_BETWEEN_PROBES  3 // Z Clearance between probe points

    // For M851 give a range for adjusting the Z probe offset
    #define Z_PROBE_OFFSET_RANGE_MIN -20
    #define Z_PROBE_OFFSET_RANGE_MAX 20
    #define INVERT_Z_DIR true
    #define Z_MIN_POS 0
    #if ENABLED(MIN_SOFTWARE_ENDSTOPS)
      //#define MIN_SOFTWARE_ENDSTOP_X
      //#define MIN_SOFTWARE_ENDSTOP_Y
      #define MIN_SOFTWARE_ENDSTOP_Z
    #endif
    #define AUTO_BED_LEVELING_BILINEAR
    #define MANUAL_Z_HOME_POS 0

    #define Z_SAFE_HOMING

    #if ENABLED(Z_SAFE_HOMING)
      #define Z_SAFE_HOMING_X_POINT ((X_BED_SIZE) / 2)    // X point for Z homing when homing all axes (G28).
      #define Z_SAFE_HOMING_Y_POINT ((Y_BED_SIZE) / 2)    // Y point for Z homing when homing all axes (G28).
    #endif
</pre>

[{'answer_id': 6491, 'author': '0scar', 'author_id': 5740, 'author_profile': 'https://3dprinting.stackexchange.com/users/5740', 'pm_score': 2, 'selected': False, 'text': '<p>If you want to mirror the print to get the top to the bottom, and visa versa, you just need to rotate the part using the XYZ rotation tool. Mirroring is used  to make a mirror image in the X-Z or Y-Z plane, not the X-Y plane. </p>\n\n<p>You might just caught a bug, you could post that of their forum.</p>\n\n<p>Update: </p>\n\n<p>If that does not fix it, you might have an incorrect STL model, e.g. the normals of the faces are incorrect. You could try to fix this by repairing the model through an online service like <a href="https://service.netfabb.com" rel="nofollow noreferrer">this one</a>.</p>\n'}, {'answer_id': 6492, 'author': 'OyaMist', 'author_id': 10938, 'author_profile': 'https://3dprinting.stackexchange.com/users/10938', 'pm_score': 2, 'selected': False, 'text': "<p>The up- or down-ness of a part is its Z-orientation, which is specified in STL. It looks like whoever published that STL file published it upside down, requiring you to flip the part or rotate it by 180. You can flip it in Cura as you've done or leave a comment to the author of the STL that the part is upside down.  However, the author may not know how to fix this because low-end modeling tools typically do not have the capability of flipping a model. In these cases, using another tool such as Cura or Slicer can generate a right-side up model. Cura seems to like generating AMF files, so I use Slicer to generate STL files for upside down models. Once you correct the STL file, you'll be able to import the model directly into Cura right-side up.</p>\n"}]
['https://3dprinting.stackexchange.com/questions/6495', 'https://3dprinting.stackexchange.com', 'https://3dprinting.stackexchange.com/users/12468/']