Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Servo only (no bed leveling) and z endstops 1.1.0 RC4 #3458

Closed
spanner888 opened this issue Apr 11, 2016 · 5 comments
Closed

Servo only (no bed leveling) and z endstops 1.1.0 RC4 #3458

spanner888 opened this issue Apr 11, 2016 · 5 comments

Comments

@spanner888
Copy link

I am trying to implement use of one servo only without using bed leveling. The servo is being used for an entirely different purpose, so the default z_endstop is required to function as normal.

However in Configuration.h, uncommenting below and setting number of servos to 1

#define NUM_SERVOS 1

seems to disable z_endstop, which can lead to head crash into bed.

I have successfully configured auto bed leveling with a z probe as a test, but as noted above, the servo is being used for a different purpose, so bed leveling is not required, and in fact bed leveling will interfere with my usage.

My initial look at the Marlin code seems to suggest the above behaviour is by design, ie #define NUM_SERVOS 1, leads to code like

    #if defined(NUM_SERVOS) && NUM_SERVOS > 0
...
    #define HAS_SERVO_ENDSTOPS true
    #define SERVO_ENDSTOP_IDS { X_ENDSTOP_SERVO_NR, Y_ENDSTOP_SERVO_NR, Z_ENDSTOP_SERVO_NR }

My question is:- is it possible to use one or more servos AND keep using the normal z_endstop (and not use any of the auto level code/endstops)?

Background:- Firmware = Marlin 1.1.0 RC4, configured & working with Sunhokey Prusa i3

@Blue-Marlin
Copy link
Contributor

With some luck
Conditionals.h

@@ -704,11 +704,11 @@
       #define SERVO_ENDSTOP_IDS { X_ENDSTOP_SERVO_NR, Y_ENDSTOP_SERVO_NR, Z_ENDSTOP_SERVO_NR }
     #endif
   #endif

   #if ( (HAS_Z_MIN && ENABLED(Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN)) || HAS_Z_PROBE ) && \
-    ( ENABLED(FIX_MOUNTED_PROBE) || defined(Z_ENDSTOP_SERVO_NR) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) )
+    ( ENABLED(FIX_MOUNTED_PROBE) || (Z_ENDSTOP_SERVO_NR >= 0) || ENABLED(Z_PROBE_ALLEN_KEY) || ENABLED(Z_PROBE_SLED) )
     #define HAS_Z_MIN_PROBE
   #endif

 #endif //CONFIGURATION_LCD
 #endif //CONDITIONALS_H

is all we need.

@spanner888
Copy link
Author

No luck required - works well, thanks and also thanks for super quick reply.

I would also like to suggest this becomes a Marlin standard feature, as more & more people are now using 3D printers (with servos) for a wide variety of other uses that do not require use of servos to be tied to auto bed leveling.

@jbrazio
Copy link
Contributor

jbrazio commented Apr 11, 2016

We will keep that on our mind for the next gen of Marlin. Thank you for the suggestion.

@spanner888
Copy link
Author

thank you.

@github-actions
Copy link

github-actions bot commented Apr 6, 2022

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Apr 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants