Marlin: Nur Servo (keine Bettnivellierung) und Z-Endanschläge 1.1.0 RC4

Erstellt am 11. Apr. 2016  ·  4Kommentare  ·  Quelle: MarlinFirmware/Marlin

Ich versuche, nur ein Servo zu verwenden, ohne die Bettnivellierung zu verwenden. Das Servo wird für einen ganz anderen Zweck verwendet, daher ist der Standard z_endstop erforderlich, um normal zu funktionieren.

Allerdings in Configuration.h, unten auskommentieren und die Anzahl der Servos auf 1 setzen

#define NUM_SERVOS 1

scheint z_endstop zu deaktivieren, was zu einem Absturz des Kopfes ins Bett führen kann.

Ich habe die automatische Bettnivellierung mit einer z-Sonde erfolgreich als Test konfiguriert, aber wie oben erwähnt, wird das Servo für einen anderen Zweck verwendet, sodass eine Bettnivellierung nicht erforderlich ist, und tatsächlich wird die Bettnivellierung meine Verwendung stören.

Mein erster Blick auf den Marlin-Code scheint darauf hinzudeuten, dass das obige Verhalten beabsichtigt ist, dh #define NUM_SERVOS 1 führt zu Code wie

    #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 }

Meine Frage ist: - Ist es möglich, ein oder mehrere Servos zu verwenden UND weiterhin den normalen z_endstop zu verwenden (und keinen der Auto-Level-Codes / Endstops zu verwenden)?

Hintergrund:- Firmware = Marlin 1.1.0 RC4, konfiguriert und funktioniert mit Sunhokey Prusa i3

Confirmed !

Alle 4 Kommentare

Mit etwas Glück
Bedingungen.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

ist alles was wir brauchen.

Kein Glück erforderlich - funktioniert gut, danke und auch danke für die superschnelle Antwort.

Ich möchte auch vorschlagen, dass dies zu einer Standardfunktion von Marlin wird, da immer mehr Menschen 3D-Drucker (mit Servos) für eine Vielzahl anderer Anwendungen verwenden, bei denen keine Servos an die automatische Bettnivellierung gebunden sind.

Wir werden das für die nächste Generation von Marlin im Hinterkopf behalten. Vielen Dank für den Vorschlag.

Danke.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen